qt_gui 0.4.1

Bindings for QtGui C++ library
Documentation
//! This crate was generated by `ritual`.
//!                     See [README](https://github.com/rust-qt/ritual) for more information.

mod impl_q_gui_application;

mod __ffi {
    //! Functions provided by the C++ wrapper library

    include!(concat!(env!("OUT_DIR"), "/ffi.rs"));
}
pub mod ops;
pub use ::cpp_core;
pub use ::qt_core;
/// <p>The <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct contains a 64-bit RGB color.</p>
///
/// C++ class: <span style='color: green;'>```QRgba64```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qrgba64.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct contains a 64-bit RGB color.</p>
/// <p><a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> is a 64-bit data-structure containing four 16-bit color channels: Red, green, blue and alpha.</p>
/// <p><a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> can be used a replacement for <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> when higher precision is needed. In particular a premultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> can operate on unpremultiplied <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> without loss of precision except for alpha 0.</p></div>
#[repr(C)]
pub struct QRgba64 {
    _unused: u8,
}
impl QRgba64 {
    /// <p>Returns the 16-bit alpha channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint16 QRgba64::alpha() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#alpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 16-bit alpha channel.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#setAlpha">setAlpha</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alpha(&self) -> u16 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_alpha(self as *const crate::QRgba64)
    }

    /// <p>Returns the alpha channel as an 8-bit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint8 QRgba64::alpha8() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#alpha8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the alpha channel as an 8-bit.</p></div>
    #[inline(always)]
    pub unsafe fn alpha8(&self) -> u8 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_alpha8(self as *const crate::QRgba64)
    }

    /// <p>Returns the 16-bit blue color component.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint16 QRgba64::blue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#blue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 16-bit blue color component.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#setBlue">setBlue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn blue(&self) -> u16 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_blue(self as *const crate::QRgba64)
    }

    /// <p>Returns the blue color component as an 8-bit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint8 QRgba64::blue8() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#blue8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the blue color component as an 8-bit.</p></div>
    #[inline(always)]
    pub unsafe fn blue8(&self) -> u8 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_blue8(self as *const crate::QRgba64)
    }

    /// <p>Assigns the value <i>rgba</i> to this instance of <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRgba64 QRgba64::operator=(quint64 _rgba)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the value <i>rgba</i> to this instance of <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> and returns it.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from_u64(&mut self, rgba: u64) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRgba64_operator_(self as *mut crate::QRgba64, rgba);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct contains a 64-bit RGB color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRgba64& QRgba64::operator=(const QRgba64& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct contains a 64-bit RGB color.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> is a 64-bit data-structure containing four 16-bit color channels: Red, green, blue and alpha.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> can be used a replacement for <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> when higher precision is needed. In particular a premultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> can operate on unpremultiplied <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> without loss of precision except for alpha 0.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from_q_rgba64(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
    ) -> ::cpp_core::MutRef<crate::QRgba64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRgba64_operator_1(
            self as *mut crate::QRgba64,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> value from the 32bit ARGB value <i>rgb</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QRgba64 QRgba64::fromArgb32(unsigned int rgb)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#fromArgb32">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> value from the 32bit ARGB value <i>rgb</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#fromRgba">fromRgba</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_argb32(rgb: ::std::os::raw::c_uint) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRgba64_fromArgb32(rgb);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> value from the four 8-bit color channels <i>red</i>, <i>green</i>, <i>blue</i> and <i>alpha</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QRgba64 QRgba64::fromRgba(quint8 red, quint8 green, quint8 blue, quint8 alpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#fromRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> value from the four 8-bit color channels <i>red</i>, <i>green</i>, <i>blue</i> and <i>alpha</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#fromArgb32">fromArgb32</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgba(
        red: u8,
        green: u8,
        blue: u8,
        alpha: u8,
    ) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRgba64_fromRgba(red, green, blue, alpha);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <i>c</i> as a <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QRgba64 QRgba64::fromRgba64(quint64 c)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#fromRgba64">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <i>c</i> as a <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#fromArgb32">fromArgb32</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgba64_1a(c: u64) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRgba64_fromRgba64(c);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet (<i>r</i>, <i>g</i>, <i>b</i>, <i>a</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QRgba64 QRgba64::fromRgba64(quint16 red, quint16 green, quint16 blue, quint16 alpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#fromRgba64-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet (<i>r</i>, <i>g</i>, <i>b</i>, <i>a</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#fromRgba">fromRgba</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgba64_4a(
        red: u16,
        green: u16,
        blue: u16,
        alpha: u16,
    ) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRgba64_fromRgba641(red, green, blue, alpha);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 16-bit green color component.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint16 QRgba64::green() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#green">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 16-bit green color component.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#setGreen">setGreen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn green(&self) -> u16 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_green(self as *const crate::QRgba64)
    }

    /// <p>Returns the green color component as an 8-bit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint8 QRgba64::green8() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#green8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the green color component as an 8-bit.</p></div>
    #[inline(always)]
    pub unsafe fn green8(&self) -> u8 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_green8(self as *const crate::QRgba64)
    }

    /// <p>Returns whether the color is fully opaque.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRgba64::isOpaque() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#isOpaque">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the color is fully opaque.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#isTransparent">isTransparent</a>() and <a href="http://doc.qt.io/qt-5/qrgba64.html#alpha">alpha</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_opaque(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_isOpaque(self as *const crate::QRgba64)
    }

    /// <p>Returns whether the color is transparent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRgba64::isTransparent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#isTransparent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the color is transparent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#isOpaque">isOpaque</a>() and <a href="http://doc.qt.io/qt-5/qrgba64.html#alpha">alpha</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_transparent(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_isTransparent(self as *const crate::QRgba64)
    }

    /// <p>Default constructs an instance of QRgba64.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRgba64::QRgba64()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#QRgba64">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRgba64.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRgba64_QRgba64();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct contains a 64-bit RGB color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRgba64::QRgba64(const QRgba64& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct contains a 64-bit RGB color.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> is a 64-bit data-structure containing four 16-bit color channels: Red, green, blue and alpha.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> can be used a replacement for <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> when higher precision is needed. In particular a premultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> can operate on unpremultiplied <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> without loss of precision except for alpha 0.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
    ) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRgba64_QRgba641(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the color with the alpha premultiplied.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRgba64 QRgba64::premultiplied() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#premultiplied">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color with the alpha premultiplied.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#unpremultiplied">unpremultiplied</a>().</p></div>
    #[inline(always)]
    pub unsafe fn premultiplied(&self) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRgba64_premultiplied(self as *const crate::QRgba64);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 16-bit red color component.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint16 QRgba64::red() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#red">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 16-bit red color component.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#setRed">setRed</a>().</p></div>
    #[inline(always)]
    pub unsafe fn red(&self) -> u16 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_red(self as *const crate::QRgba64)
    }

    /// <p>Returns the red color component as an 8-bit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint8 QRgba64::red8() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#red8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the red color component as an 8-bit.</p></div>
    #[inline(always)]
    pub unsafe fn red8(&self) -> u8 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_red8(self as *const crate::QRgba64)
    }

    /// <p>Sets the alpha of this color to <i>alpha</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRgba64::setAlpha(quint16 _alpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#setAlpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the alpha of this color to <i>alpha</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#alpha">alpha</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_alpha(&mut self, alpha: u16) {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_setAlpha(self as *mut crate::QRgba64, alpha)
    }

    /// <p>Sets the blue color component of this color to <i>blue</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRgba64::setBlue(quint16 _blue)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#setBlue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the blue color component of this color to <i>blue</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#blue">blue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_blue(&mut self, blue: u16) {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_setBlue(self as *mut crate::QRgba64, blue)
    }

    /// <p>Sets the green color component of this color to <i>green</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRgba64::setGreen(quint16 _green)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#setGreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the green color component of this color to <i>green</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#green">green</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_green(&mut self, green: u16) {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_setGreen(self as *mut crate::QRgba64, green)
    }

    /// <p>Sets the red color component of this color to <i>red</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRgba64::setRed(quint16 _red)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#setRed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the red color component of this color to <i>red</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#red">red</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_red(&mut self, red: u16) {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_setRed(self as *mut crate::QRgba64, red)
    }

    /// <p>Returns the color as a 32-bit ARGB value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QRgba64::toArgb32() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#toArgb32">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color as a 32-bit ARGB value.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#fromArgb32">fromArgb32</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_argb32(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_toArgb32(self as *const crate::QRgba64)
    }

    /// <p>Returns the color as a 16-bit RGB value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned short QRgba64::toRgb16() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#toRgb16">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color as a 16-bit RGB value.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#toArgb32">toArgb32</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_rgb16(&self) -> ::std::os::raw::c_ushort {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_toRgb16(self as *const crate::QRgba64)
    }

    /// <p>Returns the color as a 64bit unsigned integer</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint64 QRgba64::operator quint64() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#operator-quint64">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color as a 64bit unsigned integer</p></div>
    #[inline(always)]
    pub unsafe fn to_u64(&self) -> u64 {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_operator_quint64(self as *const crate::QRgba64)
    }

    /// <p>Returns the color with the alpha unpremultiplied.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRgba64 QRgba64::unpremultiplied() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html#unpremultiplied">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color with the alpha unpremultiplied.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#premultiplied">premultiplied</a>().</p></div>
    #[inline(always)]
    pub unsafe fn unpremultiplied(&self) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRgba64_unpremultiplied(self as *const crate::QRgba64);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_color {
    //! C++ type: <span style='color: green;'>```QColor```</span>

    /// <p>The type of color specified, either RGB, HSV, CMYK or HSL.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QColor::Spec```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#Spec-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The type of color specified, either RGB, HSV, CMYK or HSL.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#spec">spec</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">convertTo</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Spec(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Spec {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Spec(value)
        }
    }

    impl From<Spec> for ::std::os::raw::c_int {
        fn from(value: Spec) -> Self {
            value.0
        }
    }

    impl Spec {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Spec {
        /// C++ enum variant: <span style='color: green;'>```Invalid = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Invalid: crate::q_color::Spec = crate::q_color::Spec(0);
        /// C++ enum variant: <span style='color: green;'>```Rgb = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Rgb: crate::q_color::Spec = crate::q_color::Spec(1);
        /// C++ enum variant: <span style='color: green;'>```Hsv = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Hsv: crate::q_color::Spec = crate::q_color::Spec(2);
        /// C++ enum variant: <span style='color: green;'>```Cmyk = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const Cmyk: crate::q_color::Spec = crate::q_color::Spec(3);
        /// C++ enum variant: <span style='color: green;'>```Hsl = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const Hsl: crate::q_color::Spec = crate::q_color::Spec(4);
    }

    /// <p>How to format the output of the <a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>() function</p>
    ///
    /// C++ enum: <span style='color: green;'>```QColor::NameFormat```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#NameFormat-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>How to format the output of the <a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>() function</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct NameFormat(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for NameFormat {
        fn from(value: ::std::os::raw::c_int) -> Self {
            NameFormat(value)
        }
    }

    impl From<NameFormat> for ::std::os::raw::c_int {
        fn from(value: NameFormat) -> Self {
            value.0
        }
    }

    impl NameFormat {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl NameFormat {
        /// #RRGGBB A "#" character followed by three two-digit hexadecimal numbers (i.e. <code>#RRGGBB</code>). (C++ enum variant: <span style='color: green;'>```HexRgb = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const HexRgb: crate::q_color::NameFormat = crate::q_color::NameFormat(0);
        /// #AARRGGBB A "#" character followed by four two-digit hexadecimal numbers (i.e. <code>#AARRGGBB</code>). (C++ enum variant: <span style='color: green;'>```HexArgb = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const HexArgb: crate::q_color::NameFormat = crate::q_color::NameFormat(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> class provides colors based on RGB, HSV or CMYK values.</p>
///
/// C++ class: <span style='color: green;'>```QColor```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> class provides colors based on RGB, HSV or CMYK values.</p>
/// <p>A color is normally specified in terms of RGB (red, green, and blue) components, but it is also possible to specify it in terms of HSV (hue, saturation, and value) and CMYK (cyan, magenta, yellow and black) components. In addition a color can be specified using a color name. The color name can be any of the SVG 1.0 color names.</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th>RGB</th><th>HSV</th><th>CMYK</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qcolor-rgb.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qcolor-hsv.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qcolor-cmyk.png" alt=""></td></tr>
/// </tbody></table></div>
/// <p>The <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructor creates the color based on RGB values. To create a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on either HSV or CMYK values, use the <a href="http://doc.qt.io/qt-5/qcolor.html#toHsv">toHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#toCmyk">toCmyk</a>() functions respectively. These functions return a copy of the color using the desired format. In addition the static <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsv">fromHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmyk">fromCmyk</a>() functions create colors from the specified values. Alternatively, a color can be converted to any of the three formats using the <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">convertTo</a>() function (returning a copy of the color in the desired format), or any of the <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">setCmyk</a>() functions altering <i>this</i> color's format. The <a href="http://doc.qt.io/qt-5/qcolor.html#spec">spec</a>() function tells how the color was specified.</p>
/// <p>A color can be set by passing an RGB string (such as "#112233"), or an ARGB string (such as "#ff112233") or a color name (such as "blue"), to the <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() function. The color names are taken from the SVG 1.0 color names. The <a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>() function returns the name of the color in the format "#RRGGBB". Colors can also be set using <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">setCmyk</a>(). To get a lighter or darker color use the <a href="http://doc.qt.io/qt-5/qcolor.html#lighter">lighter</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#darker">darker</a>() functions respectively.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>() function indicates whether a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> is legal at all. For example, a RGB color with RGB values out of range is illegal. For performance reasons, <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> mostly disregards illegal colors, and for that reason, the result of using an invalid color is undefined.</p>
/// <p>The color components can be retrieved individually, e.g with <a href="http://doc.qt.io/qt-5/qcolor.html#red">red</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#hue">hue</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#cyan">cyan</a>(). The values of the color components can also be retrieved in one go using the <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">getRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">getCmyk</a>() functions. Using the RGB color model, the color components can in addition be accessed with <a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>().</p>
/// <p>There are several related non-members: <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> is a typdef for an unsigned int representing the RGB value triplet (r, g, b). Note that it also can hold a value for the alpha-channel (for more information, see the <a href="http://doc.qt.io/qt-5/qcolor.html#alpha-blended-drawing">Alpha-Blended Drawing</a> section). The <a href="http://doc.qt.io/qt-5/qcolor.html#qRed">qRed</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue">qBlue</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen">qGreen</a>() functions return the respective component of the given <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value, while the <a href="http://doc.qt.io/qt-5/qcolor.html#qRgb">qRgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#qRgba">qRgba</a>() functions create and return the <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> triplet based on the given component values. Finally, the <a href="http://doc.qt.io/qt-5/qcolor.html#qAlpha">qAlpha</a>() function returns the alpha component of the provided <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a>, and the <a href="http://doc.qt.io/qt-5/qcolor.html#qGray">qGray</a>() function calculates and return a gray value based on the given value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> is platform and device independent. The <a href="http://doc.qt.io/qt-5/qcolormap.html">QColormap</a> class maps the color to the hardware.</p>
/// <p>For more information about painting in general, see the <a href="http://doc.qt.io/qt-5/paintsystem.html">Paint System</a> documentation.</p>
/// <a name="integer-vs-floating-point-precision"></a></div>
#[repr(C)]
pub struct QColor {
    _unused: u8,
}
impl QColor {
    /// <p>Returns the alpha color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::alpha() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the alpha color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setAlpha">setAlpha</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha-blended-drawing">Alpha-Blended Drawing</a>.</p></div>
    #[inline(always)]
    pub unsafe fn alpha(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_alpha(self as *const crate::QColor)
    }

    /// <p>Returns the alpha color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::alphaF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the alpha color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setAlphaF">setAlphaF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha-blended-drawing">Alpha-Blended Drawing</a>.</p></div>
    #[inline(always)]
    pub unsafe fn alpha_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_alphaF(self as *const crate::QColor)
    }

    /// <p>Returns the black color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::black() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#black">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the black color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#blackF">blackF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">getCmyk</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn black(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_black(self as *const crate::QColor)
    }

    /// <p>Returns the black color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::blackF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#blackF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the black color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#black">black</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getCmykF">getCmykF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn black_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_blackF(self as *const crate::QColor)
    }

    /// <p>Returns the blue color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::blue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#blue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the blue color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setBlue">setBlue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blueF">blueF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">getRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn blue(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_blue(self as *const crate::QColor)
    }

    /// <p>Returns the blue color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::blueF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#blueF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the blue color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setBlueF">setBlueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blue">blue</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#getRgbF">getRgbF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn blue_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_blueF(self as *const crate::QColor)
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> containing the color names Qt knows about.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QColor::colorNames()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#colorNames">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> containing the color names Qt knows about.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#predefined-colors">Predefined Colors</a>.</p></div>
    #[inline(always)]
    pub unsafe fn color_names() -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_colorNames();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a copy of <i>this</i> color in the format specified by <i>colorSpec</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::convertTo(QColor::Spec colorSpec) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a copy of <i>this</i> color in the format specified by <i>colorSpec</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#spec">spec</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toCmyk">toCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toHsv">toHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn convert_to(
        &self,
        color_spec: crate::q_color::Spec,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QColor_convertTo(self as *const crate::QColor, color_spec);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns a copy of <i>color</i> to this color, and returns a reference to it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor& QColor::operator=(const QColor& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns a copy of <i>color</i> to this color, and returns a reference to it.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from_q_color(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::MutRef<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_operator_1(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor& QColor::operator=(Qt::GlobalColor color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#operator-eq-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Assigns a copy of <i>color</i> and returns a reference to this color.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from_global_color(
        &mut self,
        color: ::qt_core::GlobalColor,
    ) -> ::cpp_core::MutRef<crate::QColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QColor_operator_2(self as *mut crate::QColor, color);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the cyan color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::cyan() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#cyan">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cyan color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#cyanF">cyanF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">getCmyk</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn cyan(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_cyan(self as *const crate::QColor)
    }

    /// <p>Returns the cyan color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::cyanF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#cyanF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cyan color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#cyan">cyan</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getCmykF">getCmykF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn cyan_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_cyanF(self as *const crate::QColor)
    }

    /// <p>Use darker(<i>factor</i>) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::dark(int f = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#dark">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use darker(<i>factor</i>) instead.</p></div>
    #[inline(always)]
    pub unsafe fn dark_1a(&self, f: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_dark(self as *const crate::QColor, f);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use darker(<i>factor</i>) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::dark() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#dark">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use darker(<i>factor</i>) instead.</p></div>
    #[inline(always)]
    pub unsafe fn dark_0a(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_dark1(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a darker (or lighter) color, but does not change this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::darker(int f = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#darker">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a darker (or lighter) color, but does not change this object.</p>
    /// <p>If the <i>factor</i> is greater than 100, this functions returns a darker color. Setting <i>factor</i> to 300 returns a color that has one-third the brightness. If the <i>factor</i> is less than 100, the return color is lighter, but we recommend using the <a href="http://doc.qt.io/qt-5/qcolor.html#lighter">lighter</a>() function for this purpose. If the <i>factor</i> is 0 or negative, the return value is unspecified.</p>
    /// <p>The function converts the current RGB color to HSV, divides the value (V) component by <i>factor</i> and converts the color back to RGB.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#lighter">lighter</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn darker_1a(&self, f: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QColor_darker(self as *const crate::QColor, f);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a darker (or lighter) color, but does not change this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::darker() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#darker">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a darker (or lighter) color, but does not change this object.</p>
    /// <p>If the <i>factor</i> is greater than 100, this functions returns a darker color. Setting <i>factor</i> to 300 returns a color that has one-third the brightness. If the <i>factor</i> is less than 100, the return color is lighter, but we recommend using the <a href="http://doc.qt.io/qt-5/qcolor.html#lighter">lighter</a>() function for this purpose. If the <i>factor</i> is 0 or negative, the return value is unspecified.</p>
    /// <p>The function converts the current RGB color to HSV, divides the value (V) component by <i>factor</i> and converts the color back to RGB.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#lighter">lighter</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn darker_0a(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_darker1(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given CMYK color values: <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromCmyk(int c, int m, int y, int k, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given CMYK color values: <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toCmyk">toCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmykF">fromCmykF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_cmyk_5a(
        c: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        k: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromCmyk(c, m, y, k, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given CMYK color values: <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromCmyk(int c, int m, int y, int k)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given CMYK color values: <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toCmyk">toCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmykF">fromCmykF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_cmyk_4a(
        c: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        k: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromCmyk1(c, m, y, k);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromCmykF(double c, double m, double y, double k, double a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmykF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given CMYK color values: <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toCmyk">toCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmyk">fromCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_cmyk_f_5a(
        c: ::std::os::raw::c_double,
        m: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        k: ::std::os::raw::c_double,
        a: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromCmykF(c, m, y, k, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromCmykF(double c, double m, double y, double k)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmykF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given CMYK color values: <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toCmyk">toCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmyk">fromCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_cmyk_f_4a(
        c: ::std::os::raw::c_double,
        m: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        k: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromCmykF1(c, m, y, k);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>l</i> (lightness), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromHsl(int h, int s, int l, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>l</i> (lightness), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>The value of <i>s</i>, <i>l</i>, and <i>a</i> must all be in the range 0-255; the value of <i>h</i> must be in the range 0-359.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toHsl">toHsl</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHslF">fromHslF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_hsl_4a(
        h: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        l: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromHsl(h, s, l, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>l</i> (lightness), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromHsl(int h, int s, int l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>l</i> (lightness), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>The value of <i>s</i>, <i>l</i>, and <i>a</i> must all be in the range 0-255; the value of <i>h</i> must be in the range 0-359.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toHsl">toHsl</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHslF">fromHslF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_hsl_3a(
        h: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        l: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromHsl1(h, s, l);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromHslF(double h, double s, double l, double a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromHslF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>l</i> (lightness), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toHsl">toHsl</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsl">fromHsl</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsl-color-model">The HSL Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_hsl_f_4a(
        h: ::std::os::raw::c_double,
        s: ::std::os::raw::c_double,
        l: ::std::os::raw::c_double,
        a: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromHslF(h, s, l, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromHslF(double h, double s, double l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromHslF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>l</i> (lightness), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toHsl">toHsl</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsl">fromHsl</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsl-color-model">The HSL Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_hsl_f_3a(
        h: ::std::os::raw::c_double,
        s: ::std::os::raw::c_double,
        l: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromHslF1(h, s, l);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>v</i> (value), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromHsv(int h, int s, int v, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>v</i> (value), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>The value of <i>s</i>, <i>v</i>, and <i>a</i> must all be in the range 0-255; the value of <i>h</i> must be in the range 0-359.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toHsv">toHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsvF">fromHsvF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_hsv_4a(
        h: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        v: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromHsv(h, s, v, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>v</i> (value), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromHsv(int h, int s, int v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>v</i> (value), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>The value of <i>s</i>, <i>v</i>, and <i>a</i> must all be in the range 0-255; the value of <i>h</i> must be in the range 0-359.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toHsv">toHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsvF">fromHsvF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_hsv_3a(
        h: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        v: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromHsv1(h, s, v);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromHsvF(double h, double s, double v, double a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsvF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>v</i> (value), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toHsv">toHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsv">fromHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_hsv_f_4a(
        h: ::std::os::raw::c_double,
        s: ::std::os::raw::c_double,
        v: ::std::os::raw::c_double,
        a: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromHsvF(h, s, v, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromHsvF(double h, double s, double v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsvF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the HSV color values, <i>h</i> (hue), <i>s</i> (saturation), <i>v</i> (value), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toHsv">toHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsv">fromHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_hsv_f_3a(
        h: ::std::os::raw::c_double,
        s: ::std::os::raw::c_double,
        v: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromHsvF1(h, s, v);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value <i>rgb</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgb(unsigned int rgb)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value <i>rgb</i>.</p>
    /// <p>The alpha component of <i>rgb</i> is ignored (i.e. it is automatically set to 255), use the <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba">fromRgba</a>() function to include the alpha-channel specified by the given <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba">fromRgba</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgbF">fromRgbF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgb_1a(rgb: ::std::os::raw::c_uint) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgb(rgb);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGB color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgb(int r, int g, int b, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGB color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64">fromRgba64</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgbF">fromRgbF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgb_4a(
        r: ::std::os::raw::c_int,
        g: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgb1(r, g, b, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGB color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgb(int r, int g, int b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGB color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64">fromRgba64</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgbF">fromRgbF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgb_3a(
        r: ::std::os::raw::c_int,
        g: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgb2(r, g, b);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGB color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgbF(double r, double g, double b, double a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgbF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGB color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64">fromRgba64</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgb_f_4a(
        r: ::std::os::raw::c_double,
        g: ::std::os::raw::c_double,
        b: ::std::os::raw::c_double,
        a: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgbF(r, g, b, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGB color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgbF(double r, double g, double b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgbF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGB color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64">fromRgba64</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgb_f_3a(
        r: ::std::os::raw::c_double,
        g: ::std::os::raw::c_double,
        b: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgbF1(r, g, b);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value <i>rgba</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgba(unsigned int rgba)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value <i>rgba</i>.</p>
    /// <p>Unlike the <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>() function, the alpha-channel specified by the given <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value is included.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64">fromRgba64</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgba(rgba: ::std::os::raw::c_uint) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgba(rgba);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGBA64 color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgba64(unsigned short r, unsigned short g, unsigned short b, unsigned short a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGBA64 color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgbF">fromRgbF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgba64_4a(
        r: ::std::os::raw::c_ushort,
        g: ::std::os::raw::c_ushort,
        b: ::std::os::raw::c_ushort,
        a: ::std::os::raw::c_ushort,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgba64(r, g, b, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> value <i>rgba64</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgba64(QRgba64 rgba)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the given <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> value <i>rgba64</i>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgbF">fromRgbF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgba64_1a(
        rgba: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgba641(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(rgba).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGBA64 color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QColor QColor::fromRgba64(unsigned short r, unsigned short g, unsigned short b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Static convenience function that returns a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructed from the RGBA64 color values, <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgbF">fromRgbF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">toRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_rgba64_3a(
        r: ::std::os::raw::c_ushort,
        g: ::std::os::raw::c_ushort,
        b: ::std::os::raw::c_ushort,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_fromRgba642(r, g, b);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the contents pointed to by <i>c</i>, <i>m</i>, <i>y</i>, <i>k</i>, and <i>a</i>, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getCmyk(int* c, int* m, int* y, int* k, int* a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>c</i>, <i>m</i>, <i>y</i>, <i>k</i>, and <i>a</i>, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#cyan">cyan</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#magenta">magenta</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#yellow">yellow</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#black">black</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">setCmyk</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn get_cmyk_5a_mut(
        &mut self,
        c: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        m: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        k: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getCmyk(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(c)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(m)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(k)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>c</i>, <i>m</i>, <i>y</i>, <i>k</i>, and <i>a</i>, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getCmyk(int* c, int* m, int* y, int* k)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>c</i>, <i>m</i>, <i>y</i>, <i>k</i>, and <i>a</i>, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#cyan">cyan</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#magenta">magenta</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#yellow">yellow</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#black">black</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">setCmyk</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn get_cmyk_4a_mut(
        &mut self,
        c: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        m: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        k: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getCmyk1(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(c)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(m)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(k)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getCmyk(int* c, int* m, int* y, int* k, int* a = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#getCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    /// <p>Use the <code>const</code> overload instead.</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn get_cmyk_5a(
        &self,
        c: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        m: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        k: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getCmyk4(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(c)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(m)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(k)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getCmyk(int* c, int* m, int* y, int* k) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#getCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    /// <p>Use the <code>const</code> overload instead.</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn get_cmyk_4a(
        &self,
        c: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        m: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        k: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getCmyk5(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(c)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(m)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(k)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>c</i>, <i>m</i>, <i>y</i>, <i>k</i>, and <i>a</i>, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getCmykF(double* c, double* m, double* y, double* k, double* a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getCmykF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>c</i>, <i>m</i>, <i>y</i>, <i>k</i>, and <i>a</i>, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#cyanF">cyanF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#magentaF">magentaF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#yellowF">yellowF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blackF">blackF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setCmykF">setCmykF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn get_cmyk_f_5a_mut(
        &mut self,
        c: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        m: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        k: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getCmykF(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(c)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(m)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(k)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>c</i>, <i>m</i>, <i>y</i>, <i>k</i>, and <i>a</i>, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getCmykF(double* c, double* m, double* y, double* k)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getCmykF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>c</i>, <i>m</i>, <i>y</i>, <i>k</i>, and <i>a</i>, to the cyan, magenta, yellow, black, and alpha-channel (transparency) components of the color's CMYK value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#cyanF">cyanF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#magentaF">magentaF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#yellowF">yellowF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blackF">blackF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setCmykF">setCmykF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn get_cmyk_f_4a_mut(
        &mut self,
        c: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        m: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        k: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getCmykF1(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(c)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(m)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(k)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getCmykF(double* c, double* m, double* y, double* k, double* a = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#getCmykF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    /// <p>Use the <code>const</code> overload instead.</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn get_cmyk_f_5a(
        &self,
        c: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        m: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        k: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getCmykF4(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(c)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(m)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(k)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getCmykF(double* c, double* m, double* y, double* k) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#getCmykF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    /// <p>Use the <code>const</code> overload instead.</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn get_cmyk_f_4a(
        &self,
        c: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        m: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        k: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getCmykF5(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(c)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(m)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(k)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>l</i>, and <i>a</i>, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getHsl(int* h, int* s, int* l, int* a = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>l</i>, and <i>a</i>, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#hslHue">hslHue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#hslSaturation">hslSaturation</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#lightness">lightness</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>() functions.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setHsl">setHsl</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_hsl_4a(
        &self,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        s: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        l: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getHsl(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(h)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(s)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(l)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>l</i>, and <i>a</i>, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getHsl(int* h, int* s, int* l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>l</i>, and <i>a</i>, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#hslHue">hslHue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#hslSaturation">hslSaturation</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#lightness">lightness</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>() functions.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setHsl">setHsl</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_hsl_3a(
        &self,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        s: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        l: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getHsl1(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(h)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(s)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(l)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>l</i>, and <i>a</i>, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getHslF(double* h, double* s, double* l, double* a = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getHslF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>l</i>, and <i>a</i>, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#hslHueF">hslHueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#hslSaturationF">hslSaturationF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#lightnessF">lightnessF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>() functions.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setHsl">setHsl</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_hsl_f_4a(
        &self,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        s: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        l: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getHslF(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(h)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(s)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(l)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>l</i>, and <i>a</i>, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getHslF(double* h, double* s, double* l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getHslF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>l</i>, and <i>a</i>, to the hue, saturation, lightness, and alpha-channel (transparency) components of the color's HSL value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#hslHueF">hslHueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#hslSaturationF">hslSaturationF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#lightnessF">lightnessF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>() functions.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setHsl">setHsl</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_hsl_f_3a(
        &self,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        s: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        l: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getHslF1(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(h)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(s)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(l)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>v</i>, and <i>a</i>, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getHsv(int* h, int* s, int* v, int* a = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>v</i>, and <i>a</i>, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#hue">hue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#saturation">saturation</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn get_hsv_4a(
        &self,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        s: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        v: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getHsv(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(h)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(s)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(v)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>v</i>, and <i>a</i>, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getHsv(int* h, int* s, int* v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>v</i>, and <i>a</i>, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#hue">hue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#saturation">saturation</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn get_hsv_3a(
        &self,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        s: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        v: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getHsv1(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(h)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(s)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(v)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>v</i>, and <i>a</i>, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getHsvF(double* h, double* s, double* v, double* a = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>v</i>, and <i>a</i>, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#hueF">hueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#saturationF">saturationF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#valueF">valueF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn get_hsv_f_4a(
        &self,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        s: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        v: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getHsvF(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(h)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(s)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(v)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>v</i>, and <i>a</i>, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getHsvF(double* h, double* s, double* v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>h</i>, <i>s</i>, <i>v</i>, and <i>a</i>, to the hue, saturation, value, and alpha-channel (transparency) components of the color's HSV value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#hueF">hueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#saturationF">saturationF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#valueF">valueF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn get_hsv_f_3a(
        &self,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        s: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        v: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getHsvF1(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(h)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(s)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(v)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i>, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getRgb(int* r, int* g, int* b, int* a = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i>, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#red">red</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#green">green</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blue">blue</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_rgb_4a(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        g: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        b: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getRgb(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(r)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(g)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(b)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i>, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getRgb(int* r, int* g, int* b) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i>, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#red">red</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#green">green</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blue">blue</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_rgb_3a(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        g: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        b: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getRgb1(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(r)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(g)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(b)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i>, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getRgbF(double* r, double* g, double* b, double* a = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getRgbF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i>, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#redF">redF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#greenF">greenF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blueF">blueF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_rgb_f_4a(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        g: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        b: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        a: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getRgbF(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(r)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(g)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(b)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(a)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the contents pointed to by <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i>, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::getRgbF(double* r, double* g, double* b) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#getRgbF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the contents pointed to by <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i>, to the red, green, blue, and alpha-channel (transparency) components of the color's RGB value.</p>
    /// <p>These components can be retrieved individually using the <a href="http://doc.qt.io/qt-5/qcolor.html#redF">redF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#greenF">greenF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blueF">blueF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>() functions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_rgb_f_3a(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        g: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        b: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_getRgbF1(
            self as *const crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(r)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(g)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(b)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the green color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::green() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#green">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the green color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setGreen">setGreen</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#greenF">greenF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">getRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn green(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_green(self as *const crate::QColor)
    }

    /// <p>Returns the green color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::greenF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#greenF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the green color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setGreenF">setGreenF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#green">green</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#getRgbF">getRgbF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn green_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_greenF(self as *const crate::QColor)
    }

    /// <p>Returns the hue color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::hslHue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hslHue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hue color component of this color.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHslF">getHslF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#getHsl">getHsl</a>().</p></div>
    #[inline(always)]
    pub unsafe fn hsl_hue(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hslHue(self as *const crate::QColor)
    }

    /// <p>Returns the hue color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::hslHueF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hslHueF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hue color component of this color.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#hue">hue</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#getHslF">getHslF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn hsl_hue_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hslHueF(self as *const crate::QColor)
    }

    /// <p>Returns the saturation color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::hslSaturation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hslSaturation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the saturation color component of this color.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#saturationF">saturationF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn hsl_saturation(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hslSaturation(self as *const crate::QColor)
    }

    /// <p>Returns the saturation color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::hslSaturationF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hslSaturationF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the saturation color component of this color.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#saturationF">saturationF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#getHslF">getHslF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn hsl_saturation_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hslSaturationF(self as *const crate::QColor)
    }

    /// <p>Returns the hue color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::hsvHue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hsvHue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hue color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#hueF">hueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn hsv_hue(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hsvHue(self as *const crate::QColor)
    }

    /// <p>Returns the hue color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::hsvHueF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hsvHueF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hue color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#hue">hue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">getHsvF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn hsv_hue_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hsvHueF(self as *const crate::QColor)
    }

    /// <p>Returns the saturation color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::hsvSaturation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hsvSaturation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the saturation color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#saturationF">saturationF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn hsv_saturation(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hsvSaturation(self as *const crate::QColor)
    }

    /// <p>Returns the saturation color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::hsvSaturationF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hsvSaturationF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the saturation color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#saturation">saturation</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">getHsvF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn hsv_saturation_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hsvSaturationF(self as *const crate::QColor)
    }

    /// <p>Returns the hue color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::hue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hue color component of this color.</p>
    /// <p>The color is implicitly converted to HSV.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#hsvHue">hsvHue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#hueF">hueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn hue(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hue(self as *const crate::QColor)
    }

    /// <p>Returns the hue color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::hueF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#hueF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hue color component of this color.</p>
    /// <p>The color is implicitly converted to HSV.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#hsvHueF">hsvHueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#hue">hue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">getHsvF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn hue_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_hueF(self as *const crate::QColor)
    }

    /// <p>Returns <code>true</code> if the color is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QColor::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the color is valid; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QColor_isValid(self as *const crate::QColor)
    }

    /// <p>Returns <code>true</code> if the <i>name</i> is a valid color name and can be used to construct a valid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> object, otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QColor::isValidColor(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#isValidColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <i>name</i> is a valid color name and can be used to construct a valid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> object, otherwise returns false.</p>
    /// <p>It uses the same algorithm used in <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>().</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_valid_color_q_string(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QColor_isValidColor(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QColor::isValidColor(QLatin1String arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#isValidColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.8.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid_color_q_latin1_string(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLatin1String>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QColor_isValidColor1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLatin1String>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QColor::isValidColor(QStringView arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#isValidColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn is_valid_color_q_string_view(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringView>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QColor_isValidColor4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringView>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Use lighter(<i>factor</i>) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::light(int f = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#light">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use lighter(<i>factor</i>) instead.</p></div>
    #[inline(always)]
    pub unsafe fn light_1a(&self, f: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_light(self as *const crate::QColor, f);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use lighter(<i>factor</i>) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::light() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#light">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use lighter(<i>factor</i>) instead.</p></div>
    #[inline(always)]
    pub unsafe fn light_0a(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_light1(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a lighter (or darker) color, but does not change this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::lighter(int f = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#lighter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a lighter (or darker) color, but does not change this object.</p>
    /// <p>If the <i>factor</i> is greater than 100, this functions returns a lighter color. Setting <i>factor</i> to 150 returns a color that is 50% brighter. If the <i>factor</i> is less than 100, the return color is darker, but we recommend using the <a href="http://doc.qt.io/qt-5/qcolor.html#darker">darker</a>() function for this purpose. If the <i>factor</i> is 0 or negative, the return value is unspecified.</p>
    /// <p>The function converts the current RGB color to HSV, multiplies the value (V) component by <i>factor</i> and converts the color back to RGB.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#darker">darker</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn lighter_1a(&self, f: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QColor_lighter(self as *const crate::QColor, f);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a lighter (or darker) color, but does not change this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::lighter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#lighter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a lighter (or darker) color, but does not change this object.</p>
    /// <p>If the <i>factor</i> is greater than 100, this functions returns a lighter color. Setting <i>factor</i> to 150 returns a color that is 50% brighter. If the <i>factor</i> is less than 100, the return color is darker, but we recommend using the <a href="http://doc.qt.io/qt-5/qcolor.html#darker">darker</a>() function for this purpose. If the <i>factor</i> is 0 or negative, the return value is unspecified.</p>
    /// <p>The function converts the current RGB color to HSV, multiplies the value (V) component by <i>factor</i> and converts the color back to RGB.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#darker">darker</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn lighter_0a(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_lighter1(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the lightness color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::lightness() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#lightness">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the lightness color component of this color.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#lightnessF">lightnessF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#getHsl">getHsl</a>().</p></div>
    #[inline(always)]
    pub unsafe fn lightness(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_lightness(self as *const crate::QColor)
    }

    /// <p>Returns the lightness color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::lightnessF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#lightnessF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the lightness color component of this color.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#getHslF">getHslF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn lightness_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_lightnessF(self as *const crate::QColor)
    }

    /// <p>Returns the magenta color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::magenta() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#magenta">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the magenta color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#magentaF">magentaF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">getCmyk</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn magenta(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_magenta(self as *const crate::QColor)
    }

    /// <p>Returns the magenta color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::magentaF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#magentaF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the magenta color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#magenta">magenta</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getCmykF">getCmykF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn magenta_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_magentaF(self as *const crate::QColor)
    }

    /// <p>Returns the name of the color in the format "#RRGGBB"; i.e. a "#" character followed by three two-digit hexadecimal numbers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QColor::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#name">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the color in the format "#RRGGBB"; i.e. a "#" character followed by three two-digit hexadecimal numbers.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn name_0a(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_name(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the color in the specified <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QColor::name(QColor::NameFormat format) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#name-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the color in the specified <i>format</i>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#NameFormat-enum">NameFormat</a>.</p></div>
    #[inline(always)]
    pub unsafe fn name_1a(
        &self,
        format: crate::q_color::NameFormat,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QColor_name1(self as *const crate::QColor, format);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an invalid color with the RGB value (0, 0, 0). An invalid color is a color that is not properly set up for the underlying window system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an invalid color with the RGB value (0, 0, 0). An invalid color is a color that is not properly set up for the underlying window system.</p>
    /// <p>The alpha value of an invalid color is unspecified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(Qt::GlobalColor color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs a new color with a color value of <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#predefined-colors">Predefined Colors</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_global_color(
        color: ::qt_core::GlobalColor,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor1(color);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a color with the RGB value <i>r</i>, <i>g</i>, <i>b</i>, and the alpha-channel (transparency) value of <i>a</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(int r, int g, int b, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a color with the RGB value <i>r</i>, <i>g</i>, <i>b</i>, and the alpha-channel (transparency) value of <i>a</i>.</p>
    /// <p>The color is left invalid if any of the arguments are invalid.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setRgba">setRgba</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_4_int(
        r: ::std::os::raw::c_int,
        g: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor2(r, g, b, a);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a color with the value <i>color</i>. The alpha component is ignored and set to solid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(unsigned int rgb)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a color with the value <i>color</i>. The alpha component is ignored and set to solid.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_uint(rgb: ::std::os::raw::c_uint) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor3(rgb);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a color with the value <i>rgba64</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(QRgba64 rgba64)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a color with the value <i>rgba64</i>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgba64">fromRgba64</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_rgba64(
        rgba64: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(rgba64).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a named color in the same way as <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() using the given <i>name</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a named color in the same way as <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() using the given <i>name</i>.</p>
    /// <p>The color is left invalid if the <i>name</i> cannot be parsed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor5(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a named color in the same way as <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() using the given <i>name</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(const char* aname)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a named color in the same way as <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() using the given <i>name</i>.</p>
    /// <p>This is an overloaded function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_char(
        aname: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor6(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(aname)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a named color in the same way as <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() using the given <i>name</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(QLatin1String name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a named color in the same way as <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() using the given <i>name</i>.</p>
    /// <p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_latin1_string(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLatin1String>>,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor7(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLatin1String>>::cast_into(name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(QColor::Spec spec)```</span>.
    #[inline(always)]
    pub unsafe fn from_spec(spec: crate::q_color::Spec) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor8(spec);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a color with the RGB value <i>r</i>, <i>g</i>, <i>b</i>, and the alpha-channel (transparency) value of <i>a</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(int r, int g, int b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a color with the RGB value <i>r</i>, <i>g</i>, <i>b</i>, and the alpha-channel (transparency) value of <i>a</i>.</p>
    /// <p>The color is left invalid if any of the arguments are invalid.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setRgba">setRgba</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_3_int(
        r: ::std::os::raw::c_int,
        g: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor11(r, g, b);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Default constructs an instance of QColor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(QStringView name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QColor.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn from_q_string_view(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringView>>,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor23(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringView>>::cast_into(name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a color that is a copy of <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QColor::QColor(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#QColor-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a color that is a copy of <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_QColor9(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the red color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::red() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#red">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the red color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setRed">setRed</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#redF">redF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">getRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn red(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_red(self as *const crate::QColor)
    }

    /// <p>Returns the red color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::redF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#redF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the red color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setRedF">setRedF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#red">red</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#getRgbF">getRgbF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn red_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_redF(self as *const crate::QColor)
    }

    /// <p>Returns the RGB value of the color. The alpha value is opaque.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QColor::rgb() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#rgb">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the RGB value of the color. The alpha value is opaque.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">getRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#rgba">rgba</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rgb(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QColor_rgb(self as *const crate::QColor)
    }

    /// <p>Returns the RGB value of the color, including its alpha.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QColor::rgba() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#rgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the RGB value of the color, including its alpha.</p>
    /// <p>For an invalid color, the alpha value of the returned color is unspecified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setRgba">setRgba</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#rgba64">rgba64</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rgba(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QColor_rgba(self as *const crate::QColor)
    }

    /// <p>Returns the RGB64 value of the color, including its alpha.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRgba64 QColor::rgba64() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#rgba64">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the RGB64 value of the color, including its alpha.</p>
    /// <p>For an invalid color, the alpha value of the returned color is unspecified.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setRgba64">setRgba64</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#rgba">rgba</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rgba64(&self) -> ::cpp_core::CppBox<crate::QRgba64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_rgba64(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the saturation color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::saturation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#saturation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the saturation color component of this color.</p>
    /// <p>The color is implicitly converted to HSV.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#hsvSaturation">hsvSaturation</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#saturationF">saturationF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn saturation(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_saturation(self as *const crate::QColor)
    }

    /// <p>Returns the saturation color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::saturationF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#saturationF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the saturation color component of this color.</p>
    /// <p>The color is implicitly converted to HSV.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#hsvSaturationF">hsvSaturationF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#saturation">saturation</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">getHsvF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn saturation_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_saturationF(self as *const crate::QColor)
    }

    /// <p>Sets the alpha of this color to <i>alpha</i>. Integer alpha is specified in the range 0-255.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setAlpha(int alpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setAlpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the alpha of this color to <i>alpha</i>. Integer alpha is specified in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha-blended-drawing">Alpha-Blended Drawing</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_alpha(&mut self, alpha: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setAlpha(self as *mut crate::QColor, alpha)
    }

    /// <p>Sets the alpha of this color to <i>alpha</i>. qreal alpha is specified in the range 0.0-1.0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setAlphaF(double alpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setAlphaF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the alpha of this color to <i>alpha</i>. qreal alpha is specified in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#alphaF">alphaF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">alpha</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha-blended-drawing">Alpha-Blended Drawing</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_alpha_f(&mut self, alpha: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setAlphaF(self as *mut crate::QColor, alpha)
    }

    /// <p>Sets the blue color component of this color to <i>blue</i>. Integer components are specified in the range 0-255.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setBlue(int blue)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setBlue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the blue color component of this color to <i>blue</i>. Integer components are specified in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#blue">blue</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blueF">blueF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_blue(&mut self, blue: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setBlue(self as *mut crate::QColor, blue)
    }

    /// <p>Sets the blue color component of this color to <i>blue</i>. Float components are specified in the range 0.0-1.0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setBlueF(double blue)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setBlueF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the blue color component of this color to <i>blue</i>. Float components are specified in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#blueF">blueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#blue">blue</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgbF">setRgbF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_blue_f(&mut self, blue: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setBlueF(self as *mut crate::QColor, blue)
    }

    /// <p>Sets the color to CMYK values, <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setCmyk(int c, int m, int y, int k, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color to CMYK values, <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">getCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setCmykF">setCmykF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_cmyk_5a(
        &mut self,
        c: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        k: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setCmyk(self as *mut crate::QColor, c, m, y, k, a)
    }

    /// <p>Sets the color to CMYK values, <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setCmyk(int c, int m, int y, int k)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color to CMYK values, <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">getCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setCmykF">setCmykF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_cmyk_4a(
        &mut self,
        c: ::std::os::raw::c_int,
        m: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        k: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setCmyk1(self as *mut crate::QColor, c, m, y, k)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setCmykF(double c, double m, double y, double k, double a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setCmykF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the color to CMYK values, <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#getCmykF">getCmykF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">setCmyk</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_cmyk_f_5a(
        &mut self,
        c: ::std::os::raw::c_double,
        m: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        k: ::std::os::raw::c_double,
        a: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setCmykF(self as *mut crate::QColor, c, m, y, k, a)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setCmykF(double c, double m, double y, double k)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setCmykF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the color to CMYK values, <i>c</i> (cyan), <i>m</i> (magenta), <i>y</i> (yellow), <i>k</i> (black), and <i>a</i> (alpha-channel, i.e. transparency).</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor-obsolete.html#getCmykF">getCmykF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">setCmyk</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_cmyk_f_4a(
        &mut self,
        c: ::std::os::raw::c_double,
        m: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        k: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setCmykF1(self as *mut crate::QColor, c, m, y, k)
    }

    /// <p>Sets the green color component of this color to <i>green</i>. Integer components are specified in the range 0-255.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setGreen(int green)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setGreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the green color component of this color to <i>green</i>. Integer components are specified in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#green">green</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#greenF">greenF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_green(&mut self, green: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setGreen(self as *mut crate::QColor, green)
    }

    /// <p>Sets the green color component of this color to <i>green</i>. Float components are specified in the range 0.0-1.0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setGreenF(double green)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setGreenF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the green color component of this color to <i>green</i>. Float components are specified in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#greenF">greenF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#green">green</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgbF">setRgbF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_green_f(&mut self, green: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setGreenF(self as *mut crate::QColor, green)
    }

    /// <p>Sets a HSL color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>l</i> is the lightness and <i>a</i> is the alpha component of the HSL color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setHsl(int h, int s, int l, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a HSL color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>l</i> is the lightness and <i>a</i> is the alpha component of the HSL color.</p>
    /// <p>The saturation, value and alpha-channel values must be in the range 0-255, and the hue value must be greater than -1.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHsl">getHsl</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setHslF">setHslF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_hsl_4a(
        &mut self,
        h: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        l: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setHsl(self as *mut crate::QColor, h, s, l, a)
    }

    /// <p>Sets a HSL color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>l</i> is the lightness and <i>a</i> is the alpha component of the HSL color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setHsl(int h, int s, int l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a HSL color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>l</i> is the lightness and <i>a</i> is the alpha component of the HSL color.</p>
    /// <p>The saturation, value and alpha-channel values must be in the range 0-255, and the hue value must be greater than -1.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHsl">getHsl</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setHslF">setHslF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_hsl_3a(
        &mut self,
        h: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        l: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setHsl1(self as *mut crate::QColor, h, s, l)
    }

    /// <p>Sets a HSL color lightness; <i>h</i> is the hue, <i>s</i> is the saturation, <i>l</i> is the lightness and <i>a</i> is the alpha component of the HSL color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setHslF(double h, double s, double l, double a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setHslF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a HSL color lightness; <i>h</i> is the hue, <i>s</i> is the saturation, <i>l</i> is the lightness and <i>a</i> is the alpha component of the HSL color.</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHslF">getHslF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setHsl">setHsl</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_hsl_f_4a(
        &mut self,
        h: ::std::os::raw::c_double,
        s: ::std::os::raw::c_double,
        l: ::std::os::raw::c_double,
        a: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setHslF(self as *mut crate::QColor, h, s, l, a)
    }

    /// <p>Sets a HSL color lightness; <i>h</i> is the hue, <i>s</i> is the saturation, <i>l</i> is the lightness and <i>a</i> is the alpha component of the HSL color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setHslF(double h, double s, double l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setHslF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a HSL color lightness; <i>h</i> is the hue, <i>s</i> is the saturation, <i>l</i> is the lightness and <i>a</i> is the alpha component of the HSL color.</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHslF">getHslF</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setHsl">setHsl</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_hsl_f_3a(
        &mut self,
        h: ::std::os::raw::c_double,
        s: ::std::os::raw::c_double,
        l: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setHslF1(self as *mut crate::QColor, h, s, l)
    }

    /// <p>Sets a HSV color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>v</i> is the value and <i>a</i> is the alpha component of the HSV color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setHsv(int h, int s, int v, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a HSV color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>v</i> is the value and <i>a</i> is the alpha component of the HSV color.</p>
    /// <p>The saturation, value and alpha-channel values must be in the range 0-255, and the hue value must be greater than -1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setHsvF">setHsvF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_hsv_4a(
        &mut self,
        h: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        v: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setHsv(self as *mut crate::QColor, h, s, v, a)
    }

    /// <p>Sets a HSV color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>v</i> is the value and <i>a</i> is the alpha component of the HSV color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setHsv(int h, int s, int v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a HSV color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>v</i> is the value and <i>a</i> is the alpha component of the HSV color.</p>
    /// <p>The saturation, value and alpha-channel values must be in the range 0-255, and the hue value must be greater than -1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setHsvF">setHsvF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_hsv_3a(
        &mut self,
        h: ::std::os::raw::c_int,
        s: ::std::os::raw::c_int,
        v: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setHsv1(self as *mut crate::QColor, h, s, v)
    }

    /// <p>Sets a HSV color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>v</i> is the value and <i>a</i> is the alpha component of the HSV color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setHsvF(double h, double s, double v, double a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setHsvF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a HSV color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>v</i> is the value and <i>a</i> is the alpha component of the HSV color.</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">getHsvF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_hsv_f_4a(
        &mut self,
        h: ::std::os::raw::c_double,
        s: ::std::os::raw::c_double,
        v: ::std::os::raw::c_double,
        a: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setHsvF(self as *mut crate::QColor, h, s, v, a)
    }

    /// <p>Sets a HSV color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>v</i> is the value and <i>a</i> is the alpha component of the HSV color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setHsvF(double h, double s, double v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setHsvF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a HSV color value; <i>h</i> is the hue, <i>s</i> is the saturation, <i>v</i> is the value and <i>a</i> is the alpha component of the HSV color.</p>
    /// <p>All the values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">getHsvF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_hsv_f_3a(
        &mut self,
        h: ::std::os::raw::c_double,
        s: ::std::os::raw::c_double,
        v: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setHsvF1(self as *mut crate::QColor, h, s, v)
    }

    /// <p>Sets the RGB value of this <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> to <i>name</i>, which may be in one of these formats:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setNamedColor(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the RGB value of this <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> to <i>name</i>, which may be in one of these formats:</p>
    /// <ul>
    /// <li>#RGB (each of R, G, and B is a single hex digit)</li>
    /// <li>#RRGGBB</li>
    /// <li>#AARRGGBB (Since 5.2)</li>
    /// <li>#RRRGGGBBB</li>
    /// <li>#RRRRGGGGBBBB</li>
    /// <li>A name from the list of colors defined in the list of <a href="http://www.w3.org/TR/SVG/types.html#ColorKeywords">SVG color keyword names</a> provided by the World Wide Web Consortium; for example, "steelblue" or "gainsboro". These color names work on all platforms. Note that these color names are <i>not</i> the same as defined by the <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::GlobalColor</a> enums, e.g. "green" and <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::green</a> does not refer to the same color.</li>
    /// <li><code>transparent</code> - representing the absence of a color.</li>
    /// </ul>
    /// <p>The color is invalid if <i>name</i> cannot be parsed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#QColor">QColor</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_named_color_q_string(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setNamedColor(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setNamedColor(QLatin1String name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.8.</p></div>
    #[inline(always)]
    pub unsafe fn set_named_color_q_latin1_string(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLatin1String>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setNamedColor1(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLatin1String>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setNamedColor(QStringView name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_named_color_q_string_view(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringView>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setNamedColor4(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringView>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the red color component of this color to <i>red</i>. Integer components are specified in the range 0-255.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRed(int red)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the red color component of this color to <i>red</i>. Integer components are specified in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#red">red</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#redF">redF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_red(&mut self, red: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRed(self as *mut crate::QColor, red)
    }

    /// <p>Sets the red color component of this color to <i>red</i>. Float components are specified in the range 0.0-1.0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRedF(double red)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRedF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the red color component of this color to <i>red</i>. Float components are specified in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#redF">redF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#red">red</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgbF">setRgbF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_red_f(&mut self, red: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRedF(self as *mut crate::QColor, red)
    }

    /// <p>Sets the RGB value to <i>r</i>, <i>g</i>, <i>b</i> and the alpha value to <i>a</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRgb(int r, int g, int b, int a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the RGB value to <i>r</i>, <i>g</i>, <i>b</i> and the alpha value to <i>a</i>.</p>
    /// <p>All the values must be in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">getRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgbF">setRgbF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_rgb_4a(
        &mut self,
        r: ::std::os::raw::c_int,
        g: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRgb(self as *mut crate::QColor, r, g, b, a)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRgb(unsigned int rgb)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the RGB value to <i>rgb</i>. The alpha value is set to opaque.</p></div>
    #[inline(always)]
    pub unsafe fn set_rgb_1a(&mut self, rgb: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRgb1(self as *mut crate::QColor, rgb)
    }

    /// <p>Sets the RGB value to <i>r</i>, <i>g</i>, <i>b</i> and the alpha value to <i>a</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRgb(int r, int g, int b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the RGB value to <i>r</i>, <i>g</i>, <i>b</i> and the alpha value to <i>a</i>.</p>
    /// <p>All the values must be in the range 0-255.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">getRgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgbF">setRgbF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_rgb_3a(
        &mut self,
        r: ::std::os::raw::c_int,
        g: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRgb2(self as *mut crate::QColor, r, g, b)
    }

    /// <p>Sets the color channels of this color to <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue) and <i>a</i> (alpha, transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRgbF(double r, double g, double b, double a = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRgbF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color channels of this color to <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue) and <i>a</i> (alpha, transparency).</p>
    /// <p>All values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getRgbF">getRgbF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_rgb_f_4a(
        &mut self,
        r: ::std::os::raw::c_double,
        g: ::std::os::raw::c_double,
        b: ::std::os::raw::c_double,
        a: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRgbF(self as *mut crate::QColor, r, g, b, a)
    }

    /// <p>Sets the color channels of this color to <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue) and <i>a</i> (alpha, transparency).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRgbF(double r, double g, double b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRgbF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color channels of this color to <i>r</i> (red), <i>g</i> (green), <i>b</i> (blue) and <i>a</i> (alpha, transparency).</p>
    /// <p>All values must be in the range 0.0-1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getRgbF">getRgbF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_rgb_f_3a(
        &mut self,
        r: ::std::os::raw::c_double,
        g: ::std::os::raw::c_double,
        b: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRgbF1(self as *mut crate::QColor, r, g, b)
    }

    /// <p>Sets the RGB value to <i>rgba</i>, including its alpha.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRgba(unsigned int rgba)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the RGB value to <i>rgba</i>, including its alpha.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#rgba">rgba</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#setRgba64">setRgba64</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_rgba(&mut self, rgba: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRgba(self as *mut crate::QColor, rgba)
    }

    /// <p>Sets the RGB64 value to <i>rgba</i>, including its alpha.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QColor::setRgba64(QRgba64 rgba)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#setRgba64">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the RGB64 value to <i>rgba</i>, including its alpha.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#setRgba">setRgba</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#rgba64">rgba64</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_rgba64(
        &mut self,
        rgba: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_setRgba64(
            self as *mut crate::QColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(rgba).as_raw_ptr(),
        )
    }

    /// <p>Returns how the color was specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor::Spec QColor::spec() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#spec">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns how the color was specified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#Spec-enum">Spec</a> and <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">convertTo</a>().</p></div>
    #[inline(always)]
    pub unsafe fn spec(&self) -> crate::q_color::Spec {
        crate::__ffi::ctr_qt_gui_ffi_QColor_spec(self as *const crate::QColor)
    }

    /// <p>Creates and returns a CMYK <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::toCmyk() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#toCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a CMYK <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromCmyk">fromCmyk</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">convertTo</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_cmyk(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_toCmyk(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns an HSL <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::toHsl() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#toHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns an HSL <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromHsl">fromHsl</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">convertTo</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_hsl(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_toHsl(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns an HSV <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::toHsv() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#toHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns an HSV <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromHsv">fromHsv</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">convertTo</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_hsv(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_toHsv(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the color as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QColor::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QColor_operator_QVariant(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Create and returns an RGB <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QColor::toRgb() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#toRgb">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Create and returns an RGB <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">convertTo</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_rgb(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QColor_toRgb(self as *const crate::QColor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::value() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#valueF">valueF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn value(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_value(self as *const crate::QColor)
    }

    /// <p>Returns the value color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::valueF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#valueF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#value">value</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsvF">getHsvF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-hsv-color-model">The HSV Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn value_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_valueF(self as *const crate::QColor)
    }

    /// <p>Returns the yellow color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QColor::yellow() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#yellow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the yellow color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#yellowF">yellowF</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">getCmyk</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn yellow(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QColor_yellow(self as *const crate::QColor)
    }

    /// <p>Returns the yellow color component of this color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QColor::yellowF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#yellowF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the yellow color component of this color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#yellow">yellow</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getCmykF">getCmykF</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#the-cmyk-color-model">The CMYK Color Model</a>.</p></div>
    #[inline(always)]
    pub unsafe fn yellow_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QColor_yellowF(self as *const crate::QColor)
    }
}

pub mod q_region {
    //! C++ type: <span style='color: green;'>```QRegion```</span>

    /// <p>Specifies the shape of the region to be created.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QRegion::RegionType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#RegionType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the shape of the region to be created.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RegionType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RegionType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RegionType(value)
        }
    }

    impl From<RegionType> for ::std::os::raw::c_int {
        fn from(value: RegionType) -> Self {
            value.0
        }
    }

    impl RegionType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RegionType {
        /// the region covers the entire rectangle. (C++ enum variant: <span style='color: green;'>```Rectangle = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Rectangle: crate::q_region::RegionType = crate::q_region::RegionType(0);
        /// the region is an ellipse inside the rectangle. (C++ enum variant: <span style='color: green;'>```Ellipse = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Ellipse: crate::q_region::RegionType = crate::q_region::RegionType(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> class specifies a clip region for a painter.</p>
///
/// C++ class: <span style='color: green;'>```QRegion```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qregion.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> class specifies a clip region for a painter.</p>
/// <p><a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> is used with <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRegion">QPainter::setClipRegion</a>() to limit the paint area to what needs to be painted. There is also a <a href="http://doc.qt.io/qt-5/qwidget.html#repaint">QWidget::repaint</a>() function that takes a <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> parameter. <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> is the best tool for minimizing the amount of screen area to be updated by a repaint.</p>
/// <p>This class is not suitable for constructing shapes for rendering, especially as outlines. Use <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> to create paths and shapes for use with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> is an <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a> class.</p>
/// <a name="creating-and-using-regions"></a></div>
#[repr(C)]
pub struct QRegion {
    _unused: u8,
}
impl QRegion {
    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qregion.html#const_iterator-typedef">const_iterator</a> pointing to the beginning of the range of rectangles that make up this range, in the order in which <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>() returns them.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QRegion::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qregion.html#const_iterator-typedef">const_iterator</a> pointing to the beginning of the range of rectangles that make up this range, in the order in which <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>() returns them.</p>
    /// <p>This function was introduced in  Qt 5.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#rbegin">rbegin</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#cbegin">cbegin</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_begin(self as *const crate::QRegion);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the bounding rectangle of this region. An empty region gives a rectangle that is <a href="http://doc.qt.io/qt-5/qrect.html#isNull">QRect::isNull</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QRegion::boundingRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of this region. An empty region gives a rectangle that is <a href="http://doc.qt.io/qt-5/qrect.html#isNull">QRect::isNull</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRegion_boundingRect(self as *const crate::QRegion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qregion.html#begin">begin</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QRegion::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qregion.html#begin">begin</a>().</p>
    /// <p>This function was introduced in  Qt 5.8.</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_cbegin(self as *const crate::QRegion);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qregion.html#end">end</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QRegion::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qregion.html#end">end</a>().</p>
    /// <p>This function was introduced in  Qt 5.8.</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_cend(self as *const crate::QRegion);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns <code>true</code> if the region contains the point <i>p</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRegion::contains(const QPoint& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the region contains the point <i>p</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn contains_q_point(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_contains(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRegion::contains(const QRect& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#contains-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns <code>true</code> if the region overlaps the rectangle <i>r</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn contains_q_rect(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_contains1(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>r</i> to this region and returns a reference to the region.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion& QRegion::operator=(const QRegion& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>r</i> to this region and returns a reference to the region.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::MutRef<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_(
            self as *mut crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qregion.html#const_iterator-typedef">const_iterator</a> pointing to one past the end of the range of rectangles that make up this range, in the order in which <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>() returns them.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QRegion::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qregion.html#const_iterator-typedef">const_iterator</a> pointing to one past the end of the range of rectangles that make up this range, in the order in which <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>() returns them.</p>
    /// <p>This function was introduced in  Qt 5.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#rend">rend</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#cend">cend</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#begin">begin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_end(self as *const crate::QRegion);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a region which is the intersection of this region and <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::intersected(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#intersected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a region which is the intersection of this region and <i>r</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/rintersect.png" alt="Region Intersection"></p><p>The figure shows the intersection of two elliptical regions.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>().</p></div>
    #[inline(always)]
    pub unsafe fn intersected_q_region(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_intersected(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a region which is the intersection of this region and the given <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::intersected(const QRect& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#intersected-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a region which is the intersection of this region and the given <i>rect</i>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>().</p></div>
    #[inline(always)]
    pub unsafe fn intersected_q_rect(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_intersected1(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this region intersects with <i>region</i>, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRegion::intersects(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#intersects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this region intersects with <i>region</i>, otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn intersects_q_region(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_intersects(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if this region intersects with <i>rect</i>, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRegion::intersects(const QRect& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#intersects-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this region intersects with <i>rect</i>, otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn intersects_q_rect(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_intersects1(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the region is empty; otherwise returns <code>false</code>. An empty region is a region that contains no points.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRegion::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the region is empty; otherwise returns <code>false</code>. An empty region is a region that contains no points.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregion.html#QRegion">QRegion</a></span> r1(<span class="number">10</span><span class="operator">,</span> <span class="number">10</span><span class="operator">,</span> <span class="number">20</span><span class="operator">,</span> <span class="number">20</span>);
    ///   r1<span class="operator">.</span>isEmpty();               <span class="comment">// false</span>
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregion.html#QRegion">QRegion</a></span> r3;
    ///   r3<span class="operator">.</span>isEmpty();               <span class="comment">// true</span>
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregion.html#QRegion">QRegion</a></span> r2(<span class="number">40</span><span class="operator">,</span> <span class="number">40</span><span class="operator">,</span> <span class="number">20</span><span class="operator">,</span> <span class="number">20</span>);
    ///   r3 <span class="operator">=</span> r1<span class="operator">.</span>intersected(r2);    <span class="comment">// r3: intersection of r1 and r2</span>
    ///   r3<span class="operator">.</span>isEmpty();               <span class="comment">// true</span>
    ///
    ///   r3 <span class="operator">=</span> r1<span class="operator">.</span>united(r2);         <span class="comment">// r3: union of r1 and r2</span>
    ///   r3<span class="operator">.</span>isEmpty();               <span class="comment">// false</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_isEmpty(self as *const crate::QRegion)
    }

    /// <p>Returns <code>true</code> if the region is empty; otherwise returns <code>false</code>. An empty region is a region that contains no points. This function is the same as <a href="http://doc.qt.io/qt-5/qregion.html#isEmpty">isEmpty</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRegion::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the region is empty; otherwise returns <code>false</code>. An empty region is a region that contains no points. This function is the same as <a href="http://doc.qt.io/qt-5/qregion.html#isEmpty">isEmpty</a></p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_isNull(self as *const crate::QRegion)
    }

    /// <p>Constructs an empty region.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty region.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a rectangular or elliptic region.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion(int x, int y, int w, int h, QRegion::RegionType t = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a rectangular or elliptic region.</p>
    /// <p>If <i>t</i> is <code>Rectangle</code>, the region is the filled rectangle (<i>x</i>, <i>y</i>, <i>w</i>, <i>h</i>). If <i>t</i> is <code>Ellipse</code>, the region is the filled ellipse with center at (<i>x</i> + <i>w</i> / 2, <i>y</i> + <i>h</i> / 2) and size (<i>w</i> ,<i>h</i>).</p></div>
    #[inline(always)]
    pub unsafe fn from_4_int_region_type(
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        t: crate::q_region::RegionType,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion1(x, y, w, h, t);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion(const QRect& r, QRegion::RegionType t = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Create a region based on the rectange <i>r</i> with region type <i>t</i>.</p>
    /// <p>If the rectangle is invalid a null region will be created.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#RegionType-enum">QRegion::RegionType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_rect_region_type(
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        t: crate::q_region::RegionType,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            t,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a polygon region from the point array <i>a</i> with the fill rule specified by <i>fillRule</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion(const QPolygon& pa, Qt::FillRule fillRule = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon region from the point array <i>a</i> with the fill rule specified by <i>fillRule</i>.</p>
    /// <p>If <i>fillRule</i> is <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::WindingFill</a>, the polygon region is defined using the winding algorithm; if it is <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::OddEvenFill</a>, the odd-even fill algorithm is used.</p>
    /// <p><b>Warning:</b> This constructor can be used to create complex regions that will slow down painting when used.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_polygon_fill_rule(
        pa: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
        fill_rule: ::qt_core::FillRule,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(pa).as_raw_ptr(),
            fill_rule,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a region from the bitmap <i>bm</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion(const QBitmap& bitmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a region from the bitmap <i>bm</i>.</p>
    /// <p>The resulting region consists of the pixels in bitmap <i>bm</i> that are <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color1</a>, as if each pixel was a 1 by 1 rectangle.</p>
    /// <p>This constructor may create complex regions that will slow down painting when used. Note that drawing masked pixmaps can be done much faster using <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QPixmap::setMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_bitmap(
        bitmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(bitmap).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a rectangular or elliptic region.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion(int x, int y, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a rectangular or elliptic region.</p>
    /// <p>If <i>t</i> is <code>Rectangle</code>, the region is the filled rectangle (<i>x</i>, <i>y</i>, <i>w</i>, <i>h</i>). If <i>t</i> is <code>Ellipse</code>, the region is the filled ellipse with center at (<i>x</i> + <i>w</i> / 2, <i>y</i> + <i>h</i> / 2) and size (<i>w</i> ,<i>h</i>).</p></div>
    #[inline(always)]
    pub unsafe fn from_4_int(
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion7(x, y, w, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Create a region based on the rectange <i>r</i> with region type <i>t</i>.</p>
    /// <p>If the rectangle is invalid a null region will be created.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#RegionType-enum">QRegion::RegionType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_rect(
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion8(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a polygon region from the point array <i>a</i> with the fill rule specified by <i>fillRule</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion(const QPolygon& pa)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon region from the point array <i>a</i> with the fill rule specified by <i>fillRule</i>.</p>
    /// <p>If <i>fillRule</i> is <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::WindingFill</a>, the polygon region is defined using the winding algorithm; if it is <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::OddEvenFill</a>, the odd-even fill algorithm is used.</p>
    /// <p><b>Warning:</b> This constructor can be used to create complex regions that will slow down painting when used.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_polygon(
        pa: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion9(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(pa).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new region which is equal to region <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegion::QRegion(const QRegion& region)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#QRegion-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new region which is equal to region <i>r</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_QRegion4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(region).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of rectangles that will be returned in <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QRegion::rectCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#rectCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of rectangles that will be returned in <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>().</p>
    /// <p>This function was introduced in  Qt 4.6.</p></div>
    #[inline(always)]
    pub unsafe fn rect_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_rectCount(self as *const crate::QRegion)
    }

    /// <p>Returns an array of non-overlapping rectangles that make up the region.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect> QRegion::rects() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#rects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an array of non-overlapping rectangles that make up the region.</p>
    /// <p>The union of all the rectangles is equal to the original region.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#setRects">setRects</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rects(&self) -> ::cpp_core::CppBox<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_rects(self as *const crate::QRegion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the region using the array of rectangles specified by <i>rects</i> and <i>number</i>. The rectangles <i>must</i> be optimally Y-X sorted and follow these restrictions:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRegion::setRects(const QRect* rect, int num)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#setRects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the region using the array of rectangles specified by <i>rects</i> and <i>number</i>. The rectangles <i>must</i> be optimally Y-X sorted and follow these restrictions:</p>
    /// <ul>
    /// <li>The rectangles must not intersect.</li>
    /// <li>All rectangles with a given top coordinate must have the same height.</li>
    /// <li>No two rectangles may abut horizontally (they should be combined into a single wider rectangle in that case).</li>
    /// <li>The rectangles must be sorted in ascending order, with Y as the major sort key and X as the minor sort key.</li>
    /// </ul>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_rects(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QRect>>,
        num: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_setRects(
            self as *mut crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            num,
        )
    }

    /// <p>Returns a region which is <i>r</i> subtracted from this region.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::subtracted(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#subtracted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a region which is <i>r</i> subtracted from this region.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/rsubtract.png" alt="Region Subtraction"></p><p>The figure shows the result when the ellipse on the right is subtracted from the ellipse on the left (<code>left - right</code>).</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>().</p></div>
    #[inline(always)]
    pub unsafe fn subtracted(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_subtracted(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps region <i>other</i> with this region. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRegion::swap(QRegion& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps region <i>other</i> with this region. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_swap(
            self as *mut crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QRegion>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the region as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QRegion::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the region as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_QVariant(self as *const crate::QRegion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Translates (moves) the region <i>dx</i> along the X axis and <i>dy</i> along the Y axis.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRegion::translate(int dx, int dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates (moves) the region <i>dx</i> along the X axis and <i>dy</i> along the Y axis.</p></div>
    #[inline(always)]
    pub unsafe fn translate_2a(&mut self, dx: ::std::os::raw::c_int, dy: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_translate(self as *mut crate::QRegion, dx, dy)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRegion::translate(const QPoint& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#translate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Translates the region <i>point</i><i>.x()</i> along the x axis and <i>point</i><i>.y()</i> along the y axis, relative to the current position. Positive values move the region to the right and down.</p>
    /// <p>Translates to the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn translate_1a(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_translate1(
            self as *mut crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>Returns a copy of the region that is translated <i>dx</i> along the x axis and <i>dy</i> along the y axis, relative to the current position. Positive values move the region to the right and down.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::translated(int dx, int dy) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#translated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the region that is translated <i>dx</i> along the x axis and <i>dy</i> along the y axis, relative to the current position. Positive values move the region to the right and down.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translated_2a(
        &self,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRegion_translated(self as *const crate::QRegion, dx, dy);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::translated(const QPoint& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#translated-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the regtion that is translated <i>p</i><i>.x()</i> along the x axis and <i>p</i><i>.y()</i> along the y axis, relative to the current position. Positive values move the rectangle to the right and down.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translated_1a(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_translated1(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a region which is the union of this region and <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::united(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#united">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a region which is the union of this region and <i>r</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/runion.png" alt="Region Union"></p><p>The figure shows the union of two elliptical regions.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>().</p></div>
    #[inline(always)]
    pub unsafe fn united_q_region(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_united(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a region which is the union of this region and the given <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::united(const QRect& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#united-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a region which is the union of this region and the given <i>rect</i>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>().</p></div>
    #[inline(always)]
    pub unsafe fn united_q_rect(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_united1(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a region which is the exclusive or (XOR) of this region and <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::xored(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#xored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a region which is the exclusive or (XOR) of this region and <i>r</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/rxor.png" alt="Region XORed"></p><p>The figure shows the exclusive or of two elliptical regions.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>().</p></div>
    #[inline(always)]
    pub unsafe fn xored(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_xored(
            self as *const crate::QRegion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_key_sequence {
    //! C++ type: <span style='color: green;'>```QKeySequence```</span>

    /// <p>This enum represent standard key bindings. They can be used to assign platform dependent keyboard shortcuts to a <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QKeySequence::StandardKey```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#StandardKey-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum represent standard key bindings. They can be used to assign platform dependent keyboard shortcuts to a <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a>.</p>
    /// <p>Note that the key bindings are platform dependent. The currently bound shortcuts can be queried using <a href="http://doc.qt.io/qt-5/qkeysequence.html#keyBindings">keyBindings</a>().</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.2.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct StandardKey(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for StandardKey {
        fn from(value: ::std::os::raw::c_int) -> Self {
            StandardKey(value)
        }
    }

    impl From<StandardKey> for ::std::os::raw::c_int {
        fn from(value: StandardKey) -> Self {
            value.0
        }
    }

    impl StandardKey {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl StandardKey {
        /// Unbound key. (C++ enum variant: <span style='color: green;'>```UnknownKey = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const UnknownKey: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(0);
        /// Open help contents. (C++ enum variant: <span style='color: green;'>```HelpContents = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const HelpContents: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(1);
        /// Activate "what's this". (C++ enum variant: <span style='color: green;'>```WhatsThis = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const WhatsThis: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(2);
        /// Open document. (C++ enum variant: <span style='color: green;'>```Open = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Open: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(3);
        /// Close document/tab. (C++ enum variant: <span style='color: green;'>```Close = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Close: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(4);
        /// Save document. (C++ enum variant: <span style='color: green;'>```Save = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const Save: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(5);
        /// Create new document. (C++ enum variant: <span style='color: green;'>```New = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const New: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(6);
        /// Delete. (C++ enum variant: <span style='color: green;'>```Delete = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const Delete: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(7);
        /// Cut. (C++ enum variant: <span style='color: green;'>```Cut = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cut: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(8);
        /// Copy. (C++ enum variant: <span style='color: green;'>```Copy = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const Copy: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(9);
        /// Paste. (C++ enum variant: <span style='color: green;'>```Paste = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const Paste: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(10);
        /// Undo. (C++ enum variant: <span style='color: green;'>```Undo = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const Undo: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(11);
        /// Redo. (C++ enum variant: <span style='color: green;'>```Redo = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const Redo: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(12);
        /// Navigate back. (C++ enum variant: <span style='color: green;'>```Back = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const Back: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(13);
        /// Navigate forward. (C++ enum variant: <span style='color: green;'>```Forward = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const Forward: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(14);
        /// Refresh or reload current document. (C++ enum variant: <span style='color: green;'>```Refresh = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const Refresh: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(15);
        /// Zoom in. (C++ enum variant: <span style='color: green;'>```ZoomIn = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const ZoomIn: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(16);
        /// Zoom out. (C++ enum variant: <span style='color: green;'>```ZoomOut = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const ZoomOut: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(17);
        /// Print document. (C++ enum variant: <span style='color: green;'>```Print = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const Print: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(18);
        /// Add new tab. (C++ enum variant: <span style='color: green;'>```AddTab = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const AddTab: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(19);
        /// Navigate to next tab or child window. (C++ enum variant: <span style='color: green;'>```NextChild = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const NextChild: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(20);
        /// Navigate to previous tab or child window. (C++ enum variant: <span style='color: green;'>```PreviousChild = 21```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreviousChild: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(21);
        /// Find in document. (C++ enum variant: <span style='color: green;'>```Find = 22```</span>)
        #[allow(non_upper_case_globals)]
        pub const Find: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(22);
        /// Find next result. (C++ enum variant: <span style='color: green;'>```FindNext = 23```</span>)
        #[allow(non_upper_case_globals)]
        pub const FindNext: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(23);
        /// Find previous result. (C++ enum variant: <span style='color: green;'>```FindPrevious = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const FindPrevious: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(24);
        /// Find and replace. (C++ enum variant: <span style='color: green;'>```Replace = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const Replace: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(25);
        /// Select all text. (C++ enum variant: <span style='color: green;'>```SelectAll = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectAll: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(26);
        /// Bold text. (C++ enum variant: <span style='color: green;'>```Bold = 27```</span>)
        #[allow(non_upper_case_globals)]
        pub const Bold: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(27);
        /// Italic text. (C++ enum variant: <span style='color: green;'>```Italic = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const Italic: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(28);
        /// Underline text. (C++ enum variant: <span style='color: green;'>```Underline = 29```</span>)
        #[allow(non_upper_case_globals)]
        pub const Underline: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(29);
        /// Move cursor to next character. (C++ enum variant: <span style='color: green;'>```MoveToNextChar = 30```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToNextChar: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(30);
        /// Move cursor to previous character. (C++ enum variant: <span style='color: green;'>```MoveToPreviousChar = 31```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToPreviousChar: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(31);
        /// Move cursor to next word. (C++ enum variant: <span style='color: green;'>```MoveToNextWord = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToNextWord: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(32);
        /// Move cursor to previous word. (C++ enum variant: <span style='color: green;'>```MoveToPreviousWord = 33```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToPreviousWord: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(33);
        /// Move cursor to next line. (C++ enum variant: <span style='color: green;'>```MoveToNextLine = 34```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToNextLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(34);
        /// Move cursor to previous line. (C++ enum variant: <span style='color: green;'>```MoveToPreviousLine = 35```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToPreviousLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(35);
        /// Move cursor to next page. (C++ enum variant: <span style='color: green;'>```MoveToNextPage = 36```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToNextPage: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(36);
        /// Move cursor to previous page. (C++ enum variant: <span style='color: green;'>```MoveToPreviousPage = 37```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToPreviousPage: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(37);
        /// Move cursor to start of line. (C++ enum variant: <span style='color: green;'>```MoveToStartOfLine = 38```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToStartOfLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(38);
        /// Move cursor to end of line. (C++ enum variant: <span style='color: green;'>```MoveToEndOfLine = 39```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToEndOfLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(39);
        /// Move cursor to start of a block. This shortcut is only used on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. (C++ enum variant: <span style='color: green;'>```MoveToStartOfBlock = 40```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToStartOfBlock: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(40);
        /// Move cursor to end of block. This shortcut is only used on the <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. (C++ enum variant: <span style='color: green;'>```MoveToEndOfBlock = 41```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToEndOfBlock: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(41);
        /// Move cursor to start of document. (C++ enum variant: <span style='color: green;'>```MoveToStartOfDocument = 42```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToStartOfDocument: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(42);
        /// Move cursor to end of document. (C++ enum variant: <span style='color: green;'>```MoveToEndOfDocument = 43```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToEndOfDocument: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(43);
        /// Extend selection to next character. (C++ enum variant: <span style='color: green;'>```SelectNextChar = 44```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectNextChar: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(44);
        /// Extend selection to previous character. (C++ enum variant: <span style='color: green;'>```SelectPreviousChar = 45```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectPreviousChar: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(45);
        /// Extend selection to next word. (C++ enum variant: <span style='color: green;'>```SelectNextWord = 46```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectNextWord: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(46);
        /// Extend selection to previous word. (C++ enum variant: <span style='color: green;'>```SelectPreviousWord = 47```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectPreviousWord: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(47);
        /// Extend selection to next line. (C++ enum variant: <span style='color: green;'>```SelectNextLine = 48```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectNextLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(48);
        /// Extend selection to previous line. (C++ enum variant: <span style='color: green;'>```SelectPreviousLine = 49```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectPreviousLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(49);
        /// Extend selection to next page. (C++ enum variant: <span style='color: green;'>```SelectNextPage = 50```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectNextPage: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(50);
        /// Extend selection to previous page. (C++ enum variant: <span style='color: green;'>```SelectPreviousPage = 51```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectPreviousPage: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(51);
        /// Extend selection to start of line. (C++ enum variant: <span style='color: green;'>```SelectStartOfLine = 52```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectStartOfLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(52);
        /// Extend selection to end of line. (C++ enum variant: <span style='color: green;'>```SelectEndOfLine = 53```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectEndOfLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(53);
        /// Extend selection to the start of a text block. This shortcut is only used on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. (C++ enum variant: <span style='color: green;'>```SelectStartOfBlock = 54```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectStartOfBlock: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(54);
        /// Extend selection to the end of a text block. This shortcut is only used on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. (C++ enum variant: <span style='color: green;'>```SelectEndOfBlock = 55```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectEndOfBlock: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(55);
        /// Extend selection to start of document. (C++ enum variant: <span style='color: green;'>```SelectStartOfDocument = 56```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectStartOfDocument: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(56);
        /// Extend selection to end of document. (C++ enum variant: <span style='color: green;'>```SelectEndOfDocument = 57```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectEndOfDocument: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(57);
        /// Delete the beginning of a word up to the cursor. (C++ enum variant: <span style='color: green;'>```DeleteStartOfWord = 58```</span>)
        #[allow(non_upper_case_globals)]
        pub const DeleteStartOfWord: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(58);
        /// Delete word from the end of the cursor. (C++ enum variant: <span style='color: green;'>```DeleteEndOfWord = 59```</span>)
        #[allow(non_upper_case_globals)]
        pub const DeleteEndOfWord: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(59);
        /// Delete end of line. (C++ enum variant: <span style='color: green;'>```DeleteEndOfLine = 60```</span>)
        #[allow(non_upper_case_globals)]
        pub const DeleteEndOfLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(60);
        /// Insert a new paragraph. (C++ enum variant: <span style='color: green;'>```InsertParagraphSeparator = 61```</span>)
        #[allow(non_upper_case_globals)]
        pub const InsertParagraphSeparator: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(61);
        /// Insert a new line. (C++ enum variant: <span style='color: green;'>```InsertLineSeparator = 62```</span>)
        #[allow(non_upper_case_globals)]
        pub const InsertLineSeparator: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(62);
        /// Save document after prompting the user for a file name. (C++ enum variant: <span style='color: green;'>```SaveAs = 63```</span>)
        #[allow(non_upper_case_globals)]
        pub const SaveAs: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(63);
        /// Open the preferences dialog. (C++ enum variant: <span style='color: green;'>```Preferences = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const Preferences: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(64);
        /// Quit the application. (C++ enum variant: <span style='color: green;'>```Quit = 65```</span>)
        #[allow(non_upper_case_globals)]
        pub const Quit: crate::q_key_sequence::StandardKey = crate::q_key_sequence::StandardKey(65);
        /// Toggle the window state to/from full screen. (C++ enum variant: <span style='color: green;'>```FullScreen = 66```</span>)
        #[allow(non_upper_case_globals)]
        pub const FullScreen: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(66);
        /// Deselect text. Since 5.1 (C++ enum variant: <span style='color: green;'>```Deselect = 67```</span>)
        #[allow(non_upper_case_globals)]
        pub const Deselect: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(67);
        /// Delete the entire line. (C++ enum variant: <span style='color: green;'>```DeleteCompleteLine = 68```</span>)
        #[allow(non_upper_case_globals)]
        pub const DeleteCompleteLine: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(68);
        /// Delete previous character. (C++ enum variant: <span style='color: green;'>```Backspace = 69```</span>)
        #[allow(non_upper_case_globals)]
        pub const Backspace: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(69);
        /// Cancel the current operation. (C++ enum variant: <span style='color: green;'>```Cancel = 70```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cancel: crate::q_key_sequence::StandardKey =
            crate::q_key_sequence::StandardKey(70);
    }

    /// C++ enum: <span style='color: green;'>```QKeySequence::SequenceFormat```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceFormat-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SequenceFormat(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SequenceFormat {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SequenceFormat(value)
        }
    }

    impl From<SequenceFormat> for ::std::os::raw::c_int {
        fn from(value: SequenceFormat) -> Self {
            value.0
        }
    }

    impl SequenceFormat {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SequenceFormat {
        /// The key sequence as a platform specific string. This means that it will be shown translated and on the Mac it will resemble a key sequence from the menu bar. This enum is best used when you want to display the string to the user. (C++ enum variant: <span style='color: green;'>```NativeText = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NativeText: crate::q_key_sequence::SequenceFormat =
            crate::q_key_sequence::SequenceFormat(0);
        /// The key sequence is given in a "portable" format, suitable for reading and writing to a file. In many cases, it will look similar to the native text on Windows and X11. (C++ enum variant: <span style='color: green;'>```PortableText = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PortableText: crate::q_key_sequence::SequenceFormat =
            crate::q_key_sequence::SequenceFormat(1);
    }

    /// C++ enum: <span style='color: green;'>```QKeySequence::SequenceMatch```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SequenceMatch(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SequenceMatch {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SequenceMatch(value)
        }
    }

    impl From<SequenceMatch> for ::std::os::raw::c_int {
        fn from(value: SequenceMatch) -> Self {
            value.0
        }
    }

    impl SequenceMatch {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SequenceMatch {
        /// The key sequences are different; not even partially matching. (C++ enum variant: <span style='color: green;'>```NoMatch = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoMatch: crate::q_key_sequence::SequenceMatch =
            crate::q_key_sequence::SequenceMatch(0);
        /// The key sequences match partially, but are not the same. (C++ enum variant: <span style='color: green;'>```PartialMatch = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PartialMatch: crate::q_key_sequence::SequenceMatch =
            crate::q_key_sequence::SequenceMatch(1);
        /// The key sequences are the same. (C++ enum variant: <span style='color: green;'>```ExactMatch = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExactMatch: crate::q_key_sequence::SequenceMatch =
            crate::q_key_sequence::SequenceMatch(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> class encapsulates a key sequence as used by shortcuts.</p>
///
/// C++ class: <span style='color: green;'>```QKeySequence```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qkeysequence.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> class encapsulates a key sequence as used by shortcuts.</p>
/// <p>In its most common form, a key sequence describes a combination of keys that must be used together to perform some action. Key sequences are used with <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a> objects to specify which keyboard shortcuts can be used to trigger actions.</p>
/// <p>Key sequences can be constructed for use as keyboard shortcuts in three different ways:</p>
/// <ul>
/// <li>For standard shortcuts, a <a href="http://doc.qt.io/qt-5/qkeysequence.html#StandardKey-enum">standard key</a> can be used to request the platform-specific key sequence associated with each shortcut.</li>
/// <li>For custom shortcuts, human-readable strings such as "Ctrl+X" can be used, and these can be translated into the appropriate shortcuts for users of different languages. Translations are made in the "<a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a>" context.</li>
/// <li>For hard-coded shortcuts, integer key codes can be specified with a combination of values defined by the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> and <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::Modifier</a> enum values. Each key code consists of a single <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> value and zero or more modifiers, such as <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::SHIFT</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::CTRL</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::ALT</a> and <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::META</a>.</li>
/// </ul>
/// <p>For example, <b>Ctrl P</b> might be a sequence used as a shortcut for printing a document, and can be specified in any of the following ways:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence">QKeySequence</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence">QKeySequence</a></span><span class="operator">::</span>Print);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence">QKeySequence</a></span>(tr(<span class="string">"Ctrl+P"</span>));
///   <span class="type"><a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence">QKeySequence</a></span>(tr(<span class="string">"Ctrl+p"</span>));
///   <span class="type"><a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence">QKeySequence</a></span>(<span class="type">Qt</span><span class="operator">::</span>CTRL <span class="operator">+</span> <span class="type">Qt</span><span class="operator">::</span>Key_P);
///
/// </pre>
/// <p>Note that, for letters, the case used in the specification string does not matter. In the above examples, the user does not need to hold down the <b>Shift</b> key to activate a shortcut specified with "Ctrl+P". However, for other keys, the use of <b>Shift</b> as an unspecified extra modifier key can lead to confusion for users of an application whose keyboards have different layouts to those used by the developers. See the <a href="http://doc.qt.io/qt-5/qkeysequence.html#keyboard-layout-issues">Keyboard Layout Issues</a> section below for more details.</p>
/// <p>It is preferable to use standard shortcuts where possible. When creating key sequences for non-standard shortcuts, you should use human-readable strings in preference to hard-coded integer values.</p>
/// <p><a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> objects can be cast to a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> to obtain a human-readable translated version of the sequence. Similarly, the <a href="http://doc.qt.io/qt-5/qkeysequence.html#toString">toString</a>() function produces human-readable strings for use in menus. On <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, the appropriate symbols are used to describe keyboard shortcuts using special keys on the Macintosh keyboard.</p>
/// <p>An alternative way to specify hard-coded key codes is to use the Unicode code point of the character; for example, 'A' gives the same key sequence as <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key_A</a>.</p>
/// <p><b>Note: </b>On <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, references to "Ctrl", <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::CTRL</a>, <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key_Control</a> and <a href="http://doc.qt.io/qt-5/qt.html#KeyboardModifier-enum">Qt::ControlModifier</a> correspond to the <b>Command</b> keys on the Macintosh keyboard, and references to "Meta", <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::META</a>, <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key_Meta</a> and <a href="http://doc.qt.io/qt-5/qt.html#KeyboardModifier-enum">Qt::MetaModifier</a> correspond to the <b>Control</b> keys. Developers on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> can use the same shortcut descriptions across all platforms, and their applications will automatically work as expected on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>.</p><a name="standard-shortcuts"></a></div>
#[repr(C)]
pub struct QKeySequence {
    _unused: u8,
}
impl QKeySequence {
    /// <p>Assignment operator. Assigns the <i>other</i> key sequence to this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence& QKeySequence::operator=(const QKeySequence& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assignment operator. Assigns the <i>other</i> key sequence to this object.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> ::cpp_core::MutRef<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_operator_(
            self as *mut crate::QKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of keys in the key sequence. The maximum is 4.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QKeySequence::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of keys in the key sequence. The maximum is 4.</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_count(self as *const crate::QKeySequence)
    }

    /// <p>Return a <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> from the string <i>str</i> based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QKeySequence QKeySequence::fromString(const QString& str, QKeySequence::SequenceFormat format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#fromString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Return a <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> from the string <i>str</i> based on <i>format</i>.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#toString">toString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_string_2a(
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: crate::q_key_sequence::SequenceFormat,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_fromString(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Return a <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> from the string <i>str</i> based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QKeySequence QKeySequence::fromString(const QString& str)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#fromString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Return a <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> from the string <i>str</i> based on <i>format</i>.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#toString">toString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_string_1a(
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_fromString1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the element at position <i>index</i> in the key sequence. This can only be used to read an element.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QKeySequence::operator[](unsigned int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the element at position <i>index</i> in the key sequence. This can only be used to read an element.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_uint) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_operator__(self as *const crate::QKeySequence, i)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QKeySequence::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_isDetached(self as *const crate::QKeySequence)
    }

    /// <p>Returns <code>true</code> if the key sequence is empty; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QKeySequence::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the key sequence is empty; otherwise returns false.</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_isEmpty(self as *const crate::QKeySequence)
    }

    /// <p>Returns a list of key bindings for the given <i>key</i>. The result of calling this function will vary based on the target platform. The first element of the list indicates the primary shortcut for the given platform. If the result contains more than one result, these can be considered alternative shortcuts on the same platform for the given <i>key</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QKeySequence> QKeySequence::keyBindings(QKeySequence::StandardKey key)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#keyBindings">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of key bindings for the given <i>key</i>. The result of calling this function will vary based on the target platform. The first element of the list indicates the primary shortcut for the given platform. If the result contains more than one result, these can be considered alternative shortcuts on the same platform for the given <i>key</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn key_bindings(
        key: crate::q_key_sequence::StandardKey,
    ) -> ::cpp_core::CppBox<crate::QListOfQKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_keyBindings(key);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Return a list of <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> from the string <i>str</i> based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QKeySequence> QKeySequence::listFromString(const QString& str, QKeySequence::SequenceFormat format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#listFromString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Return a list of <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> from the string <i>str</i> based on <i>format</i>.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#fromString">fromString</a>() and <a href="http://doc.qt.io/qt-5/qkeysequence.html#listToString">listToString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn list_from_string_2a(
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: crate::q_key_sequence::SequenceFormat,
    ) -> ::cpp_core::CppBox<crate::QListOfQKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_listFromString(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Return a list of <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> from the string <i>str</i> based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QKeySequence> QKeySequence::listFromString(const QString& str)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#listFromString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Return a list of <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> from the string <i>str</i> based on <i>format</i>.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#fromString">fromString</a>() and <a href="http://doc.qt.io/qt-5/qkeysequence.html#listToString">listToString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn list_from_string_1a(
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_listFromString1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Return a string representation of <i>list</i> based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QKeySequence::listToString(const QList<QKeySequence>& list, QKeySequence::SequenceFormat format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#listToString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Return a string representation of <i>list</i> based on <i>format</i>.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#toString">toString</a>() and <a href="http://doc.qt.io/qt-5/qkeysequence.html#listFromString">listFromString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn list_to_string_2a(
        list: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQKeySequence>>,
        format: crate::q_key_sequence::SequenceFormat,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_listToString(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQKeySequence>>::cast_into(list)
                .as_raw_ptr(),
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Return a string representation of <i>list</i> based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QKeySequence::listToString(const QList<QKeySequence>& list)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#listToString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Return a string representation of <i>list</i> based on <i>format</i>.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#toString">toString</a>() and <a href="http://doc.qt.io/qt-5/qkeysequence.html#listFromString">listFromString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn list_to_string_1a(
        list: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQKeySequence>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_listToString1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQKeySequence>>::cast_into(list)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Matches the sequence with <i>seq</i>. Returns <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">ExactMatch</a> if successful, <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">PartialMatch</a> if <i>seq</i> matches incompletely, and <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">NoMatch</a> if the sequences have nothing in common. Returns <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">NoMatch</a> if <i>seq</i> is shorter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence::SequenceMatch QKeySequence::matches(const QKeySequence& seq) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#matches">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Matches the sequence with <i>seq</i>. Returns <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">ExactMatch</a> if successful, <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">PartialMatch</a> if <i>seq</i> matches incompletely, and <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">NoMatch</a> if the sequences have nothing in common. Returns <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceMatch-enum">NoMatch</a> if <i>seq</i> is shorter.</p></div>
    #[inline(always)]
    pub unsafe fn matches(
        &self,
        seq: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> crate::q_key_sequence::SequenceMatch {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_matches(
            self as *const crate::QKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(seq)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the shortcut key sequence for the mnemonic in <i>text</i>, or an empty key sequence if no mnemonics are found.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QKeySequence QKeySequence::mnemonic(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#mnemonic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the shortcut key sequence for the mnemonic in <i>text</i>, or an empty key sequence if no mnemonics are found.</p>
    /// <p>For example, mnemonic("E&amp;xit") returns <code>Qt::ALT+Qt::Key_X</code>, mnemonic("&amp;Quit") returns <code>ALT+Key_Q</code>, and mnemonic("Quit") returns an empty <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a>.</p>
    /// <p>We provide a <a href="http://doc.qt.io/qt-5/accelerators.html">list of common mnemonics</a> in English. At the time of writing, Microsoft and Open Group do not appear to have issued equivalent recommendations for other languages.</p></div>
    #[inline(always)]
    pub unsafe fn mnemonic(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_mnemonic(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an empty key sequence.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty key sequence.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a key sequence from the <i>key</i> string, based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence(const QString& key, QKeySequence::SequenceFormat format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a key sequence from the <i>key</i> string, based on <i>format</i>.</p>
    /// <p>For example "Ctrl+O" gives CTRL+'O'. The strings "Ctrl", "Shift", "Alt" and "Meta" are recognized, as well as their translated equivalents in the "<a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a>" context (using <a href="http://doc.qt.io/qt-5/qobject.html#tr">QObject::tr</a>()).</p>
    /// <p>Up to four key codes may be entered by separating them with commas, e.g. "Alt+X,Ctrl+S,Q".</p>
    /// <p>This constructor is typically used with <a href="http://doc.qt.io/qt-5/qobject.html#tr">tr</a>(), so that shortcut keys can be replaced in translations:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a></span> <span class="operator">*</span>file <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a></span>(<span class="keyword">this</span>);
    ///   file<span class="operator">-</span><span class="operator">&gt;</span>addAction(tr(<span class="string">"&amp;Open..."</span>)<span class="operator">,</span> <span class="keyword">this</span><span class="operator">,</span> SLOT(open())<span class="operator">,</span>
    /// &#32;   &#32;   &#32;   &#32;   &#32;   <span class="type"><a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence">QKeySequence</a></span>(tr(<span class="string">"Ctrl+O"</span><span class="operator">,</span> <span class="string">"File|Open"</span>)));
    ///
    /// </pre>
    /// <p>Note the "File|Open" translator comment. It is by no means necessary, but it provides some context for the human translator.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_sequence_format(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: crate::q_key_sequence::SequenceFormat,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key sequence with up to 4 keys <i>k1</i>, <i>k2</i>, <i>k3</i> and <i>k4</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence(int k1, int k2 = …, int k3 = …, int k4 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key sequence with up to 4 keys <i>k1</i>, <i>k2</i>, <i>k3</i> and <i>k4</i>.</p>
    /// <p>The key codes are listed in <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> and can be combined with modifiers (see <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::Modifier</a>) such as <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::SHIFT</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::CTRL</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::ALT</a>, or <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::META</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_4_int(
        k1: ::std::os::raw::c_int,
        k2: ::std::os::raw::c_int,
        k3: ::std::os::raw::c_int,
        k4: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence2(k1, k2, k3, k4);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> object for the given <i>key</i>. The result will depend on the currently running platform.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence(QKeySequence::StandardKey key)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> object for the given <i>key</i>. The result will depend on the currently running platform.</p>
    /// <p>The resulting object will be based on the first element in the list of key bindings for the <i>key</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn from_standard_key(
        key: crate::q_key_sequence::StandardKey,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence4(key);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a key sequence from the <i>key</i> string, based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence(const QString& key)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a key sequence from the <i>key</i> string, based on <i>format</i>.</p>
    /// <p>For example "Ctrl+O" gives CTRL+'O'. The strings "Ctrl", "Shift", "Alt" and "Meta" are recognized, as well as their translated equivalents in the "<a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a>" context (using <a href="http://doc.qt.io/qt-5/qobject.html#tr">QObject::tr</a>()).</p>
    /// <p>Up to four key codes may be entered by separating them with commas, e.g. "Alt+X,Ctrl+S,Q".</p>
    /// <p>This constructor is typically used with <a href="http://doc.qt.io/qt-5/qobject.html#tr">tr</a>(), so that shortcut keys can be replaced in translations:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a></span> <span class="operator">*</span>file <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a></span>(<span class="keyword">this</span>);
    ///   file<span class="operator">-</span><span class="operator">&gt;</span>addAction(tr(<span class="string">"&amp;Open..."</span>)<span class="operator">,</span> <span class="keyword">this</span><span class="operator">,</span> SLOT(open())<span class="operator">,</span>
    /// &#32;   &#32;   &#32;   &#32;   &#32;   <span class="type"><a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence">QKeySequence</a></span>(tr(<span class="string">"Ctrl+O"</span><span class="operator">,</span> <span class="string">"File|Open"</span>)));
    ///
    /// </pre>
    /// <p>Note the "File|Open" translator comment. It is by no means necessary, but it provides some context for the human translator.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence5(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key sequence with up to 4 keys <i>k1</i>, <i>k2</i>, <i>k3</i> and <i>k4</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence(int k1, int k2 = …, int k3 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key sequence with up to 4 keys <i>k1</i>, <i>k2</i>, <i>k3</i> and <i>k4</i>.</p>
    /// <p>The key codes are listed in <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> and can be combined with modifiers (see <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::Modifier</a>) such as <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::SHIFT</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::CTRL</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::ALT</a>, or <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::META</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_3_int(
        k1: ::std::os::raw::c_int,
        k2: ::std::os::raw::c_int,
        k3: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence6(k1, k2, k3);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key sequence with up to 4 keys <i>k1</i>, <i>k2</i>, <i>k3</i> and <i>k4</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence(int k1, int k2 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key sequence with up to 4 keys <i>k1</i>, <i>k2</i>, <i>k3</i> and <i>k4</i>.</p>
    /// <p>The key codes are listed in <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> and can be combined with modifiers (see <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::Modifier</a>) such as <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::SHIFT</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::CTRL</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::ALT</a>, or <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::META</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int(
        k1: ::std::os::raw::c_int,
        k2: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence7(k1, k2);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key sequence with up to 4 keys <i>k1</i>, <i>k2</i>, <i>k3</i> and <i>k4</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence(int k1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key sequence with up to 4 keys <i>k1</i>, <i>k2</i>, <i>k3</i> and <i>k4</i>.</p>
    /// <p>The key codes are listed in <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> and can be combined with modifiers (see <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::Modifier</a>) such as <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::SHIFT</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::CTRL</a>, <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::ALT</a>, or <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::META</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_int(k1: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence8(k1);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy constructor. Makes a copy of <i>keysequence</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeySequence::QKeySequence(const QKeySequence& ks)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#QKeySequence-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor. Makes a copy of <i>keysequence</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        ks: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_QKeySequence3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(ks)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Swaps key sequence <i>other</i> with this key sequence. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QKeySequence::swap(QKeySequence& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps key sequence <i>other</i> with this key sequence. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_swap(
            self as *mut crate::QKeySequence,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QKeySequence>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the key sequence as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QKeySequence::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the key sequence as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_operator_QVariant(
            self as *const crate::QKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Return a string representation of the key sequence, based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QKeySequence::toString(QKeySequence::SequenceFormat format = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#toString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Return a string representation of the key sequence, based on <i>format</i>.</p>
    /// <p>For example, the value <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::CTRL</a>+<a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key_O</a> results in "Ctrl+O". If the key sequence has multiple key codes, each is separated by commas in the string returned, such as "Alt+X, Ctrl+Y, Z". The strings, "Ctrl", "Shift", etc. are translated using <a href="http://doc.qt.io/qt-5/qobject.html#tr">QObject::tr</a>() in the "<a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a>" context.</p>
    /// <p>If the key sequence has no keys, an empty string is returned.</p>
    /// <p>On <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, the string returned resembles the sequence that is shown in the menu bar if <i>format</i> is <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceFormat-enum">QKeySequence::NativeText</a>; otherwise, the string uses the "portable" format, suitable for writing to a file.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#fromString">fromString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_string_1a(
        &self,
        format: crate::q_key_sequence::SequenceFormat,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeySequence_toString(
            self as *const crate::QKeySequence,
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Return a string representation of the key sequence, based on <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QKeySequence::toString() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#toString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Return a string representation of the key sequence, based on <i>format</i>.</p>
    /// <p>For example, the value <a href="http://doc.qt.io/qt-5/qt.html#Modifier-enum">Qt::CTRL</a>+<a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key_O</a> results in "Ctrl+O". If the key sequence has multiple key codes, each is separated by commas in the string returned, such as "Alt+X, Ctrl+Y, Z". The strings, "Ctrl", "Shift", etc. are translated using <a href="http://doc.qt.io/qt-5/qobject.html#tr">QObject::tr</a>() in the "<a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a>" context.</p>
    /// <p>If the key sequence has no keys, an empty string is returned.</p>
    /// <p>On <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, the string returned resembles the sequence that is shown in the menu bar if <i>format</i> is <a href="http://doc.qt.io/qt-5/qkeysequence.html#SequenceFormat-enum">QKeySequence::NativeText</a>; otherwise, the string uses the "portable" format, suitable for writing to a file.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#fromString">fromString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_string_0a(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QKeySequence_toString1(self as *const crate::QKeySequence);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class represents a vector or vertex in 2D space.</p>
///
/// C++ class: <span style='color: green;'>```QVector2D```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector2d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class represents a vector or vertex in 2D space.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class can also be used to represent vertices in 2D space. We therefore do not need to provide a separate vertex class.</p></div>
#[repr(C)]
pub struct QVector2D {
    _unused: u8,
}
impl QVector2D {
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class represents a vector or vertex in 2D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D& QVector2D::operator=(const QVector2D& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class represents a vector or vertex in 2D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class can also be used to represent vertices in 2D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) -> ::cpp_core::MutRef<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator_(
            self as *mut crate::QVector2D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the distance that this vertex is from a line defined by <i>point</i> and the unit vector <i>direction</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector2D::distanceToLine(const QVector2D& point, const QVector2D& direction) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#distanceToLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance that this vertex is from a line defined by <i>point</i> and the unit vector <i>direction</i>.</p>
    /// <p>If <i>direction</i> is a null vector, then it does not define a line. In that case, the distance from <i>point</i> to this vertex is returned.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#distanceToPoint">distanceToPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn distance_to_line(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
        direction: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_distanceToLine(
            self as *const crate::QVector2D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(point)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(direction)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the distance from this vertex to a point defined by the vertex <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector2D::distanceToPoint(const QVector2D& point) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#distanceToPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from this vertex to a point defined by the vertex <i>point</i>.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#distanceToLine">distanceToLine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn distance_to_point(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_distanceToPoint(
            self as *const crate::QVector2D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the dot product of <i>v1</i> and <i>v2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static float QVector2D::dotProduct(const QVector2D& v1, const QVector2D& v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#dotProduct">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dot product of <i>v1</i> and <i>v2</i>.</p></div>
    #[inline(always)]
    pub unsafe fn dot_product(
        v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
        v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_dotProduct(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(v1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(v2).as_raw_ptr(),
        )
    }

    /// <p>Returns the component of the vector at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QVector2D::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the component of the vector at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; 2).</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator__(self as *mut crate::QVector2D, i);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the component of the vector at index position <i>i</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector2D::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the component of the vector at index position <i>i</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; 2).</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator__1(self as *const crate::QVector2D, i)
    }

    /// <p>Returns <code>true</code> if the x and y coordinates are set to 0.0, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector2D::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the x and y coordinates are set to 0.0, otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_isNull(self as *const crate::QVector2D)
    }

    /// <p>Returns the length of the vector from the origin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector2D::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the length of the vector from the origin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#lengthSquared">lengthSquared</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#normalized">normalized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_length(self as *const crate::QVector2D)
    }

    /// <p>Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector2D::lengthSquared() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#lengthSquared">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#dotProduct">dotProduct</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length_squared(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_lengthSquared(self as *const crate::QVector2D)
    }

    /// Calls C++ function: <span style='color: green;'>```QVector2D operator-(const QVector2D& vector)```</span>.
    #[inline(always)]
    pub unsafe fn neg(&self) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_operator_5(self as *const crate::QVector2D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a null vector, i.e. with coordinates (0, 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector2D::QVector2D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#QVector2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a null vector, i.e. with coordinates (0, 0).</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_QVector2D();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with coordinates (<i>xpos</i>, <i>ypos</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector2D::QVector2D(float xpos, float ypos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#QVector2D-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with coordinates (<i>xpos</i>, <i>ypos</i>).</p></div>
    #[inline(always)]
    pub unsafe fn from_2_float(
        xpos: ::std::os::raw::c_float,
        ypos: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_QVector2D2(xpos, ypos);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with x and y coordinates from a 2D <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector2D::QVector2D(const QPoint& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#QVector2D-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with x and y coordinates from a 2D <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point(
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_QVector2D3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with x and y coordinates from a 2D <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector2D::QVector2D(const QPointF& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#QVector2D-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with x and y coordinates from a 2D <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point_f(
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_QVector2D4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with x and y coordinates from a 3D <i>vector</i>. The z coordinate of <i>vector</i> is dropped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector2D::QVector2D(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#QVector2D-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with x and y coordinates from a 3D <i>vector</i>. The z coordinate of <i>vector</i> is dropped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#toVector3D">toVector3D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_3d(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_QVector2D5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with x and y coordinates from a 3D <i>vector</i>. The z and w coordinates of <i>vector</i> are dropped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector2D::QVector2D(const QVector4D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#QVector2D-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with x and y coordinates from a 3D <i>vector</i>. The z and w coordinates of <i>vector</i> are dropped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#toVector4D">toVector4D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_4d(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_QVector2D6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class represents a vector or vertex in 2D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector2D::QVector2D(const QVector2D& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class represents a vector or vertex in 2D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class can also be used to represent vertices in 2D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_QVector2D7(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector2D::normalize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#normalize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#normalized">normalized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normalize(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_normalize(self as *mut crate::QVector2D)
    }

    /// <p>Returns the normalized unit vector form of this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D QVector2D::normalized() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#normalized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the normalized unit vector form of this vector.</p>
    /// <p>If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#normalize">normalize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normalized(&self) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_normalized(self as *const crate::QVector2D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the x coordinate of this point to the given <i>x</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector2D::setX(float x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#setX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the x coordinate of this point to the given <i>x</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#setY">setY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_x(&mut self, x: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_setX(self as *mut crate::QVector2D, x)
    }

    /// <p>Sets the y coordinate of this point to the given <i>y</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector2D::setY(float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#setY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the y coordinate of this point to the given <i>y</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#y">y</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#setX">setX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_y(&mut self, y: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_setY(self as *mut crate::QVector2D, y)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a> form of this 2D vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QVector2D::toPoint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#toPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a> form of this 2D vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#toPointF">toPointF</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#toVector3D">toVector3D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_point(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_toPoint(self as *const crate::QVector2D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> form of this 2D vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QVector2D::toPointF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#toPointF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> form of this 2D vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#toPoint">toPoint</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#toVector3D">toVector3D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_point_f(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_toPointF(self as *const crate::QVector2D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 2D vector as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QVector2D::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 2D vector as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator_QVariant(
            self as *const crate::QVector2D,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 3D form of this 2D vector, with the z coordinate set to zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QVector2D::toVector3D() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#toVector3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 3D form of this 2D vector, with the z coordinate set to zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#toVector4D">toVector4D</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#toPoint">toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_3d(&self) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_toVector3D(self as *const crate::QVector2D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 4D form of this 2D vector, with the z and w coordinates set to zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D QVector2D::toVector4D() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#toVector4D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 4D form of this 2D vector, with the z and w coordinates set to zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#toVector3D">toVector3D</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#toPoint">toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_4d(&self) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_toVector4D(self as *const crate::QVector2D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the x coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector2D::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#setX">setX</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#y">y</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_x(self as *const crate::QVector2D)
    }

    /// <p>Returns the y coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector2D::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#setY">setY</a>() and <a href="http://doc.qt.io/qt-5/qvector2d.html#x">x</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_y(self as *const crate::QVector2D)
    }
}

pub mod q_touch_device {
    //! C++ type: <span style='color: green;'>```QTouchDevice```</span>

    /// <p>This enum represents the type of device that generated a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTouchDevice::DeviceType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#DeviceType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum represents the type of device that generated a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct DeviceType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for DeviceType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            DeviceType(value)
        }
    }

    impl From<DeviceType> for ::std::os::raw::c_int {
        fn from(value: DeviceType) -> Self {
            value.0
        }
    }

    impl DeviceType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl DeviceType {
        /// In this type of device, the touch surface and display are integrated. This means the surface and display typically have the same size, such that there is a direct relationship between the touch points' physical positions and the coordinate reported by <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">QTouchEvent::TouchPoint</a>. As a result, Qt allows the user to interact directly with multiple QWidgets and QGraphicsItems at the same time. (C++ enum variant: <span style='color: green;'>```TouchScreen = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const TouchScreen: crate::q_touch_device::DeviceType =
            crate::q_touch_device::DeviceType(0);
        /// In this type of device, the touch surface is separate from the display. There is not a direct relationship between the physical touch location and the on-screen coordinates. Instead, they are calculated relative to the current mouse position, and the user must use the touch-pad to move this reference point. Unlike touch-screens, Qt allows users to only interact with a single <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> at a time. (C++ enum variant: <span style='color: green;'>```TouchPad = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const TouchPad: crate::q_touch_device::DeviceType =
            crate::q_touch_device::DeviceType(1);
    }

    /// <p>This enum is used with <a href="http://doc.qt.io/qt-5/qtouchdevice.html#capabilities">QTouchDevice::capabilities</a>() to indicate what kind of information the touch device or its driver can provide.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTouchDevice::CapabilityFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#CapabilityFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum is used with <a href="http://doc.qt.io/qt-5/qtouchdevice.html#capabilities">QTouchDevice::capabilities</a>() to indicate what kind of information the touch device or its driver can provide.</p>
    ///
    /// <p>The Capabilities type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;CapabilityFlag&gt;. It stores an OR combination of CapabilityFlag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CapabilityFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CapabilityFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CapabilityFlag(value)
        }
    }

    impl From<CapabilityFlag> for ::std::os::raw::c_int {
        fn from(value: CapabilityFlag) -> Self {
            value.0
        }
    }

    impl CapabilityFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CapabilityFlag {
        /// Indicates that position information is available, meaning that the pos() family of functions in the touch points return valid points. (C++ enum variant: <span style='color: green;'>```Position = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Position: crate::q_touch_device::CapabilityFlag =
            crate::q_touch_device::CapabilityFlag(1);
        /// Indicates that touch area information is available, meaning that the rect() family of functions in the touch points return valid rectangles. (C++ enum variant: <span style='color: green;'>```Area = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Area: crate::q_touch_device::CapabilityFlag =
            crate::q_touch_device::CapabilityFlag(2);
        /// Indicates that pressure information is available, meaning that pressure() returns a valid value. (C++ enum variant: <span style='color: green;'>```Pressure = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Pressure: crate::q_touch_device::CapabilityFlag =
            crate::q_touch_device::CapabilityFlag(4);
        /// Indicates that velocity information is available, meaning that velocity() returns a valid vector. (C++ enum variant: <span style='color: green;'>```Velocity = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Velocity: crate::q_touch_device::CapabilityFlag =
            crate::q_touch_device::CapabilityFlag(8);
        /// Indicates that the list returned by <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#rawScreenPositions">QTouchEvent::TouchPoint::rawScreenPositions</a>() may contain one or more positions for each touch point. This is relevant when the touch input gets filtered or corrected on driver level. (C++ enum variant: <span style='color: green;'>```RawPositions = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const RawPositions: crate::q_touch_device::CapabilityFlag =
            crate::q_touch_device::CapabilityFlag(16);
        /// Indicates that the normalized position is available, meaning that normalizedPos() returns a valid value. (C++ enum variant: <span style='color: green;'>```NormalizedPosition = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const NormalizedPosition: crate::q_touch_device::CapabilityFlag =
            crate::q_touch_device::CapabilityFlag(32);
        /// Indicates that the device synthesizes mouse events. This enum value has been introduced in Qt 5.5. (C++ enum variant: <span style='color: green;'>```MouseEmulation = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const MouseEmulation: crate::q_touch_device::CapabilityFlag =
            crate::q_touch_device::CapabilityFlag(64);
    }

    impl From<crate::q_touch_device::CapabilityFlag>
        for ::qt_core::QFlags<crate::q_touch_device::CapabilityFlag>
    {
        fn from(value: crate::q_touch_device::CapabilityFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_touch_device::CapabilityFlag>>> std::ops::BitOr<T>
        for crate::q_touch_device::CapabilityFlag
    {
        type Output = ::qt_core::QFlags<crate::q_touch_device::CapabilityFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_touch_device::CapabilityFlag> {
            Into::<::qt_core::QFlags<crate::q_touch_device::CapabilityFlag>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> class describes the device from which touch events originate.</p>
///
/// C++ class: <span style='color: green;'>```QTouchDevice```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtouchdevice.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> class describes the device from which touch events originate.</p>
/// <p>Each <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> contains a <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> pointer to allow accessing device-specific properties like type and capabilities. It is the responsibility of the platform or generic plug-ins to register the available touch devices via QWindowSystemInterface before generating any touch events. Applications do not need to instantiate this class, they should just access the global instances pointed to by <a href="http://doc.qt.io/qt-5/qtouchevent.html#device">QTouchEvent::device</a>().</p></div>
#[repr(C)]
pub struct QTouchDevice {
    _unused: u8,
}
impl QTouchDevice {
    /// <p>Returns the touch device capabilities.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QTouchDevice::CapabilityFlag> QTouchDevice::capabilities() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#capabilities">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the touch device capabilities.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#setCapabilities">setCapabilities</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capabilities(&self) -> ::qt_core::QFlags<crate::q_touch_device::CapabilityFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_capabilities(
            self as *const crate::QTouchDevice,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> class describes the device from which touch events originate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchDevice& QTouchDevice::operator=(const QTouchDevice& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> class describes the device from which touch events originate.</p>
    /// <p>Each <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> contains a <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> pointer to allow accessing device-specific properties like type and capabilities. It is the responsibility of the platform or generic plug-ins to register the available touch devices via QWindowSystemInterface before generating any touch events. Applications do not need to instantiate this class, they should just access the global instances pointed to by <a href="http://doc.qt.io/qt-5/qtouchevent.html#device">QTouchEvent::device</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTouchDevice>>,
    ) -> ::cpp_core::MutRef<crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_operator_(
            self as *mut crate::QTouchDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTouchDevice>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a list of all registered devices.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<const QTouchDevice*> QTouchDevice::devices()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#devices">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of all registered devices.</p>
    /// <p><b>Note: </b>The returned list cannot be used to add new devices. To add a simulated touch screen for an autotest, <a href="http://doc.qt.io/qt-5/qtest.html#createTouchDevice">QTest::createTouchDevice</a>() can be used. To add real touch screens to QPA plugins, the private <code>QWindowSystemInterface::registerTouchDevice()</code> function can be used.</p></div>
    #[inline(always)]
    pub unsafe fn devices() -> ::cpp_core::CppBox<crate::QListOfQTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_devices();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the maximum number of simultaneous touch points (fingers) that can be detected.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTouchDevice::maximumTouchPoints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#maximumTouchPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of simultaneous touch points (fingers) that can be detected.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#setMaximumTouchPoints">setMaximumTouchPoints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_touch_points(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_maximumTouchPoints(
            self as *const crate::QTouchDevice,
        )
    }

    /// <p>Returns the touch device name.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTouchDevice::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#name">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the touch device name.</p>
    /// <p>This string may often be empty. It is however useful for systems that have more than one touch input device because there it can be used to differentiate between the devices (i.e. to tell from which device a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> originates from).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#setName">setName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_name(self as *const crate::QTouchDevice);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a new touch device instance. By default the name is empty, the only capability is Position and type is <a href="http://doc.qt.io/qt-5/qtouchdevice.html#DeviceType-enum">TouchScreen</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchDevice::QTouchDevice()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#QTouchDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new touch device instance. By default the name is empty, the only capability is Position and type is <a href="http://doc.qt.io/qt-5/qtouchdevice.html#DeviceType-enum">TouchScreen</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_QTouchDevice();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> class describes the device from which touch events originate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchDevice::QTouchDevice(const QTouchDevice& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> class describes the device from which touch events originate.</p>
    /// <p>Each <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> contains a <a href="http://doc.qt.io/qt-5/qtouchdevice.html">QTouchDevice</a> pointer to allow accessing device-specific properties like type and capabilities. It is the responsibility of the platform or generic plug-ins to register the available touch devices via QWindowSystemInterface before generating any touch events. Applications do not need to instantiate this class, they should just access the global instances pointed to by <a href="http://doc.qt.io/qt-5/qtouchevent.html#device">QTouchEvent::device</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTouchDevice>>,
    ) -> ::cpp_core::CppBox<crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_QTouchDevice1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTouchDevice>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the capabilities <i>caps</i> supported by the device and its driver.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTouchDevice::setCapabilities(QFlags<QTouchDevice::CapabilityFlag> caps)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#setCapabilities">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the capabilities <i>caps</i> supported by the device and its driver.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#capabilities">capabilities</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_capabilities(
        &mut self,
        caps: ::qt_core::QFlags<crate::q_touch_device::CapabilityFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_setCapabilities(
            self as *mut crate::QTouchDevice,
            caps.to_int(),
        )
    }

    /// <p>Sets the maximum number of simultaneous touchpoints <i>max</i> supported by the device and its driver.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTouchDevice::setMaximumTouchPoints(int max)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#setMaximumTouchPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the maximum number of simultaneous touchpoints <i>max</i> supported by the device and its driver.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#maximumTouchPoints">maximumTouchPoints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_maximum_touch_points(&mut self, max: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_setMaximumTouchPoints(
            self as *mut crate::QTouchDevice,
            max,
        )
    }

    /// <p>Sets the <i>name</i> (a unique identifier) for the device. In most systems it is enough to leave this unset and keep the default empty name. This identifier becomes important when having multiple touch devices and a need to differentiate between them.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTouchDevice::setName(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#setName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>name</i> (a unique identifier) for the device. In most systems it is enough to leave this unset and keep the default empty name. This identifier becomes important when having multiple touch devices and a need to differentiate between them.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#name">name</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_name(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_setName(
            self as *mut crate::QTouchDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the device type <i>devType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTouchDevice::setType(QTouchDevice::DeviceType devType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#setType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the device type <i>devType</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#type">type</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_type(&mut self, dev_type: crate::q_touch_device::DeviceType) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_setType(
            self as *mut crate::QTouchDevice,
            dev_type,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the touch device type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchDevice::DeviceType QTouchDevice::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the touch device type.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#setType">setType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_touch_device::DeviceType {
        crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_type(self as *const crate::QTouchDevice)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a> class is the base class for events that describe user input.</p>
///
/// C++ class: <span style='color: green;'>```QInputEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qinputevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a> class is the base class for events that describe user input.</p></div>
#[repr(C)]
pub struct QInputEvent {
    _unused: u8,
}
impl QInputEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a> class is the base class for events that describe user input.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputEvent& QInputEvent::operator=(const QInputEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a> class is the base class for events that describe user input.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QInputEvent>>,
    ) -> ::cpp_core::MutRef<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputEvent_operator_(
            self as *mut crate::QInputEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QInputEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the keyboard modifier flags that existed immediately before the event occurred.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::KeyboardModifier> QInputEvent::modifiers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputevent.html#modifiers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the keyboard modifier flags that existed immediately before the event occurred.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers">QGuiApplication::keyboardModifiers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn modifiers(&self) -> ::qt_core::QFlags<::qt_core::KeyboardModifier> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QInputEvent_modifiers(self as *const crate::QInputEvent);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputEvent::QInputEvent(QEvent::Type type, QFlags<Qt::KeyboardModifier> modifiers = …)```</span>.
    #[inline(always)]
    pub unsafe fn new_2a(
        type_: ::qt_core::q_event::Type,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QInputEvent_QInputEvent(type_, modifiers.to_int());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputEvent::QInputEvent(QEvent::Type type)```</span>.
    #[inline(always)]
    pub unsafe fn new_1a(
        type_: ::qt_core::q_event::Type,
    ) -> ::cpp_core::CppBox<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputEvent_QInputEvent3(type_);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a> class is the base class for events that describe user input.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputEvent::QInputEvent(const QInputEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a> class is the base class for events that describe user input.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QInputEvent>>,
    ) -> ::cpp_core::CppBox<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputEvent_QInputEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QInputEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```void QInputEvent::setModifiers(QFlags<Qt::KeyboardModifier> amodifiers)```</span>.
    #[inline(always)]
    pub unsafe fn set_modifiers(
        &mut self,
        amodifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QInputEvent_setModifiers(
            self as *mut crate::QInputEvent,
            amodifiers.to_int(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QInputEvent::setTimestamp(unsigned long atimestamp)```</span>.
    #[inline(always)]
    pub unsafe fn set_timestamp(&mut self, atimestamp: ::std::os::raw::c_ulong) {
        crate::__ffi::ctr_qt_gui_ffi_QInputEvent_setTimestamp(
            self as *mut crate::QInputEvent,
            atimestamp,
        )
    }

    /// <p>Returns the window system's timestamp for this event. It will normally be in milliseconds since some arbitrary point in time, such as the time when the system was started.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned long QInputEvent::timestamp() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputevent.html#timestamp">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window system's timestamp for this event. It will normally be in milliseconds since some arbitrary point in time, such as the time when the system was started.</p></div>
    #[inline(always)]
    pub unsafe fn timestamp(&self) -> ::std::os::raw::c_ulong {
        crate::__ffi::ctr_qt_gui_ffi_QInputEvent_timestamp(self as *const crate::QInputEvent)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qenterevent.html">QEnterEvent</a> class contains parameters that describe an enter event.</p>
///
/// C++ class: <span style='color: green;'>```QEnterEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qenterevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qenterevent.html">QEnterEvent</a> class contains parameters that describe an enter event.</p>
/// <p>Enter events occur when the mouse cursor enters a window or a widget.</p></div>
#[repr(C)]
pub struct QEnterEvent {
    _unused: u8,
}
impl QEnterEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qenterevent.html">QEnterEvent</a> class contains parameters that describe an enter event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QEnterEvent& QEnterEvent::operator=(const QEnterEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qenterevent.html">QEnterEvent</a> class contains parameters that describe an enter event.</p>
    /// <p>Enter events occur when the mouse cursor enters a window or a widget.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QEnterEvent>>,
    ) -> ::cpp_core::MutRef<crate::QEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_operator_(
            self as *mut crate::QEnterEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QEnterEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the global position of the widget <i>at the time of the event</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QEnterEvent::globalPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#globalPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position of the widget <i>at the time of the event</i>.</p></div>
    #[inline(always)]
    pub unsafe fn global_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_globalPos(self as *const crate::QEnterEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the global position on the X-axis of the mouse cursor relative to the the widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QEnterEvent::globalX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#globalX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position on the X-axis of the mouse cursor relative to the the widget.</p></div>
    #[inline(always)]
    pub unsafe fn global_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_globalX(self as *const crate::QEnterEvent)
    }

    /// <p>Returns the global position on the Y-axis of the mouse cursor relative to the the widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QEnterEvent::globalY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#globalY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position on the Y-axis of the mouse cursor relative to the the widget.</p></div>
    #[inline(always)]
    pub unsafe fn global_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_globalY(self as *const crate::QEnterEvent)
    }

    /// <p>Returns the mouse cursor's position relative to the receiving widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QEnterEvent::localPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#localPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mouse cursor's position relative to the receiving widget.</p></div>
    #[inline(always)]
    pub unsafe fn local_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_localPos(self as *const crate::QEnterEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an enter event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QEnterEvent::QEnterEvent(const QPointF& localPos, const QPointF& windowPos, const QPointF& screenPos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#QEnterEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an enter event object.</p>
    /// <p>The points <i>localPos</i>, <i>windowPos</i> and <i>screenPos</i> specify the mouse cursor's position relative to the receiving widget or item, window, and screen, respectively.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        local_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        window_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_QEnterEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(local_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(window_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(screen_pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qenterevent.html">QEnterEvent</a> class contains parameters that describe an enter event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QEnterEvent::QEnterEvent(const QEnterEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qenterevent.html">QEnterEvent</a> class contains parameters that describe an enter event.</p>
    /// <p>Enter events occur when the mouse cursor enters a window or a widget.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QEnterEvent>>,
    ) -> ::cpp_core::CppBox<crate::QEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_QEnterEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QEnterEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse cursor in global screen coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QEnterEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor in global screen coordinates.</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_pos(self as *const crate::QEnterEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse cursor relative to the receiving screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QEnterEvent::screenPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#screenPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor relative to the receiving screen.</p></div>
    #[inline(always)]
    pub unsafe fn screen_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_screenPos(self as *const crate::QEnterEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the position of the mouse cursor relative to the receiving window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QEnterEvent::windowPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#windowPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor relative to the receiving window.</p></div>
    #[inline(always)]
    pub unsafe fn window_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_windowPos(self as *const crate::QEnterEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the x position of the mouse cursor relative to the receiving widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QEnterEvent::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x position of the mouse cursor relative to the receiving widget.</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_x(self as *const crate::QEnterEvent)
    }

    /// <p>Returns the y position of the mouse cursor relative to the receiving widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QEnterEvent::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qenterevent.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y position of the mouse cursor relative to the receiving widget.</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_y(self as *const crate::QEnterEvent)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmouseevent.html">QMouseEvent</a> class contains parameters that describe a mouse event.</p>
///
/// C++ class: <span style='color: green;'>```QMouseEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qmouseevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmouseevent.html">QMouseEvent</a> class contains parameters that describe a mouse event.</p>
/// <p>Mouse events occur when a mouse button is pressed or released inside a widget, or when the mouse cursor is moved.</p>
/// <p>Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with <a href="http://doc.qt.io/qt-5/qwidget.html#mouseTracking-prop">QWidget::setMouseTracking</a>().</p>
/// <p>Qt automatically grabs the mouse when a mouse button is pressed inside a widget; the widget will continue to receive mouse events until the last mouse button is released.</p>
/// <p>A mouse event contains a special accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if the mouse event is not handled by your widget. A mouse event is propagated up the parent widget chain until a widget accepts it with <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>(), or an event filter consumes it.</p>
/// <p><b>Note: </b>If a mouse event is propagated to a <a href="http://doc.qt.io/qt-5/qwidget.html">widget</a> for which <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_NoMousePropagation</a> has been set, that mouse event will not be propagated further up the parent widget chain.</p><p>The state of the keyboard modifier keys can be found by calling the <a href="http://doc.qt.io/qt-5/qinputevent.html#modifiers">modifiers()</a> function, inherited from <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a>.</p>
/// <p>The functions <a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#x">x</a>(), and <a href="http://doc.qt.io/qt-5/qmouseevent.html#y">y</a>() give the cursor position relative to the widget that receives the mouse event. If you move the widget as a result of the mouse event, use the global position returned by <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">globalPos</a>() to avoid a shaking motion.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
/// <p>Reimplement the <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> event handlers, <a href="http://doc.qt.io/qt-5/qwidget.html#mousePressEvent">QWidget::mousePressEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mouseReleaseEvent">QWidget::mouseReleaseEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mouseDoubleClickEvent">QWidget::mouseDoubleClickEvent</a>(), and <a href="http://doc.qt.io/qt-5/qwidget.html#mouseMoveEvent">QWidget::mouseMoveEvent</a>() to receive mouse events in your own widgets.</p></div>
#[repr(C)]
pub struct QMouseEvent {
    _unused: u8,
}
impl QMouseEvent {
    /// <p>Returns the button that caused the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::MouseButton QMouseEvent::button() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#button">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the button that caused the event.</p>
    /// <p>Note that the returned value is always <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::NoButton</a> for mouse move events.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#buttons">buttons</a>() and <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a>.</p></div>
    #[inline(always)]
    pub unsafe fn button(&self) -> ::qt_core::MouseButton {
        crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_button(self as *const crate::QMouseEvent)
    }

    /// <p>Returns the button state when the event was generated. The button state is a combination of <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::LeftButton</a>, <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::RightButton</a>, <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MidButton</a> using the OR operator. For mouse move events, this is all buttons that are pressed down. For mouse press and double click events this includes the button that caused the event. For mouse release events this excludes the button that caused the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::MouseButton> QMouseEvent::buttons() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#buttons">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the button state when the event was generated. The button state is a combination of <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::LeftButton</a>, <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::RightButton</a>, <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MidButton</a> using the OR operator. For mouse move events, this is all buttons that are pressed down. For mouse press and double click events this includes the button that caused the event. For mouse release events this excludes the button that caused the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#button">button</a>() and <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a>.</p></div>
    #[inline(always)]
    pub unsafe fn buttons(&self) -> ::qt_core::QFlags<::qt_core::MouseButton> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_buttons(self as *const crate::QMouseEvent);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qmouseevent.html">QMouseEvent</a> class contains parameters that describe a mouse event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMouseEvent& QMouseEvent::operator=(const QMouseEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmouseevent.html">QMouseEvent</a> class contains parameters that describe a mouse event.</p>
    /// <p>Mouse events occur when a mouse button is pressed or released inside a widget, or when the mouse cursor is moved.</p>
    /// <p>Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with <a href="http://doc.qt.io/qt-5/qwidget.html#mouseTracking-prop">QWidget::setMouseTracking</a>().</p>
    /// <p>Qt automatically grabs the mouse when a mouse button is pressed inside a widget; the widget will continue to receive mouse events until the last mouse button is released.</p>
    /// <p>A mouse event contains a special accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if the mouse event is not handled by your widget. A mouse event is propagated up the parent widget chain until a widget accepts it with <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>(), or an event filter consumes it.</p>
    /// <p><b>Note: </b>If a mouse event is propagated to a <a href="http://doc.qt.io/qt-5/qwidget.html">widget</a> for which <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_NoMousePropagation</a> has been set, that mouse event will not be propagated further up the parent widget chain.</p><p>The state of the keyboard modifier keys can be found by calling the <a href="http://doc.qt.io/qt-5/qinputevent.html#modifiers">modifiers()</a> function, inherited from <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a>.</p>
    /// <p>The functions <a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#x">x</a>(), and <a href="http://doc.qt.io/qt-5/qmouseevent.html#y">y</a>() give the cursor position relative to the widget that receives the mouse event. If you move the widget as a result of the mouse event, use the global position returned by <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">globalPos</a>() to avoid a shaking motion.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
    /// <p>Reimplement the <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> event handlers, <a href="http://doc.qt.io/qt-5/qwidget.html#mousePressEvent">QWidget::mousePressEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mouseReleaseEvent">QWidget::mouseReleaseEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mouseDoubleClickEvent">QWidget::mouseDoubleClickEvent</a>(), and <a href="http://doc.qt.io/qt-5/qwidget.html#mouseMoveEvent">QWidget::mouseMoveEvent</a>() to receive mouse events in your own widgets.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMouseEvent>>,
    ) -> ::cpp_core::MutRef<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_operator_(
            self as *mut crate::QMouseEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMouseEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the mouse event flags.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::MouseEventFlag> QMouseEvent::flags() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#flags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mouse event flags.</p>
    /// <p>The mouse event flags provide additional information about a mouse event.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#MouseEventFlag-enum">Qt::MouseEventFlag</a> and <a href="http://doc.qt.io/qt-5/qgraphicsscenemouseevent.html#flags">QGraphicsSceneMouseEvent::flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn flags(&self) -> ::qt_core::QFlags<::qt_core::MouseEventFlag> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_flags(self as *const crate::QMouseEvent);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the global position of the mouse cursor <i>at the time of the event</i>. This is important on asynchronous window systems like X11. Whenever you move your widgets around in response to mouse events, globalPos() may differ a lot from the current pointer position <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>(), and from <a href="http://doc.qt.io/qt-5/qwidget.html#mapToGlobal">QWidget::mapToGlobal</a>(<a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QMouseEvent::globalPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position of the mouse cursor <i>at the time of the event</i>. This is important on asynchronous window systems like X11. Whenever you move your widgets around in response to mouse events, globalPos() may differ a lot from the current pointer position <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>(), and from <a href="http://doc.qt.io/qt-5/qwidget.html#mapToGlobal">QWidget::mapToGlobal</a>(<a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#globalX">globalX</a>() and <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalY">globalY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_globalPos(self as *const crate::QMouseEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the global x position of the mouse cursor at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMouseEvent::globalX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global x position of the mouse cursor at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#globalY">globalY</a>() and <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_globalX(self as *const crate::QMouseEvent)
    }

    /// <p>Returns the global y position of the mouse cursor at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMouseEvent::globalY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global y position of the mouse cursor at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#globalX">globalX</a>() and <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_globalY(self as *const crate::QMouseEvent)
    }

    /// <p>Returns the position of the mouse cursor as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the widget or item that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QMouseEvent::localPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#localPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the widget or item that received the event.</p>
    /// <p>If you move the widget as a result of the mouse event, use the screen position returned by <a href="http://doc.qt.io/qt-5/qmouseevent.html#screenPos">screenPos</a>() to avoid a shaking motion.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#windowPos">windowPos</a>(), and <a href="http://doc.qt.io/qt-5/qmouseevent.html#screenPos">screenPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn local_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_localPos(self as *const crate::QMouseEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a mouse event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF& localPos, Qt::MouseButton button, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#QMouseEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a mouse event object.</p>
    /// <p>The <i>type</i> parameter must be one of <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonRelease</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonDblClick</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a>.</p>
    /// <p>The <i>localPos</i> is the mouse cursor's position relative to the receiving widget or item. The window position is set to the same value as <i>localPos</i>. The <i>button</i> that caused the event is given as a value from the <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a> enum. If the event <i>type</i> is <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">MouseMove</a>, the appropriate button for this event is <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::NoButton</a>. The mouse and keyboard states at the time of the event are specified by <i>buttons</i> and <i>modifiers</i>.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qmouseevent.html#screenPos">screenPos</a>() is initialized to <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>(), which may not be appropriate. Use the other constructor to specify the global position explicitly.</p></div>
    #[inline(always)]
    pub unsafe fn new_5a(
        type_: ::qt_core::q_event::Type,
        local_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        button: ::qt_core::MouseButton,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_QMouseEvent(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(local_pos)
                .as_raw_ptr(),
            button,
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a mouse event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF& localPos, const QPointF& screenPos, Qt::MouseButton button, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#QMouseEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a mouse event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonRelease</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonDblClick</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a>.</p>
    /// <p>The <i>localPos</i> is the mouse cursor's position relative to the receiving widget or item. The cursor's position in screen coordinates is specified by <i>screenPos</i>. The window position is set to the same value as <i>localPos</i>. The <i>button</i> that caused the event is given as a value from the <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a> enum. If the event <i>type</i> is <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">MouseMove</a>, the appropriate button for this event is <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::NoButton</a>. <i>buttons</i> is the state of all buttons at the time of the event, <i>modifiers</i> the state of all keyboard modifiers.</p></div>
    #[inline(always)]
    pub unsafe fn new_6a(
        type_: ::qt_core::q_event::Type,
        local_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        button: ::qt_core::MouseButton,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_QMouseEvent1(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(local_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(screen_pos)
                .as_raw_ptr(),
            button,
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a mouse event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF& localPos, const QPointF& windowPos, const QPointF& screenPos, Qt::MouseButton button, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#QMouseEvent-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a mouse event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonRelease</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonDblClick</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a>.</p>
    /// <p>The points <i>localPos</i>, <i>windowPos</i> and <i>screenPos</i> specify the mouse cursor's position relative to the receiving widget or item, window, and screen, respectively.</p>
    /// <p>The <i>button</i> that caused the event is given as a value from the <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a> enum. If the event <i>type</i> is <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">MouseMove</a>, the appropriate button for this event is <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::NoButton</a>. <i>buttons</i> is the state of all buttons at the time of the event, <i>modifiers</i> the state of all keyboard modifiers.</p></div>
    #[inline(always)]
    pub unsafe fn new_7a(
        type_: ::qt_core::q_event::Type,
        local_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        window_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        button: ::qt_core::MouseButton,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_QMouseEvent2(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(local_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(window_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(screen_pos)
                .as_raw_ptr(),
            button,
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Default constructs an instance of QMouseEvent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMouseEvent::QMouseEvent(QEvent::Type type, const QPointF& localPos, const QPointF& windowPos, const QPointF& screenPos, Qt::MouseButton button, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, Qt::MouseEventSource source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#QMouseEvent-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QMouseEvent.</p></div>
    #[inline(always)]
    pub unsafe fn new_8a(
        type_: ::qt_core::q_event::Type,
        local_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        window_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        button: ::qt_core::MouseButton,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        source: ::qt_core::MouseEventSource,
    ) -> ::cpp_core::CppBox<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_QMouseEvent3(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(local_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(window_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(screen_pos)
                .as_raw_ptr(),
            button,
            buttons.to_int(),
            modifiers.to_int(),
            source,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qmouseevent.html">QMouseEvent</a> class contains parameters that describe a mouse event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMouseEvent::QMouseEvent(const QMouseEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmouseevent.html">QMouseEvent</a> class contains parameters that describe a mouse event.</p>
    /// <p>Mouse events occur when a mouse button is pressed or released inside a widget, or when the mouse cursor is moved.</p>
    /// <p>Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with <a href="http://doc.qt.io/qt-5/qwidget.html#mouseTracking-prop">QWidget::setMouseTracking</a>().</p>
    /// <p>Qt automatically grabs the mouse when a mouse button is pressed inside a widget; the widget will continue to receive mouse events until the last mouse button is released.</p>
    /// <p>A mouse event contains a special accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if the mouse event is not handled by your widget. A mouse event is propagated up the parent widget chain until a widget accepts it with <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>(), or an event filter consumes it.</p>
    /// <p><b>Note: </b>If a mouse event is propagated to a <a href="http://doc.qt.io/qt-5/qwidget.html">widget</a> for which <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_NoMousePropagation</a> has been set, that mouse event will not be propagated further up the parent widget chain.</p><p>The state of the keyboard modifier keys can be found by calling the <a href="http://doc.qt.io/qt-5/qinputevent.html#modifiers">modifiers()</a> function, inherited from <a href="http://doc.qt.io/qt-5/qinputevent.html">QInputEvent</a>.</p>
    /// <p>The functions <a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#x">x</a>(), and <a href="http://doc.qt.io/qt-5/qmouseevent.html#y">y</a>() give the cursor position relative to the widget that receives the mouse event. If you move the widget as a result of the mouse event, use the global position returned by <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">globalPos</a>() to avoid a shaking motion.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
    /// <p>Reimplement the <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> event handlers, <a href="http://doc.qt.io/qt-5/qwidget.html#mousePressEvent">QWidget::mousePressEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mouseReleaseEvent">QWidget::mouseReleaseEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mouseDoubleClickEvent">QWidget::mouseDoubleClickEvent</a>(), and <a href="http://doc.qt.io/qt-5/qwidget.html#mouseMoveEvent">QWidget::mouseMoveEvent</a>() to receive mouse events in your own widgets.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMouseEvent>>,
    ) -> ::cpp_core::CppBox<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_QMouseEvent5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMouseEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse cursor, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QMouseEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor, relative to the widget that received the event.</p>
    /// <p>If you move the widget as a result of the mouse event, use the global position returned by <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">globalPos</a>() to avoid a shaking motion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_pos(self as *const crate::QMouseEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse cursor as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the screen that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QMouseEvent::screenPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#screenPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the screen that received the event.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#localPos">localPos</a>(), and <a href="http://doc.qt.io/qt-5/qmouseevent.html#windowPos">windowPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn screen_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_screenPos(self as *const crate::QMouseEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```void QMouseEvent::setLocalPos(const QPointF& localPosition)```</span>.
    #[inline(always)]
    pub unsafe fn set_local_pos(
        &mut self,
        local_position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_setLocalPos(
            self as *mut crate::QMouseEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(local_position)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns information about the mouse event source.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::MouseEventSource QMouseEvent::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#source">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns information about the mouse event source.</p>
    /// <p>The mouse event source can be used to distinguish between genuine and artificial mouse events. The latter are events that are synthesized from touch events by the operating system or Qt itself.</p>
    /// <p><b>Note: </b>Many platforms provide no such information. On such platforms <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventNotSynthesized</a> is returned always.</p><p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSource</a> and <a href="http://doc.qt.io/qt-5/qgraphicsscenemouseevent.html#source">QGraphicsSceneMouseEvent::source</a>().</p></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> ::qt_core::MouseEventSource {
        crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_source(self as *const crate::QMouseEvent)
    }

    /// <p>Returns the position of the mouse cursor as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the window that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QMouseEvent::windowPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#windowPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the window that received the event.</p>
    /// <p>If you move the widget as a result of the mouse event, use the global position returned by <a href="http://doc.qt.io/qt-5/qmouseevent.html#globalPos">globalPos</a>() to avoid a shaking motion.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qmouseevent.html#localPos">localPos</a>(), and <a href="http://doc.qt.io/qt-5/qmouseevent.html#screenPos">screenPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn window_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_windowPos(self as *const crate::QMouseEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the x position of the mouse cursor, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMouseEvent::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x position of the mouse cursor, relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#y">y</a>() and <a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_x(self as *const crate::QMouseEvent)
    }

    /// <p>Returns the y position of the mouse cursor, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMouseEvent::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmouseevent.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y position of the mouse cursor, relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmouseevent.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qmouseevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_y(self as *const crate::QMouseEvent)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qhoverevent.html">QHoverEvent</a> class contains parameters that describe a mouse event.</p>
///
/// C++ class: <span style='color: green;'>```QHoverEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qhoverevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhoverevent.html">QHoverEvent</a> class contains parameters that describe a mouse event.</p>
/// <p>Mouse events occur when a mouse cursor is moved into, out of, or within a widget, and if the widget has the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_Hover</a> attribute.</p>
/// <p>The function <a href="http://doc.qt.io/qt-5/qhoverevent.html#pos">pos</a>() gives the current cursor position, while <a href="http://doc.qt.io/qt-5/qhoverevent.html#oldPos">oldPos</a>() gives the old mouse position.</p>
/// <p>There are a few similarities between the events <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverEnter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverLeave</a>, and the events <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::Enter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::Leave</a>. However, they are slightly different because we do an update() in the event handler of <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">HoverEnter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">HoverLeave</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverMove</a> is also slightly different from <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a>. Let us consider a top-level window A containing a child B which in turn contains a child C (all with mouse tracking enabled):</p>
/// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/hoverevents.png" alt=""></p><p>Now, if you move the cursor from the top to the bottom in the middle of A, you will get the following <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a> events:</p>
/// <ol class="1" type="1"><li>A::MouseMove</li>
/// <li>B::MouseMove</li>
/// <li>C::MouseMove</li>
/// </ol>
/// <p>You will get the same events for <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverMove</a>, except that the event always propagates to the top-level regardless whether the event is accepted or not. It will only stop propagating with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_NoMousePropagation</a> attribute.</p>
/// <p>In this case the events will occur in the following way:</p>
/// <ol class="1" type="1"><li>A::HoverMove</li>
/// <li>A::HoverMove, B::HoverMove</li>
/// <li>A::HoverMove, B::HoverMove, C::HoverMove</li>
/// </ol></div>
#[repr(C)]
pub struct QHoverEvent {
    _unused: u8,
}
impl QHoverEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qhoverevent.html">QHoverEvent</a> class contains parameters that describe a mouse event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QHoverEvent& QHoverEvent::operator=(const QHoverEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhoverevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhoverevent.html">QHoverEvent</a> class contains parameters that describe a mouse event.</p>
    /// <p>Mouse events occur when a mouse cursor is moved into, out of, or within a widget, and if the widget has the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_Hover</a> attribute.</p>
    /// <p>The function <a href="http://doc.qt.io/qt-5/qhoverevent.html#pos">pos</a>() gives the current cursor position, while <a href="http://doc.qt.io/qt-5/qhoverevent.html#oldPos">oldPos</a>() gives the old mouse position.</p>
    /// <p>There are a few similarities between the events <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverEnter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverLeave</a>, and the events <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::Enter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::Leave</a>. However, they are slightly different because we do an update() in the event handler of <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">HoverEnter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">HoverLeave</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverMove</a> is also slightly different from <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a>. Let us consider a top-level window A containing a child B which in turn contains a child C (all with mouse tracking enabled):</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/hoverevents.png" alt=""></p><p>Now, if you move the cursor from the top to the bottom in the middle of A, you will get the following <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a> events:</p>
    /// <ol class="1" type="1"><li>A::MouseMove</li>
    /// <li>B::MouseMove</li>
    /// <li>C::MouseMove</li>
    /// </ol>
    /// <p>You will get the same events for <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverMove</a>, except that the event always propagates to the top-level regardless whether the event is accepted or not. It will only stop propagating with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_NoMousePropagation</a> attribute.</p>
    /// <p>In this case the events will occur in the following way:</p>
    /// <ol class="1" type="1"><li>A::HoverMove</li>
    /// <li>A::HoverMove, B::HoverMove</li>
    /// <li>A::HoverMove, B::HoverMove, C::HoverMove</li>
    /// </ol></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QHoverEvent>>,
    ) -> ::cpp_core::MutRef<crate::QHoverEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_operator_(
            self as *mut crate::QHoverEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QHoverEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a hover event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QHoverEvent::QHoverEvent(QEvent::Type type, const QPointF& pos, const QPointF& oldPos, QFlags<Qt::KeyboardModifier> modifiers = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhoverevent.html#QHoverEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a hover event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverEnter</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverLeave</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverMove</a>.</p>
    /// <p>The <i>pos</i> is the current mouse cursor's position relative to the receiving widget, while <i>oldPos</i> is its previous such position. <i>modifiers</i> hold the state of all keyboard modifiers at the time of the event.</p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        type_: ::qt_core::q_event::Type,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        old_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QHoverEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_QHoverEvent(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(old_pos)
                .as_raw_ptr(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a hover event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QHoverEvent::QHoverEvent(QEvent::Type type, const QPointF& pos, const QPointF& oldPos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhoverevent.html#QHoverEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a hover event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverEnter</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverLeave</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverMove</a>.</p>
    /// <p>The <i>pos</i> is the current mouse cursor's position relative to the receiving widget, while <i>oldPos</i> is its previous such position. <i>modifiers</i> hold the state of all keyboard modifiers at the time of the event.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        type_: ::qt_core::q_event::Type,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        old_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QHoverEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_QHoverEvent3(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(old_pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qhoverevent.html">QHoverEvent</a> class contains parameters that describe a mouse event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QHoverEvent::QHoverEvent(const QHoverEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhoverevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhoverevent.html">QHoverEvent</a> class contains parameters that describe a mouse event.</p>
    /// <p>Mouse events occur when a mouse cursor is moved into, out of, or within a widget, and if the widget has the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_Hover</a> attribute.</p>
    /// <p>The function <a href="http://doc.qt.io/qt-5/qhoverevent.html#pos">pos</a>() gives the current cursor position, while <a href="http://doc.qt.io/qt-5/qhoverevent.html#oldPos">oldPos</a>() gives the old mouse position.</p>
    /// <p>There are a few similarities between the events <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverEnter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverLeave</a>, and the events <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::Enter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::Leave</a>. However, they are slightly different because we do an update() in the event handler of <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">HoverEnter</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">HoverLeave</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverMove</a> is also slightly different from <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a>. Let us consider a top-level window A containing a child B which in turn contains a child C (all with mouse tracking enabled):</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/hoverevents.png" alt=""></p><p>Now, if you move the cursor from the top to the bottom in the middle of A, you will get the following <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseMove</a> events:</p>
    /// <ol class="1" type="1"><li>A::MouseMove</li>
    /// <li>B::MouseMove</li>
    /// <li>C::MouseMove</li>
    /// </ol>
    /// <p>You will get the same events for <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverMove</a>, except that the event always propagates to the top-level regardless whether the event is accepted or not. It will only stop propagating with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_NoMousePropagation</a> attribute.</p>
    /// <p>In this case the events will occur in the following way:</p>
    /// <ol class="1" type="1"><li>A::HoverMove</li>
    /// <li>A::HoverMove, B::HoverMove</li>
    /// <li>A::HoverMove, B::HoverMove, C::HoverMove</li>
    /// </ol></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QHoverEvent>>,
    ) -> ::cpp_core::CppBox<crate::QHoverEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_QHoverEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QHoverEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the previous position of the mouse cursor, relative to the widget that received the event. If there is no previous position, oldPos() will return the same position as <a href="http://doc.qt.io/qt-5/qhoverevent.html#pos">pos</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QHoverEvent::oldPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhoverevent.html#oldPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the previous position of the mouse cursor, relative to the widget that received the event. If there is no previous position, oldPos() will return the same position as <a href="http://doc.qt.io/qt-5/qhoverevent.html#pos">pos</a>().</p>
    /// <p>On <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverEnter</a> events, this position will always be <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>(-1, -1).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhoverevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn old_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_oldPos(self as *const crate::QHoverEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the previous position of the mouse cursor, relative to the widget that received the event. If there is no previous position, oldPosF() will return the same position as <a href="http://doc.qt.io/qt-5/qhoverevent.html#posF">posF</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QHoverEvent::oldPosF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhoverevent.html#oldPosF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the previous position of the mouse cursor, relative to the widget that received the event. If there is no previous position, oldPosF() will return the same position as <a href="http://doc.qt.io/qt-5/qhoverevent.html#posF">posF</a>().</p>
    /// <p>On <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverEnter</a> events, this position will always be <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>(-1, -1).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhoverevent.html#posF">posF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn old_pos_f(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_oldPosF(self as *const crate::QHoverEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the position of the mouse cursor, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QHoverEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhoverevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor, relative to the widget that received the event.</p>
    /// <p>On <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverLeave</a> events, this position will always be <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>(-1, -1).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhoverevent.html#oldPos">oldPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_pos(self as *const crate::QHoverEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse cursor, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QHoverEvent::posF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhoverevent.html#posF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor, relative to the widget that received the event.</p>
    /// <p>On <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::HoverLeave</a> events, this position will always be <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>(-1, -1).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhoverevent.html#oldPosF">oldPosF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos_f(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_posF(self as *const crate::QHoverEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qwheelevent.html">QWheelEvent</a> class contains parameters that describe a wheel event.</p>
///
/// C++ class: <span style='color: green;'>```QWheelEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qwheelevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwheelevent.html">QWheelEvent</a> class contains parameters that describe a wheel event.</p>
/// <p>Wheel events are sent to the widget under the mouse cursor, but if that widget does not handle the event they are sent to the focus widget. Wheel events are generated for both mouse wheels and trackpad scroll gestures. There are two ways to read the wheel event delta: <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>() returns the delta in wheel degrees. This value is always provided. <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>() returns the delta in screen pixels and is available on platforms that have high-resolution trackpads, such as <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. If that is the case, <a href="http://doc.qt.io/qt-5/qwheelevent.html#source">source</a>() will return <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedBySystem</a>.</p>
/// <p>The functions <a href="http://doc.qt.io/qt-5/qwheelevent.html#pos">pos</a>() and <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPos">globalPos</a>() return the mouse cursor's location at the time of the event.</p>
/// <p>A wheel event contains a special accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if you do not handle the wheel event; this ensures that it will be sent to the parent widget.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
/// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#wheelEvent">QWidget::wheelEvent</a>() receives wheel events.</p></div>
#[repr(C)]
pub struct QWheelEvent {
    _unused: u8,
}
impl QWheelEvent {
    /// <p>Returns the distance that the wheel is rotated, in eighths of a degree. A positive value indicates that the wheel was rotated forwards away from the user; a negative value indicates that the wheel was rotated backwards toward the user.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QWheelEvent::angleDelta() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance that the wheel is rotated, in eighths of a degree. A positive value indicates that the wheel was rotated forwards away from the user; a negative value indicates that the wheel was rotated backwards toward the user.</p>
    /// <p>Most mouse types work in steps of 15 degrees, in which case the delta value is a multiple of 120; i.e., 120 units * 1/8 = 15 degrees.</p>
    /// <p>However, some mice have finer-resolution wheels and send delta values that are less than 120 units (less than 15 degrees). To support this possibility, you can either cumulatively add the delta values from events until the value of 120 is reached, then scroll the widget, or you can partially scroll the widget in response to each wheel event.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> MyWidget<span class="operator">::</span>wheelEvent(<span class="type"><a href="http://doc.qt.io/qt-5/qwheelevent.html#QWheelEvent">QWheelEvent</a></span> <span class="operator">*</span>event)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span> numPixels <span class="operator">=</span> event<span class="operator">-</span><span class="operator">&gt;</span>pixelDelta();
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span> numDegrees <span class="operator">=</span> event<span class="operator">-</span><span class="operator">&gt;</span>angleDelta() <span class="operator">/</span> <span class="number">8</span>;
    ///
    /// &#32;     <span class="keyword">if</span> (<span class="operator">!</span>numPixels<span class="operator">.</span>isNull()) {
    /// &#32;   &#32;     scrollWithPixels(numPixels);
    /// &#32;     } <span class="keyword">else</span> <span class="keyword">if</span> (<span class="operator">!</span>numDegrees<span class="operator">.</span>isNull()) {
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span> numSteps <span class="operator">=</span> numDegrees <span class="operator">/</span> <span class="number">15</span>;
    /// &#32;   &#32;     scrollWithDegrees(numSteps);
    /// &#32;     }
    ///
    /// &#32;     event<span class="operator">-</span><span class="operator">&gt;</span>accept();
    ///   }
    ///
    /// </pre>
    /// <p><b>Note: </b>On platforms that support scrolling <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">phases</a>, the delta may be null when:</p><ul>
    /// <li>scrolling is about to begin, but the distance did not yet change (<a href="http://doc.qt.io/qt-5/qt.html#ScrollPhase-enum">Qt::ScrollBegin</a>),</li>
    /// <li>or scrolling has ended and the distance did not change anymore (<a href="http://doc.qt.io/qt-5/qt.html#ScrollPhase-enum">Qt::ScrollEnd</a>).</li>
    /// </ul></div>
    #[inline(always)]
    pub unsafe fn angle_delta(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_angleDelta(self as *const crate::QWheelEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the mouse state when the event occurred.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::MouseButton> QWheelEvent::buttons() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#buttons">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mouse state when the event occurred.</p></div>
    #[inline(always)]
    pub unsafe fn buttons(&self) -> ::qt_core::QFlags<::qt_core::MouseButton> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_buttons(self as *const crate::QWheelEvent);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qwheelevent.html">QWheelEvent</a> class contains parameters that describe a wheel event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWheelEvent& QWheelEvent::operator=(const QWheelEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwheelevent.html">QWheelEvent</a> class contains parameters that describe a wheel event.</p>
    /// <p>Wheel events are sent to the widget under the mouse cursor, but if that widget does not handle the event they are sent to the focus widget. Wheel events are generated for both mouse wheels and trackpad scroll gestures. There are two ways to read the wheel event delta: <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>() returns the delta in wheel degrees. This value is always provided. <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>() returns the delta in screen pixels and is available on platforms that have high-resolution trackpads, such as <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. If that is the case, <a href="http://doc.qt.io/qt-5/qwheelevent.html#source">source</a>() will return <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedBySystem</a>.</p>
    /// <p>The functions <a href="http://doc.qt.io/qt-5/qwheelevent.html#pos">pos</a>() and <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPos">globalPos</a>() return the mouse cursor's location at the time of the event.</p>
    /// <p>A wheel event contains a special accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if you do not handle the wheel event; this ensures that it will be sent to the parent widget.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#wheelEvent">QWidget::wheelEvent</a>() receives wheel events.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QWheelEvent>>,
    ) -> ::cpp_core::MutRef<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_operator_(
            self as *mut crate::QWheelEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QWheelEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function has been deprecated, use <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>() or <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWheelEvent::delta() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent-obsolete.html#delta">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function has been deprecated, use <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>() or <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn delta(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_delta(self as *const crate::QWheelEvent)
    }

    /// <p>Returns the global position of the mouse pointer <i>at the time of the event</i>. This is important on asynchronous window systems such as X11; whenever you move your widgets around in response to mouse events, globalPos() can differ a lot from the current cursor position returned by <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QWheelEvent::globalPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position of the mouse pointer <i>at the time of the event</i>. This is important on asynchronous window systems such as X11; whenever you move your widgets around in response to mouse events, globalPos() can differ a lot from the current cursor position returned by <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#globalX">globalX</a>() and <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalY">globalY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_globalPos(self as *const crate::QWheelEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the global position of the mouse pointer <i>at the time of the event</i>. This is important on asynchronous window systems such as X11; whenever you move your widgets around in response to mouse events, globalPosF() can differ a lot from the current cursor position returned by <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QWheelEvent::globalPosF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position of the mouse pointer <i>at the time of the event</i>. This is important on asynchronous window systems such as X11; whenever you move your widgets around in response to mouse events, globalPosF() can differ a lot from the current cursor position returned by <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#posF">posF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_pos_f(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_globalPosF(self as *const crate::QWheelEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the global x position of the mouse cursor at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWheelEvent::globalX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global x position of the mouse cursor at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#globalY">globalY</a>() and <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_globalX(self as *const crate::QWheelEvent)
    }

    /// <p>Returns the global y position of the mouse cursor at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWheelEvent::globalY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global y position of the mouse cursor at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#globalX">globalX</a>() and <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_globalY(self as *const crate::QWheelEvent)
    }

    /// <p>Returns whether the delta values delivered with the event are inverted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWheelEvent::inverted() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#inverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the delta values delivered with the event are inverted.</p>
    /// <p>Normally, a vertical wheel will produce a <a href="http://doc.qt.io/qt-5/qwheelevent.html">QWheelEvent</a> with positive delta values if the top of the wheel is rotating away from the hand operating it. Similarly, a horizontal wheel movement will produce a <a href="http://doc.qt.io/qt-5/qwheelevent.html">QWheelEvent</a> with positive delta values if the top of the wheel is moved to the left.</p>
    /// <p>However, on some platforms this is configurable, so that the same operations described above will produce negative delta values (but with the same magnitude). With the inverted property a wheel event consumer can choose to always follow the direction of the wheel, regardless of the system settings, but only for specific widgets. (One such use case could be that the user is rotating the wheel in the same direction as a visual Tumbler rotates. Another usecase is to make a slider handle follow the direction of movement of fingers on a touchpad regardless of system configuration.)</p>
    /// <p><b>Note: </b>Many platforms provide no such information. On such platforms inverted always returns false.</p><p>This function was introduced in  Qt 5.7.</p></div>
    #[inline(always)]
    pub unsafe fn inverted(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_inverted(self as *const crate::QWheelEvent)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QPointF& pos, int delta, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, Qt::Orientation orient = …)```</span>.
    #[inline(always)]
    pub unsafe fn from_q_point_f_int_q_flags_mouse_button_q_flags_keyboard_modifier_orientation(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        delta: ::std::os::raw::c_int,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        orient: ::qt_core::Orientation,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            delta,
            buttons.to_int(),
            modifiers.to_int(),
            orient,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QPointF& pos, const QPointF& globalPos, int delta, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, Qt::Orientation orient = …)```</span>.
    #[inline(always)]
    pub unsafe fn from_2_q_point_f_int_q_flags_mouse_button_q_flags_keyboard_modifier_orientation(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        delta: ::std::os::raw::c_int,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        orient: ::qt_core::Orientation,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            delta,
            buttons.to_int(),
            modifiers.to_int(),
            orient,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a wheel event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QPointF& pos, const QPointF& globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#QWheelEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a wheel event object.</p>
    /// <p>The <i>pos</i> provides the location of the mouse cursor within the window. The position in global coordinates is specified by <i>globalPos</i>.</p>
    /// <p><i>pixelDelta</i> contains the scrolling distance in pixels on screen, while <i>angleDelta</i> contains the wheel rotation distance. <i>pixelDelta</i> is optional and can be null.</p>
    /// <p>The mouse and keyboard states at the time of the event are specified by <i>buttons</i> and <i>modifiers</i>.</p>
    /// <p>For backwards compatibility, the event can also hold monodirectional wheel event data: <i>qt4Delta</i> specifies the rotation, and <i>qt4Orientation</i> the direction.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">phase</a>() is initialized to <a href="http://doc.qt.io/qt-5/qt.html#ScrollPhase-enum">Qt::ScrollUpdate</a>. Use the other constructor to specify the phase explicitly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#posF">posF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">globalPosF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>(), and <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_q_point_f2_q_point_int_orientation_q_flags_mouse_button_q_flags_keyboard_modifier(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        pixel_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        angle_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        qt4_delta: ::std::os::raw::c_int,
        qt4_orientation: ::qt_core::Orientation,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pixel_delta)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(angle_delta)
                .as_raw_ptr(),
            qt4_delta,
            qt4_orientation,
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a wheel event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QPointF& pos, const QPointF& globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, Qt::ScrollPhase phase)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#QWheelEvent-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a wheel event object.</p>
    /// <p>The <i>pos</i> provides the location of the mouse cursor within the window. The position in global coordinates is specified by <i>globalPos</i>.</p>
    /// <p><i>pixelDelta</i> contains the scrolling distance in pixels on screen, while <i>angleDelta</i> contains the wheel rotation distance. <i>pixelDelta</i> is optional and can be null.</p>
    /// <p>The mouse and keyboard states at the time of the event are specified by <i>buttons</i> and <i>modifiers</i>.</p>
    /// <p>For backwards compatibility, the event can also hold monodirectional wheel event data: <i>qt4Delta</i> specifies the rotation, and <i>qt4Orientation</i> the direction.</p>
    /// <p>The scrolling phase of the event is specified by <i>phase</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#posF">posF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">globalPosF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>(), and <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">phase</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_q_point_f2_q_point_int_orientation_q_flags_mouse_button_q_flags_keyboard_modifier_scroll_phase(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        pixel_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        angle_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        qt4_delta: ::std::os::raw::c_int,
        qt4_orientation: ::qt_core::Orientation,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        phase: ::qt_core::ScrollPhase,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pixel_delta)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(angle_delta)
                .as_raw_ptr(),
            qt4_delta,
            qt4_orientation,
            buttons.to_int(),
            modifiers.to_int(),
            phase,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a wheel event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QPointF& pos, const QPointF& globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, Qt::ScrollPhase phase, Qt::MouseEventSource source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#QWheelEvent-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a wheel event object.</p>
    /// <p>The <i>pos</i> provides the location of the mouse cursor within the window. The position in global coordinates is specified by <i>globalPos</i>.</p>
    /// <p><i>pixelDelta</i> contains the scrolling distance in pixels on screen, while <i>angleDelta</i> contains the wheel rotation distance. <i>pixelDelta</i> is optional and can be null.</p>
    /// <p>The mouse and keyboard states at the time of the event are specified by <i>buttons</i> and <i>modifiers</i>.</p>
    /// <p>For backwards compatibility, the event can also hold monodirectional wheel event data: <i>qt4Delta</i> specifies the rotation, and <i>qt4Orientation</i> the direction.</p>
    /// <p>The scrolling phase of the event is specified by <i>phase</i>.</p>
    /// <p>If the wheel event comes from a physical mouse wheel, <i>source</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventNotSynthesized</a>. If it comes from a gesture detected by the operating system, or from a non-mouse hardware device, such that <i>pixelDelta</i> is directly related to finger movement, <i>source</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedBySystem</a>. If it comes from Qt, source would be set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedByQt</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#posF">posF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">globalPosF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>(), and <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">phase</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_q_point_f2_q_point_int_orientation_q_flags_mouse_button_q_flags_keyboard_modifier_scroll_phase_mouse_event_source(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        pixel_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        angle_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        qt4_delta: ::std::os::raw::c_int,
        qt4_orientation: ::qt_core::Orientation,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        phase: ::qt_core::ScrollPhase,
        source: ::qt_core::MouseEventSource,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pixel_delta)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(angle_delta)
                .as_raw_ptr(),
            qt4_delta,
            qt4_orientation,
            buttons.to_int(),
            modifiers.to_int(),
            phase,
            source,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a wheel event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QPointF& pos, const QPointF& globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, Qt::ScrollPhase phase, Qt::MouseEventSource source, bool inverted)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#QWheelEvent-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a wheel event object.</p>
    /// <p>The <i>pos</i> provides the location of the mouse cursor within the window. The position in global coordinates is specified by <i>globalPos</i>.</p>
    /// <p><i>pixelDelta</i> contains the scrolling distance in pixels on screen, while <i>angleDelta</i> contains the wheel rotation distance. <i>pixelDelta</i> is optional and can be null.</p>
    /// <p>The mouse and keyboard states at the time of the event are specified by <i>buttons</i> and <i>modifiers</i>.</p>
    /// <p>For backwards compatibility, the event can also hold monodirectional wheel event data: <i>qt4Delta</i> specifies the rotation, and <i>qt4Orientation</i> the direction.</p>
    /// <p>The scrolling phase of the event is specified by <i>phase</i>.</p>
    /// <p>If the wheel event comes from a physical mouse wheel, <i>source</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventNotSynthesized</a>. If it comes from a gesture detected by the operating system, or from a non-mouse hardware device, such that <i>pixelDelta</i> is directly related to finger movement, <i>source</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedBySystem</a>. If it comes from Qt, source would be set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedByQt</a>.</p>
    /// <p>If the system is configured to invert the delta values delivered with the event (such as natural scrolling of the touchpad on OS X), <i>inverted</i> should be <code>true</code>. Otherwise, <i>inverted</i> is <code>false</code></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#posF">posF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">globalPosF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>(), and <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">phase</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_q_point_f2_q_point_int_orientation_q_flags_mouse_button_q_flags_keyboard_modifier_scroll_phase_mouse_event_source_bool(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        pixel_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        angle_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        qt4_delta: ::std::os::raw::c_int,
        qt4_orientation: ::qt_core::Orientation,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        phase: ::qt_core::ScrollPhase,
        source: ::qt_core::MouseEventSource,
        inverted: bool,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent5(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pixel_delta)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(angle_delta)
                .as_raw_ptr(),
            qt4_delta,
            qt4_orientation,
            buttons.to_int(),
            modifiers.to_int(),
            phase,
            source,
            inverted,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QPointF& pos, int delta, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    #[inline(always)]
    pub unsafe fn from_q_point_f_int_q_flags_mouse_button_q_flags_keyboard_modifier(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        delta: ::std::os::raw::c_int,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent8(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            delta,
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QPointF& pos, const QPointF& globalPos, int delta, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    #[inline(always)]
    pub unsafe fn from_2_q_point_f_int_q_flags_mouse_button_q_flags_keyboard_modifier(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        delta: ::std::os::raw::c_int,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent9(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            delta,
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a wheel event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoint angleDelta, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, Qt::ScrollPhase phase, bool inverted, Qt::MouseEventSource source = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#QWheelEvent-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a wheel event object.</p>
    /// <p>The <i>pos</i> provides the location of the mouse cursor within the window. The position in global coordinates is specified by <i>globalPos</i>.</p>
    /// <p><i>pixelDelta</i> contains the scrolling distance in pixels on screen, while <i>angleDelta</i> contains the wheel rotation distance. <i>pixelDelta</i> is optional and can be null.</p>
    /// <p>The mouse and keyboard states at the time of the event are specified by <i>buttons</i> and <i>modifiers</i>.</p>
    /// <p>The scrolling phase of the event is specified by <i>phase</i>.</p>
    /// <p>If the wheel event comes from a physical mouse wheel, <i>source</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventNotSynthesized</a>. If it comes from a gesture detected by the operating system, or from a non-mouse hardware device, such that <i>pixelDelta</i> is directly related to finger movement, <i>source</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedBySystem</a>. If it comes from Qt, source would be set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedByQt</a>.</p>
    /// <p>If the system is configured to invert the delta values delivered with the event (such as natural scrolling of the touchpad on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>), <i>inverted</i> should be <code>true</code>. Otherwise, <i>inverted</i> is <code>false</code></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#posF">posF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">globalPosF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>(), and <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">phase</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn from_2_q_point_f2_q_point_q_flags_mouse_button_q_flags_keyboard_modifier_scroll_phase_bool_mouse_event_source(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        pixel_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        angle_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        phase: ::qt_core::ScrollPhase,
        inverted: bool,
        source: ::qt_core::MouseEventSource,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent20(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pixel_delta)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(angle_delta)
                .as_raw_ptr(),
            buttons.to_int(),
            modifiers.to_int(),
            phase,
            inverted,
            source,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a wheel event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoint angleDelta, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, Qt::ScrollPhase phase, bool inverted)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#QWheelEvent-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a wheel event object.</p>
    /// <p>The <i>pos</i> provides the location of the mouse cursor within the window. The position in global coordinates is specified by <i>globalPos</i>.</p>
    /// <p><i>pixelDelta</i> contains the scrolling distance in pixels on screen, while <i>angleDelta</i> contains the wheel rotation distance. <i>pixelDelta</i> is optional and can be null.</p>
    /// <p>The mouse and keyboard states at the time of the event are specified by <i>buttons</i> and <i>modifiers</i>.</p>
    /// <p>The scrolling phase of the event is specified by <i>phase</i>.</p>
    /// <p>If the wheel event comes from a physical mouse wheel, <i>source</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventNotSynthesized</a>. If it comes from a gesture detected by the operating system, or from a non-mouse hardware device, such that <i>pixelDelta</i> is directly related to finger movement, <i>source</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedBySystem</a>. If it comes from Qt, source would be set to <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedByQt</a>.</p>
    /// <p>If the system is configured to invert the delta values delivered with the event (such as natural scrolling of the touchpad on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>), <i>inverted</i> should be <code>true</code>. Otherwise, <i>inverted</i> is <code>false</code></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#posF">posF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">globalPosF</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>(), and <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">phase</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn from_2_q_point_f2_q_point_q_flags_mouse_button_q_flags_keyboard_modifier_scroll_phase_bool(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        pixel_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        angle_delta: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        phase: ::qt_core::ScrollPhase,
        inverted: bool,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent21(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pixel_delta)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(angle_delta)
                .as_raw_ptr(),
            buttons.to_int(),
            modifiers.to_int(),
            phase,
            inverted,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qwheelevent.html">QWheelEvent</a> class contains parameters that describe a wheel event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWheelEvent::QWheelEvent(const QWheelEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwheelevent.html">QWheelEvent</a> class contains parameters that describe a wheel event.</p>
    /// <p>Wheel events are sent to the widget under the mouse cursor, but if that widget does not handle the event they are sent to the focus widget. Wheel events are generated for both mouse wheels and trackpad scroll gestures. There are two ways to read the wheel event delta: <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>() returns the delta in wheel degrees. This value is always provided. <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">pixelDelta</a>() returns the delta in screen pixels and is available on platforms that have high-resolution trackpads, such as <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. If that is the case, <a href="http://doc.qt.io/qt-5/qwheelevent.html#source">source</a>() will return <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSynthesizedBySystem</a>.</p>
    /// <p>The functions <a href="http://doc.qt.io/qt-5/qwheelevent.html#pos">pos</a>() and <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPos">globalPos</a>() return the mouse cursor's location at the time of the event.</p>
    /// <p>A wheel event contains a special accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if you do not handle the wheel event; this ensures that it will be sent to the parent widget.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#wheelEvent">QWidget::wheelEvent</a>() receives wheel events.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QWheelEvent>>,
    ) -> ::cpp_core::CppBox<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_QWheelEvent7(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QWheelEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the wheel's orientation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::Orientation QWheelEvent::orientation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent-obsolete.html#orientation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the wheel's orientation.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn orientation(&self) -> ::qt_core::Orientation {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_orientation(self as *const crate::QWheelEvent)
    }

    /// <p>Returns the scrolling phase of this wheel event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::ScrollPhase QWheelEvent::phase() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the scrolling phase of this wheel event.</p>
    /// <p><b>Note: </b>The <a href="http://doc.qt.io/qt-5/qt.html#ScrollPhase-enum">Qt::ScrollBegin</a> and <a href="http://doc.qt.io/qt-5/qt.html#ScrollPhase-enum">Qt::ScrollEnd</a> phases are currently supported only on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>.</p><p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn phase(&self) -> ::qt_core::ScrollPhase {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_phase(self as *const crate::QWheelEvent)
    }

    /// <p>Returns the scrolling distance in pixels on screen. This value is provided on platforms that support high-resolution pixel-based delta values, such as <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. The value should be used directly to scroll content on screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QWheelEvent::pixelDelta() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#pixelDelta">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the scrolling distance in pixels on screen. This value is provided on platforms that support high-resolution pixel-based delta values, such as <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. The value should be used directly to scroll content on screen.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> MyWidget<span class="operator">::</span>wheelEvent(<span class="type"><a href="http://doc.qt.io/qt-5/qwheelevent.html#QWheelEvent">QWheelEvent</a></span> <span class="operator">*</span>event)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span> numPixels <span class="operator">=</span> event<span class="operator">-</span><span class="operator">&gt;</span>pixelDelta();
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span> numDegrees <span class="operator">=</span> event<span class="operator">-</span><span class="operator">&gt;</span>angleDelta() <span class="operator">/</span> <span class="number">8</span>;
    ///
    /// &#32;     <span class="keyword">if</span> (<span class="operator">!</span>numPixels<span class="operator">.</span>isNull()) {
    /// &#32;   &#32;     scrollWithPixels(numPixels);
    /// &#32;     } <span class="keyword">else</span> <span class="keyword">if</span> (<span class="operator">!</span>numDegrees<span class="operator">.</span>isNull()) {
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span> numSteps <span class="operator">=</span> numDegrees <span class="operator">/</span> <span class="number">15</span>;
    /// &#32;   &#32;     scrollWithDegrees(numSteps);
    /// &#32;     }
    ///
    /// &#32;     event<span class="operator">-</span><span class="operator">&gt;</span>accept();
    ///   }
    ///
    /// </pre>
    /// <p><b>Note: </b>On platforms that support scrolling <a href="http://doc.qt.io/qt-5/qwheelevent.html#phase">phases</a>, the delta may be null when:</p><ul>
    /// <li>scrolling is about to begin, but the distance did not yet change (<a href="http://doc.qt.io/qt-5/qt.html#ScrollPhase-enum">Qt::ScrollBegin</a>),</li>
    /// <li>or scrolling has ended and the distance did not change anymore (<a href="http://doc.qt.io/qt-5/qt.html#ScrollPhase-enum">Qt::ScrollEnd</a>).</li>
    /// </ul>
    /// <p><b>Note: </b>On X11 this value is driver specific and unreliable, use <a href="http://doc.qt.io/qt-5/qwheelevent.html#angleDelta">angleDelta</a>() instead</p></div>
    #[inline(always)]
    pub unsafe fn pixel_delta(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_pixelDelta(self as *const crate::QWheelEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse cursor relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QWheelEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor relative to the widget that received the event.</p>
    /// <p>If you move your widgets around in response to mouse events, use <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPos">globalPos</a>() instead of this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qwheelevent.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_pos(self as *const crate::QWheelEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse cursor relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QWheelEvent::posF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#posF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor relative to the widget that received the event.</p>
    /// <p>If you move your widgets around in response to mouse events, use <a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">globalPosF</a>() instead of this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#globalPosF">globalPosF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos_f(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_posF(self as *const crate::QWheelEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns information about the wheel event source.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::MouseEventSource QWheelEvent::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#source">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns information about the wheel event source.</p>
    /// <p>The source can be used to distinguish between events that come from a mouse with a physical wheel and events that are generated by some other means, such as a flick gesture on a touchpad.</p>
    /// <p><b>Note: </b>Many platforms provide no such information. On such platforms <a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventNotSynthesized</a> is returned always.</p><p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#MouseEventSource-enum">Qt::MouseEventSource</a>.</p></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> ::qt_core::MouseEventSource {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_source(self as *const crate::QWheelEvent)
    }

    /// <p>Returns the x position of the mouse cursor, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWheelEvent::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x position of the mouse cursor, relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#y">y</a>() and <a href="http://doc.qt.io/qt-5/qwheelevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_x(self as *const crate::QWheelEvent)
    }

    /// <p>Returns the y position of the mouse cursor, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWheelEvent::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwheelevent.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y position of the mouse cursor, relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwheelevent.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qwheelevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_y(self as *const crate::QWheelEvent)
    }
}

pub mod q_tablet_event {
    //! C++ type: <span style='color: green;'>```QTabletEvent```</span>

    /// <p>This enum defines what type of device is generating the event.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTabletEvent::TabletDevice```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#TabletDevice-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines what type of device is generating the event.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.1.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct TabletDevice(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for TabletDevice {
        fn from(value: ::std::os::raw::c_int) -> Self {
            TabletDevice(value)
        }
    }

    impl From<TabletDevice> for ::std::os::raw::c_int {
        fn from(value: TabletDevice) -> Self {
            value.0
        }
    }

    impl TabletDevice {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl TabletDevice {
        /// No device, or an unknown device. (C++ enum variant: <span style='color: green;'>```NoDevice = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoDevice: crate::q_tablet_event::TabletDevice =
            crate::q_tablet_event::TabletDevice(0);
        /// A Puck (a device that is similar to a flat mouse with a transparent circle with cross-hairs). (C++ enum variant: <span style='color: green;'>```Puck = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Puck: crate::q_tablet_event::TabletDevice =
            crate::q_tablet_event::TabletDevice(1);
        /// A Stylus. (C++ enum variant: <span style='color: green;'>```Stylus = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Stylus: crate::q_tablet_event::TabletDevice =
            crate::q_tablet_event::TabletDevice(2);
        /// An airbrush (C++ enum variant: <span style='color: green;'>```Airbrush = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Airbrush: crate::q_tablet_event::TabletDevice =
            crate::q_tablet_event::TabletDevice(3);
        /// A 4D Mouse. (C++ enum variant: <span style='color: green;'>```FourDMouse = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const FourDMouse: crate::q_tablet_event::TabletDevice =
            crate::q_tablet_event::TabletDevice(4);
        /// C++ enum variant: <span style='color: green;'>```XFreeEraser = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const XFreeEraser: crate::q_tablet_event::TabletDevice =
            crate::q_tablet_event::TabletDevice(5);
        /// A special stylus that also knows about rotation (a 6D stylus). (C++ enum variant: <span style='color: green;'>```RotationStylus = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const RotationStylus: crate::q_tablet_event::TabletDevice =
            crate::q_tablet_event::TabletDevice(6);
    }

    /// <p>This enum defines what type of point is generating the event.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTabletEvent::PointerType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#PointerType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines what type of point is generating the event.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#pointerType">pointerType</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PointerType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PointerType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PointerType(value)
        }
    }

    impl From<PointerType> for ::std::os::raw::c_int {
        fn from(value: PointerType) -> Self {
            value.0
        }
    }

    impl PointerType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PointerType {
        /// An unknown device. (C++ enum variant: <span style='color: green;'>```UnknownPointer = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const UnknownPointer: crate::q_tablet_event::PointerType =
            crate::q_tablet_event::PointerType(0);
        /// Tip end of a stylus-like device (the narrow end of the pen). (C++ enum variant: <span style='color: green;'>```Pen = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Pen: crate::q_tablet_event::PointerType = crate::q_tablet_event::PointerType(1);
        /// Any puck-like device. (C++ enum variant: <span style='color: green;'>```Cursor = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cursor: crate::q_tablet_event::PointerType =
            crate::q_tablet_event::PointerType(2);
        /// Eraser end of a stylus-like device (the broad end of the pen). (C++ enum variant: <span style='color: green;'>```Eraser = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Eraser: crate::q_tablet_event::PointerType =
            crate::q_tablet_event::PointerType(3);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> class contains parameters that describe a Tablet event.</p>
///
/// C++ class: <span style='color: green;'>```QTabletEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtabletevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> class contains parameters that describe a Tablet event.</p>
/// <p><i>Tablet events</i> are generated from tablet peripherals such as Wacom tablets and various other brands, and electromagnetic stylus devices included with some types of tablet computers. (It is not the same as <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> which a touchscreen generates, even when a passive stylus is used on a touchscreen.)</p>
/// <p>Tablet events are similar to mouse events; for example, the <a href="http://doc.qt.io/qt-5/qtabletevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalX">globalX</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalY">globalY</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>() accessors provide the cursor position, and you can see which <a href="http://doc.qt.io/qt-5/qtabletevent.html#buttons">buttons</a>() are pressed (pressing the stylus tip against the tablet surface is equivalent to a left mouse button). But tablet events also pass through some extra information that the tablet device driver provides; for example, you might want to do subpixel rendering with higher resolution coordinates (<a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalX">hiResGlobalX</a>() and <a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalY">hiResGlobalY</a>()), adjust color brightness based on the <a href="http://doc.qt.io/qt-5/qtabletevent.html#pressure">pressure</a>() of the tool against the tablet surface, use different brushes depending on the type of tool in use (<a href="http://doc.qt.io/qt-5/qtabletevent.html#device">device</a>()), modulate the brush shape in some way according to the X-axis and Y-axis tilt of the tool with respect to the tablet surface (<a href="http://doc.qt.io/qt-5/qtabletevent.html#xTilt">xTilt</a>() and <a href="http://doc.qt.io/qt-5/qtabletevent.html#yTilt">yTilt</a>()), and use a virtual eraser instead of a brush if the user switches to the other end of a double-ended stylus (<a href="http://doc.qt.io/qt-5/qtabletevent.html#pointerType">pointerType</a>()).</p>
/// <p>Every event contains an accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#accept">QTabletEvent::accept</a>() if you handle the tablet event; otherwise it will be sent to the parent widget. The exception are <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletEnterProximity</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletLeaveProximity</a> events: these are only sent to <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> and do not check whether or not they are accepted.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse, tablet and keyboard events for a widget.</p>
/// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#tabletEvent">QWidget::tabletEvent</a>() receives <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletRelease</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletMove</a> events. Qt will first send a tablet event, then if it is not accepted by any widget, it will send a mouse event. This allows users of applications that are not designed for tablets to use a tablet like a mouse. However high-resolution drawing applications should handle the tablet events, because they can occur at a higher frequency, which is a benefit for smooth and accurate drawing. If the tablet events are rejected, the synthetic mouse events may be compressed for efficiency.</p>
/// <p>New in Qt 5.4: <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> includes all information available from the device, including <a href="http://doc.qt.io/qt-5/qtabletevent.html#buttons">QTabletEvent::buttons</a>(). Previously it was not possible to accept all tablet events and also know which stylus buttons were pressed.</p>
/// <p>Note that pressing the stylus button while the stylus hovers over the tablet will generate a button press on some types of tablets, while on other types it will be necessary to press the stylus against the tablet surface in order to register the simultaneous stylus button press.</p>
/// <a name="notes-for-x11-users"></a></div>
#[repr(C)]
pub struct QTabletEvent {
    _unused: u8,
}
impl QTabletEvent {
    /// <p>Returns the button that caused the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::MouseButton QTabletEvent::button() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#button">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the button that caused the event.</p>
    /// <p>Note that the returned value is always <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::NoButton</a> for <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletMove</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletEnterProximity</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletLeaveProximity</a> events.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#buttons">buttons</a>() and <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a>.</p></div>
    #[inline(always)]
    pub unsafe fn button(&self) -> ::qt_core::MouseButton {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_button(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the button state when the event was generated. The button state is a combination of buttons from the <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a> enum using the OR operator. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletMove</a> events, this is all buttons that are pressed down. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletPress</a> events this includes the button that caused the event. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletRelease</a> events this excludes the button that caused the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::MouseButton> QTabletEvent::buttons() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#buttons">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the button state when the event was generated. The button state is a combination of buttons from the <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a> enum using the OR operator. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletMove</a> events, this is all buttons that are pressed down. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletPress</a> events this includes the button that caused the event. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletRelease</a> events this excludes the button that caused the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#button">button</a>() and <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a>.</p></div>
    #[inline(always)]
    pub unsafe fn buttons(&self) -> ::qt_core::QFlags<::qt_core::MouseButton> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_buttons(self as *const crate::QTabletEvent);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> class contains parameters that describe a Tablet event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTabletEvent& QTabletEvent::operator=(const QTabletEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> class contains parameters that describe a Tablet event.</p>
    /// <p><i>Tablet events</i> are generated from tablet peripherals such as Wacom tablets and various other brands, and electromagnetic stylus devices included with some types of tablet computers. (It is not the same as <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> which a touchscreen generates, even when a passive stylus is used on a touchscreen.)</p>
    /// <p>Tablet events are similar to mouse events; for example, the <a href="http://doc.qt.io/qt-5/qtabletevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalX">globalX</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalY">globalY</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>() accessors provide the cursor position, and you can see which <a href="http://doc.qt.io/qt-5/qtabletevent.html#buttons">buttons</a>() are pressed (pressing the stylus tip against the tablet surface is equivalent to a left mouse button). But tablet events also pass through some extra information that the tablet device driver provides; for example, you might want to do subpixel rendering with higher resolution coordinates (<a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalX">hiResGlobalX</a>() and <a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalY">hiResGlobalY</a>()), adjust color brightness based on the <a href="http://doc.qt.io/qt-5/qtabletevent.html#pressure">pressure</a>() of the tool against the tablet surface, use different brushes depending on the type of tool in use (<a href="http://doc.qt.io/qt-5/qtabletevent.html#device">device</a>()), modulate the brush shape in some way according to the X-axis and Y-axis tilt of the tool with respect to the tablet surface (<a href="http://doc.qt.io/qt-5/qtabletevent.html#xTilt">xTilt</a>() and <a href="http://doc.qt.io/qt-5/qtabletevent.html#yTilt">yTilt</a>()), and use a virtual eraser instead of a brush if the user switches to the other end of a double-ended stylus (<a href="http://doc.qt.io/qt-5/qtabletevent.html#pointerType">pointerType</a>()).</p>
    /// <p>Every event contains an accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#accept">QTabletEvent::accept</a>() if you handle the tablet event; otherwise it will be sent to the parent widget. The exception are <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletEnterProximity</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletLeaveProximity</a> events: these are only sent to <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> and do not check whether or not they are accepted.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse, tablet and keyboard events for a widget.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#tabletEvent">QWidget::tabletEvent</a>() receives <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletRelease</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletMove</a> events. Qt will first send a tablet event, then if it is not accepted by any widget, it will send a mouse event. This allows users of applications that are not designed for tablets to use a tablet like a mouse. However high-resolution drawing applications should handle the tablet events, because they can occur at a higher frequency, which is a benefit for smooth and accurate drawing. If the tablet events are rejected, the synthetic mouse events may be compressed for efficiency.</p>
    /// <p>New in Qt 5.4: <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> includes all information available from the device, including <a href="http://doc.qt.io/qt-5/qtabletevent.html#buttons">QTabletEvent::buttons</a>(). Previously it was not possible to accept all tablet events and also know which stylus buttons were pressed.</p>
    /// <p>Note that pressing the stylus button while the stylus hovers over the tablet will generate a button press on some types of tablets, while on other types it will be necessary to press the stylus against the tablet surface in order to register the simultaneous stylus button press.</p>
    /// <a name="notes-for-x11-users"></a></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTabletEvent>>,
    ) -> ::cpp_core::MutRef<crate::QTabletEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_operator_(
            self as *mut crate::QTabletEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTabletEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the type of device that generated the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTabletEvent::TabletDevice QTabletEvent::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of device that generated the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#TabletDevice-enum">TabletDevice</a>.</p></div>
    #[inline(always)]
    pub unsafe fn device(&self) -> crate::q_tablet_event::TabletDevice {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_device(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the global position of the device <i>at the time of the event</i>. This is important on asynchronous windows systems like X11; whenever you move your widgets around in response to mouse events, globalPos() can differ significantly from the current position <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QTabletEvent::globalPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position of the device <i>at the time of the event</i>. This is important on asynchronous windows systems like X11; whenever you move your widgets around in response to mouse events, globalPos() can differ significantly from the current position <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#globalX">globalX</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalY">globalY</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalPos">hiResGlobalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_globalPos(self as *const crate::QTabletEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the global position of the device <i>at the time of the event</i>. This is important on asynchronous windows systems like X11; whenever you move your widgets around in response to mouse events, globalPosF() can differ significantly from the current position <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QTabletEvent::globalPosF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPosF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position of the device <i>at the time of the event</i>. This is important on asynchronous windows systems like X11; whenever you move your widgets around in response to mouse events, globalPosF() can differ significantly from the current position <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#posF">posF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_pos_f(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_globalPosF(
            self as *const crate::QTabletEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the global x position of the mouse pointer at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTabletEvent::globalX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global x position of the mouse pointer at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#globalY">globalY</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalX">hiResGlobalX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_globalX(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the global y position of the tablet device at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTabletEvent::globalY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global y position of the tablet device at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#globalX">globalX</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalY">hiResGlobalY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_globalY(self as *const crate::QTabletEvent)
    }

    /// <p>The high precision x position of the tablet device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTabletEvent::hiResGlobalX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The high precision x position of the tablet device.</p></div>
    #[inline(always)]
    pub unsafe fn hi_res_global_x(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_hiResGlobalX(self as *const crate::QTabletEvent)
    }

    /// <p>The high precision y position of the tablet device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTabletEvent::hiResGlobalY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The high precision y position of the tablet device.</p></div>
    #[inline(always)]
    pub unsafe fn hi_res_global_y(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_hiResGlobalY(self as *const crate::QTabletEvent)
    }

    /// <p>Construct a tablet event of the given <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTabletEvent::QTabletEvent(QEvent::Type t, const QPointF& pos, const QPointF& globalPos, int device, int pointerType, double pressure, int xTilt, int yTilt, double tangentialPressure, double rotation, int z, QFlags<Qt::KeyboardModifier> keyState, qint64 uniqueID)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qtabletevent.html#QTabletEvent">C++ documentation</a> for <span style='color: green;'>```QTabletEvent::QTabletEvent(Type type, const QPointF &pos, const QPointF &globalPos, int device, int pointerType, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers keyState, qint64 uniqueID, Qt::MouseButton button, Qt::MouseButtons buttons)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Construct a tablet event of the given <i>type</i>.</p>
    /// <p>The <i>pos</i> parameter indicates where the event occurred in the widget; <i>globalPos</i> is the corresponding position in absolute coordinates.</p>
    /// <p><i>pressure</i> contains the pressure exerted on the <i>device</i>.</p>
    /// <p><i>pointerType</i> describes the type of pen that is being used.</p>
    /// <p><i>xTilt</i> and <i>yTilt</i> contain the device's degree of tilt from the x and y axes respectively.</p>
    /// <p><i>keyState</i> specifies which keyboard modifiers are pressed (e.g., <b>Ctrl</b>).</p>
    /// <p>The <i>uniqueID</i> parameter contains the unique ID for the current device.</p>
    /// <p>The <i>z</i> parameter contains the coordinate of the device on the tablet, this is usually given by a wheel on 4D mouse. If the device does not support a Z-axis, pass zero here.</p>
    /// <p>The <i>tangentialPressure</i> parameter contins the tangential pressure of an air brush. If the device does not support tangential pressure, pass 0 here.</p>
    /// <p><i>rotation</i> contains the device's rotation in degrees. 4D mice and the Wacom Art Pen support rotation. If the device does not support rotation, pass 0 here.</p>
    /// <p>The <i>button</i> that caused the event is given as a value from the <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a> enum. If the event <i>type</i> is not <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletPress</a> or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletRelease</a>, the appropriate button for this event is <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::NoButton</a>.</p>
    /// <p><i>buttons</i> is the state of all buttons at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#device">device</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#pressure">pressure</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#xTilt">xTilt</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#yTilt">yTilt</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#uniqueId">uniqueId</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#rotation">rotation</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#tangentialPressure">tangentialPressure</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#z">z</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_13a(
        t: ::qt_core::q_event::Type,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        device: ::std::os::raw::c_int,
        pointer_type: ::std::os::raw::c_int,
        pressure: ::std::os::raw::c_double,
        x_tilt: ::std::os::raw::c_int,
        y_tilt: ::std::os::raw::c_int,
        tangential_pressure: ::std::os::raw::c_double,
        rotation: ::std::os::raw::c_double,
        z: ::std::os::raw::c_int,
        key_state: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        unique_i_d: i64,
    ) -> ::cpp_core::CppBox<crate::QTabletEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_QTabletEvent(
            t,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            device,
            pointer_type,
            pressure,
            x_tilt,
            y_tilt,
            tangential_pressure,
            rotation,
            z,
            key_state.to_int(),
            unique_i_d,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Construct a tablet event of the given <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTabletEvent::QTabletEvent(QEvent::Type t, const QPointF& pos, const QPointF& globalPos, int device, int pointerType, double pressure, int xTilt, int yTilt, double tangentialPressure, double rotation, int z, QFlags<Qt::KeyboardModifier> keyState, qint64 uniqueID, Qt::MouseButton button, QFlags<Qt::MouseButton> buttons)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#QTabletEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Construct a tablet event of the given <i>type</i>.</p>
    /// <p>The <i>pos</i> parameter indicates where the event occurred in the widget; <i>globalPos</i> is the corresponding position in absolute coordinates.</p>
    /// <p><i>pressure</i> contains the pressure exerted on the <i>device</i>.</p>
    /// <p><i>pointerType</i> describes the type of pen that is being used.</p>
    /// <p><i>xTilt</i> and <i>yTilt</i> contain the device's degree of tilt from the x and y axes respectively.</p>
    /// <p><i>keyState</i> specifies which keyboard modifiers are pressed (e.g., <b>Ctrl</b>).</p>
    /// <p>The <i>uniqueID</i> parameter contains the unique ID for the current device.</p>
    /// <p>The <i>z</i> parameter contains the coordinate of the device on the tablet, this is usually given by a wheel on 4D mouse. If the device does not support a Z-axis, pass zero here.</p>
    /// <p>The <i>tangentialPressure</i> parameter contins the tangential pressure of an air brush. If the device does not support tangential pressure, pass 0 here.</p>
    /// <p><i>rotation</i> contains the device's rotation in degrees. 4D mice and the Wacom Art Pen support rotation. If the device does not support rotation, pass 0 here.</p>
    /// <p>The <i>button</i> that caused the event is given as a value from the <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::MouseButton</a> enum. If the event <i>type</i> is not <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletPress</a> or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletRelease</a>, the appropriate button for this event is <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::NoButton</a>.</p>
    /// <p><i>buttons</i> is the state of all buttons at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#device">device</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#pressure">pressure</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#xTilt">xTilt</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#yTilt">yTilt</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#uniqueId">uniqueId</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#rotation">rotation</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#tangentialPressure">tangentialPressure</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#z">z</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_15a(
        t: ::qt_core::q_event::Type,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        device: ::std::os::raw::c_int,
        pointer_type: ::std::os::raw::c_int,
        pressure: ::std::os::raw::c_double,
        x_tilt: ::std::os::raw::c_int,
        y_tilt: ::std::os::raw::c_int,
        tangential_pressure: ::std::os::raw::c_double,
        rotation: ::std::os::raw::c_double,
        z: ::std::os::raw::c_int,
        key_state: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        unique_i_d: i64,
        button: ::qt_core::MouseButton,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
    ) -> ::cpp_core::CppBox<crate::QTabletEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_QTabletEvent1(
            t,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(global_pos)
                .as_raw_ptr(),
            device,
            pointer_type,
            pressure,
            x_tilt,
            y_tilt,
            tangential_pressure,
            rotation,
            z,
            key_state.to_int(),
            unique_i_d,
            button,
            buttons.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> class contains parameters that describe a Tablet event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTabletEvent::QTabletEvent(const QTabletEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> class contains parameters that describe a Tablet event.</p>
    /// <p><i>Tablet events</i> are generated from tablet peripherals such as Wacom tablets and various other brands, and electromagnetic stylus devices included with some types of tablet computers. (It is not the same as <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> which a touchscreen generates, even when a passive stylus is used on a touchscreen.)</p>
    /// <p>Tablet events are similar to mouse events; for example, the <a href="http://doc.qt.io/qt-5/qtabletevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalX">globalX</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalY">globalY</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>() accessors provide the cursor position, and you can see which <a href="http://doc.qt.io/qt-5/qtabletevent.html#buttons">buttons</a>() are pressed (pressing the stylus tip against the tablet surface is equivalent to a left mouse button). But tablet events also pass through some extra information that the tablet device driver provides; for example, you might want to do subpixel rendering with higher resolution coordinates (<a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalX">hiResGlobalX</a>() and <a href="http://doc.qt.io/qt-5/qtabletevent.html#hiResGlobalY">hiResGlobalY</a>()), adjust color brightness based on the <a href="http://doc.qt.io/qt-5/qtabletevent.html#pressure">pressure</a>() of the tool against the tablet surface, use different brushes depending on the type of tool in use (<a href="http://doc.qt.io/qt-5/qtabletevent.html#device">device</a>()), modulate the brush shape in some way according to the X-axis and Y-axis tilt of the tool with respect to the tablet surface (<a href="http://doc.qt.io/qt-5/qtabletevent.html#xTilt">xTilt</a>() and <a href="http://doc.qt.io/qt-5/qtabletevent.html#yTilt">yTilt</a>()), and use a virtual eraser instead of a brush if the user switches to the other end of a double-ended stylus (<a href="http://doc.qt.io/qt-5/qtabletevent.html#pointerType">pointerType</a>()).</p>
    /// <p>Every event contains an accept flag that indicates whether the receiver wants the event. You should call <a href="http://doc.qt.io/qt-5/qevent.html#accept">QTabletEvent::accept</a>() if you handle the tablet event; otherwise it will be sent to the parent widget. The exception are <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletEnterProximity</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletLeaveProximity</a> events: these are only sent to <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> and do not check whether or not they are accepted.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse, tablet and keyboard events for a widget.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#tabletEvent">QWidget::tabletEvent</a>() receives <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletRelease</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">TabletMove</a> events. Qt will first send a tablet event, then if it is not accepted by any widget, it will send a mouse event. This allows users of applications that are not designed for tablets to use a tablet like a mouse. However high-resolution drawing applications should handle the tablet events, because they can occur at a higher frequency, which is a benefit for smooth and accurate drawing. If the tablet events are rejected, the synthetic mouse events may be compressed for efficiency.</p>
    /// <p>New in Qt 5.4: <a href="http://doc.qt.io/qt-5/qtabletevent.html">QTabletEvent</a> includes all information available from the device, including <a href="http://doc.qt.io/qt-5/qtabletevent.html#buttons">QTabletEvent::buttons</a>(). Previously it was not possible to accept all tablet events and also know which stylus buttons were pressed.</p>
    /// <p>Note that pressing the stylus button while the stylus hovers over the tablet will generate a button press on some types of tablets, while on other types it will be necessary to press the stylus against the tablet surface in order to register the simultaneous stylus button press.</p>
    /// <a name="notes-for-x11-users"></a></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTabletEvent>>,
    ) -> ::cpp_core::CppBox<crate::QTabletEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_QTabletEvent3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTabletEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the type of point that generated the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTabletEvent::PointerType QTabletEvent::pointerType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#pointerType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of point that generated the event.</p></div>
    #[inline(always)]
    pub unsafe fn pointer_type(&self) -> crate::q_tablet_event::PointerType {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_pointerType(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the position of the device, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QTabletEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the device, relative to the widget that received the event.</p>
    /// <p>If you move widgets around in response to mouse events, use <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>() instead of this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qtabletevent.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_pos(self as *const crate::QTabletEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the device, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QTabletEvent::posF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#posF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the device, relative to the widget that received the event.</p>
    /// <p>If you move widgets around in response to mouse events, use <a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPosF">globalPosF</a>() instead of this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#globalPosF">globalPosF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos_f(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_posF(self as *const crate::QTabletEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the pressure for the device. 0.0 indicates that the stylus is not on the tablet, 1.0 indicates the maximum amount of pressure for the stylus.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTabletEvent::pressure() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#pressure">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pressure for the device. 0.0 indicates that the stylus is not on the tablet, 1.0 indicates the maximum amount of pressure for the stylus.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#tangentialPressure">tangentialPressure</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pressure(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_pressure(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the rotation of the current device in degress. This is usually given by a 4D Mouse. If the device does not support rotation this value is always 0.0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTabletEvent::rotation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#rotation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rotation of the current device in degress. This is usually given by a 4D Mouse. If the device does not support rotation this value is always 0.0.</p></div>
    #[inline(always)]
    pub unsafe fn rotation(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_rotation(self as *const crate::QTabletEvent)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the tangential pressure for the device. This is typically given by a finger wheel on an airbrush tool. The range is from -1.0 to 1.0. 0.0 indicates a neutral position. Current airbrushes can only move in the positive direction from the neutrual position. If the device does not support tangential pressure, this value is always 0.0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTabletEvent::tangentialPressure() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#tangentialPressure">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the tangential pressure for the device. This is typically given by a finger wheel on an airbrush tool. The range is from -1.0 to 1.0. 0.0 indicates a neutral position. Current airbrushes can only move in the positive direction from the neutrual position. If the device does not support tangential pressure, this value is always 0.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#pressure">pressure</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tangential_pressure(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_tangentialPressure(
            self as *const crate::QTabletEvent,
        )
    }

    /// <p>Returns a unique ID for the current device, making it possible to differentiate between multiple devices being used at the same time on the tablet.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```qint64 QTabletEvent::uniqueId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#uniqueId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a unique ID for the current device, making it possible to differentiate between multiple devices being used at the same time on the tablet.</p>
    /// <p>Support of this feature is dependent on the tablet.</p>
    /// <p>Values for the same device may vary from OS to OS.</p>
    /// <p>Later versions of the Wacom driver for Linux will now report the ID information. If you have a tablet that supports unique ID and are not getting the information on Linux, consider upgrading your driver.</p>
    /// <p>As of Qt 4.2, the unique ID is the same regardless of the orientation of the pen. Earlier versions would report a different value when using the eraser-end versus the pen-end of the stylus on some OS's.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#pointerType">pointerType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn unique_id(&self) -> i64 {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_uniqueId(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the x position of the device, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTabletEvent::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x position of the device, relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#y">y</a>() and <a href="http://doc.qt.io/qt-5/qtabletevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_x(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the angle between the device (a pen, for example) and the perpendicular in the direction of the x axis. Positive values are towards the tablet's physical right. The angle is in the range -60 to +60 degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTabletEvent::xTilt() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#xTilt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the angle between the device (a pen, for example) and the perpendicular in the direction of the x axis. Positive values are towards the tablet's physical right. The angle is in the range -60 to +60 degrees.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtabletevent-tilt.png" alt=""></p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#yTilt">yTilt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x_tilt(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_xTilt(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the y position of the device, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTabletEvent::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y position of the device, relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qtabletevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_y(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the angle between the device (a pen, for example) and the perpendicular in the direction of the y axis. Positive values are towards the bottom of the tablet. The angle is within the range -60 to +60 degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTabletEvent::yTilt() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#yTilt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the angle between the device (a pen, for example) and the perpendicular in the direction of the y axis. Positive values are towards the bottom of the tablet. The angle is within the range -60 to +60 degrees.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#xTilt">xTilt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y_tilt(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_yTilt(self as *const crate::QTabletEvent)
    }

    /// <p>Returns the z position of the device. Typically this is represented by a wheel on a 4D Mouse. If the device does not support a Z-axis, this value is always zero. This is <b>not</b> the same as pressure.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTabletEvent::z() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtabletevent.html#z">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the z position of the device. Typically this is represented by a wheel on a 4D Mouse. If the device does not support a Z-axis, this value is always zero. This is <b>not</b> the same as pressure.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtabletevent.html#pressure">pressure</a>().</p></div>
    #[inline(always)]
    pub unsafe fn z(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_z(self as *const crate::QTabletEvent)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> class contains parameters that describe a gesture event.</p>
///
/// C++ class: <span style='color: green;'>```QNativeGestureEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> class contains parameters that describe a gesture event.</p>
/// <p>Native gesture events are generated by the operating system, typically by interpreting touch events. Gesture events are high-level events such as zoom or rotate.</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th>Event Type</th><th>Description</th><th>Touch equence</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::ZoomNativeGesture</a></td><td>Magnification delta in percent.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger pinch.</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::SmartZoomNativeGesture</a></td><td>Boolean magnification state.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger douple tap (trackpad) / One-finger douple tap (magic mouse).</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::RotateNativeGesture</a></td><td>Rotation delta in degrees.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger rotate.</td></tr>
/// </tbody></table></div>
/// <p>In addition, BeginNativeGesture and EndNativeGesture are sent before and after gesture event streams:</p>
/// <p>BeginNativeGesture ZoomNativeGesture ZoomNativeGesture ZoomNativeGesture EndNativeGesture</p></div>
#[repr(C)]
pub struct QNativeGestureEvent {
    _unused: u8,
}
impl QNativeGestureEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> class contains parameters that describe a gesture event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent& QNativeGestureEvent::operator=(const QNativeGestureEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> class contains parameters that describe a gesture event.</p>
    /// <p>Native gesture events are generated by the operating system, typically by interpreting touch events. Gesture events are high-level events such as zoom or rotate.</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Event Type</th><th>Description</th><th>Touch equence</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::ZoomNativeGesture</a></td><td>Magnification delta in percent.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger pinch.</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::SmartZoomNativeGesture</a></td><td>Boolean magnification state.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger douple tap (trackpad) / One-finger douple tap (magic mouse).</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::RotateNativeGesture</a></td><td>Rotation delta in degrees.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger rotate.</td></tr>
    /// </tbody></table></div>
    /// <p>In addition, BeginNativeGesture and EndNativeGesture are sent before and after gesture event streams:</p>
    /// <p>BeginNativeGesture ZoomNativeGesture ZoomNativeGesture ZoomNativeGesture EndNativeGesture</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QNativeGestureEvent>>,
    ) -> ::cpp_core::MutRef<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_operator_(
            self as *mut crate::QNativeGestureEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QNativeGestureEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice* QNativeGestureEvent::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device.</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn device(&self) -> ::cpp_core::Ptr<crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_device(
            self as *const crate::QNativeGestureEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the gesture type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::NativeGestureType QNativeGestureEvent::gestureType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#gestureType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the gesture type.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn gesture_type(&self) -> ::qt_core::NativeGestureType {
        crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_gestureType(
            self as *const crate::QNativeGestureEvent,
        )
    }

    /// <p>Returns the position of the gesture as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> in screen coordinates</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QNativeGestureEvent::globalPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#globalPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the gesture as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> in screen coordinates</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn global_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_globalPos(
            self as *const crate::QNativeGestureEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the gesture as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the widget or item that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QNativeGestureEvent::localPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#localPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the gesture as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the widget or item that received the event.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn local_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_localPos(
            self as *const crate::QNativeGestureEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a native gesture event of type <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPointF& localPos, const QPointF& windowPos, const QPointF& screenPos, double value, unsigned long sequenceId, quint64 intArgument)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#QNativeGestureEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a native gesture event of type <i>type</i>.</p>
    /// <p>The points <i>localPos</i>, <i>windowPos</i> and <i>screenPos</i> specify the gesture position relative to the receiving widget or item, window, and screen, respectively.</p>
    /// <p><i>realValue</i> is the <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> event parameter, <i>sequenceId</i> and <i>intValue</i> are the Windows event parameters.</p></div>
    #[inline(always)]
    pub unsafe fn new_7a(
        type_: ::qt_core::NativeGestureType,
        local_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        window_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        value: ::std::os::raw::c_double,
        sequence_id: ::std::os::raw::c_ulong,
        int_argument: u64,
    ) -> ::cpp_core::CppBox<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_QNativeGestureEvent(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(local_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(window_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(screen_pos)
                .as_raw_ptr(),
            value,
            sequence_id,
            int_argument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a native gesture event of type <i>type</i> originating from <i>device</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QTouchDevice* dev, const QPointF& localPos, const QPointF& windowPos, const QPointF& screenPos, double value, unsigned long sequenceId, quint64 intArgument)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#QNativeGestureEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a native gesture event of type <i>type</i> originating from <i>device</i>.</p>
    /// <p>The points <i>localPos</i>, <i>windowPos</i> and <i>screenPos</i> specify the gesture position relative to the receiving widget or item, window, and screen, respectively.</p>
    /// <p><i>realValue</i> is the <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> event parameter, <i>sequenceId</i> and <i>intValue</i> are the Windows event parameters.</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_8a(
        type_: ::qt_core::NativeGestureType,
        dev: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QTouchDevice>>,
        local_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        window_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        value: ::std::os::raw::c_double,
        sequence_id: ::std::os::raw::c_ulong,
        int_argument: u64,
    ) -> ::cpp_core::CppBox<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_QNativeGestureEvent6(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QTouchDevice>>::cast_into(dev)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(local_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(window_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(screen_pos)
                .as_raw_ptr(),
            value,
            sequence_id,
            int_argument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> class contains parameters that describe a gesture event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QNativeGestureEvent::QNativeGestureEvent(const QNativeGestureEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> class contains parameters that describe a gesture event.</p>
    /// <p>Native gesture events are generated by the operating system, typically by interpreting touch events. Gesture events are high-level events such as zoom or rotate.</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Event Type</th><th>Description</th><th>Touch equence</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::ZoomNativeGesture</a></td><td>Magnification delta in percent.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger pinch.</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::SmartZoomNativeGesture</a></td><td>Boolean magnification state.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger douple tap (trackpad) / One-finger douple tap (magic mouse).</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::RotateNativeGesture</a></td><td>Rotation delta in degrees.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger rotate.</td></tr>
    /// </tbody></table></div>
    /// <p>In addition, BeginNativeGesture and EndNativeGesture are sent before and after gesture event streams:</p>
    /// <p>BeginNativeGesture ZoomNativeGesture ZoomNativeGesture ZoomNativeGesture EndNativeGesture</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QNativeGestureEvent>>,
    ) -> ::cpp_core::CppBox<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_QNativeGestureEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QNativeGestureEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse cursor, relative to the widget or item that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QNativeGestureEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse cursor, relative to the widget or item that received the event.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_pos(
            self as *const crate::QNativeGestureEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the gesture as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> in screen coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QNativeGestureEvent::screenPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#screenPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the gesture as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> in screen coordinates.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn screen_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_screenPos(
            self as *const crate::QNativeGestureEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the gesture value. The value should be interpreted based on the gesture type. For example, a Zoom gesture provides a scale factor while a Rotate gesture provides a rotation delta.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QNativeGestureEvent::value() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the gesture value. The value should be interpreted based on the gesture type. For example, a Zoom gesture provides a scale factor while a Rotate gesture provides a rotation delta.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> and <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#gestureType">gestureType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_value(
            self as *const crate::QNativeGestureEvent,
        )
    }

    /// <p>Returns the position of the gesture as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the window that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QNativeGestureEvent::windowPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html#windowPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the gesture as a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>, relative to the window that received the event.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn window_pos(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_windowPos(
            self as *const crate::QNativeGestureEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qkeyevent.html">QKeyEvent</a> class describes a key event.</p>
///
/// C++ class: <span style='color: green;'>```QKeyEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qkeyevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qkeyevent.html">QKeyEvent</a> class describes a key event.</p>
/// <p>Key events are sent to the widget with keyboard input focus when keys are pressed or released.</p>
/// <p>A key event contains a special accept flag that indicates whether the receiver will handle the key event. This flag is set by default for <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, so there is no need to call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() when acting on a key event. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a> the receiver needs to explicitly accept the event to trigger the override. Calling <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() on a key event will propagate it to the parent widget. The event is propagated up the parent widget chain until a widget accepts it or an event filter consumes it.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
/// <p>The event handlers <a href="http://doc.qt.io/qt-5/qwidget.html#keyPressEvent">QWidget::keyPressEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#keyReleaseEvent">QWidget::keyReleaseEvent</a>(), <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#keyPressEvent">QGraphicsItem::keyPressEvent</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#keyReleaseEvent">QGraphicsItem::keyReleaseEvent</a>() receive key events.</p></div>
#[repr(C)]
pub struct QKeyEvent {
    _unused: u8,
}
impl QKeyEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qkeyevent.html">QKeyEvent</a> class describes a key event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeyEvent& QKeyEvent::operator=(const QKeyEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qkeyevent.html">QKeyEvent</a> class describes a key event.</p>
    /// <p>Key events are sent to the widget with keyboard input focus when keys are pressed or released.</p>
    /// <p>A key event contains a special accept flag that indicates whether the receiver will handle the key event. This flag is set by default for <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, so there is no need to call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() when acting on a key event. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a> the receiver needs to explicitly accept the event to trigger the override. Calling <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() on a key event will propagate it to the parent widget. The event is propagated up the parent widget chain until a widget accepts it or an event filter consumes it.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
    /// <p>The event handlers <a href="http://doc.qt.io/qt-5/qwidget.html#keyPressEvent">QWidget::keyPressEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#keyReleaseEvent">QWidget::keyReleaseEvent</a>(), <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#keyPressEvent">QGraphicsItem::keyPressEvent</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#keyReleaseEvent">QGraphicsItem::keyReleaseEvent</a>() receive key events.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeyEvent>>,
    ) -> ::cpp_core::MutRef<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_operator_(
            self as *mut crate::QKeyEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeyEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of keys involved in this event. If <a href="http://doc.qt.io/qt-5/qkeyevent.html#text">text</a>() is not empty, this is simply the length of the string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QKeyEvent::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of keys involved in this event. If <a href="http://doc.qt.io/qt-5/qkeyevent.html#text">text</a>() is not empty, this is simply the length of the string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_KeyCompression</a>.</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_count(self as *const crate::QKeyEvent)
    }

    /// <p>Returns <code>true</code> if this event comes from an auto-repeating key; returns <code>false</code> if it comes from an initial key press.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QKeyEvent::isAutoRepeat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this event comes from an auto-repeating key; returns <code>false</code> if it comes from an initial key press.</p>
    /// <p>Note that if the event is a multiple-key compressed event that is partly due to auto-repeat, this function could return either true or false indeterminately.</p></div>
    #[inline(always)]
    pub unsafe fn is_auto_repeat(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_isAutoRepeat(self as *const crate::QKeyEvent)
    }

    /// <p>Returns the code of the key that was pressed or released.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QKeyEvent::key() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#key">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the code of the key that was pressed or released.</p>
    /// <p>See <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> for the list of keyboard codes. These codes are independent of the underlying window system. Note that this function does not distinguish between capital and non-capital letters, use the <a href="http://doc.qt.io/qt-5/qkeyevent.html#text">text</a>() function (returning the Unicode text the key generated) for this purpose.</p>
    /// <p>A value of either 0 or <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key_unknown</a> means that the event is not the result of a known key; for example, it may be the result of a compose sequence, a keyboard macro, or due to key event compression.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_KeyCompression</a>.</p></div>
    #[inline(always)]
    pub unsafe fn key(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_key(self as *const crate::QKeyEvent)
    }

    /// <p>Returns <code>true</code> if the key event matches the given standard <i>key</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QKeyEvent::matches(QKeySequence::StandardKey key) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#matches">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the key event matches the given standard <i>key</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn matches(&self, key: crate::q_key_sequence::StandardKey) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_matches(self as *const crate::QKeyEvent, key)
    }

    /// <p>Returns the keyboard modifier flags that existed immediately after the event occurred.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::KeyboardModifier> QKeyEvent::modifiers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#modifiers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the keyboard modifier flags that existed immediately after the event occurred.</p>
    /// <p><b>Warning:</b> This function cannot always be trusted. The user can confuse it by pressing both <b>Shift</b> keys simultaneously and releasing one of them, for example.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers">QGuiApplication::keyboardModifiers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn modifiers(&self) -> ::qt_core::QFlags<::qt_core::KeyboardModifier> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_modifiers(self as *const crate::QKeyEvent);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the native modifiers of a key event. If the key event does not contain this data 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32 QKeyEvent::nativeModifiers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#nativeModifiers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the native modifiers of a key event. If the key event does not contain this data 0 is returned.</p>
    /// <p>Note: The native modifiers may be 0, even if the key event contains extended information.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn native_modifiers(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_nativeModifiers(self as *const crate::QKeyEvent)
    }

    /// <p>Returns the native scan code of the key event. If the key event does not contain this data 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32 QKeyEvent::nativeScanCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#nativeScanCode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the native scan code of the key event. If the key event does not contain this data 0 is returned.</p>
    /// <p>Note: The native scan code may be 0, even if the key event contains extended information.</p>
    /// <p>Note: On Mac OS/X, this function is not useful, because there is no way to get the scan code from Carbon or Cocoa. The function always returns 1 (or 0 in the case explained above).</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn native_scan_code(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_nativeScanCode(self as *const crate::QKeyEvent)
    }

    /// <p>Returns the native virtual key, or key sym of the key event. If the key event does not contain this data 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32 QKeyEvent::nativeVirtualKey() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#nativeVirtualKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the native virtual key, or key sym of the key event. If the key event does not contain this data 0 is returned.</p>
    /// <p>Note: The native virtual key may be 0, even if the key event contains extended information.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn native_virtual_key(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_nativeVirtualKey(self as *const crate::QKeyEvent)
    }

    /// <p>Constructs a key event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(QEvent::Type type, int key, QFlags<Qt::KeyboardModifier> modifiers, const QString& text = …, bool autorep = …, unsigned short count = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#QKeyEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a>.</p>
    /// <p>Int <i>key</i> is the code for the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> that the event loop should listen for. If <i>key</i> is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The <i>modifiers</i> holds the keyboard modifiers, and the given <i>text</i> is the Unicode text that the key generated. If <i>autorep</i> is true, <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">isAutoRepeat</a>() will be true. <i>count</i> is the number of keys involved in the event.</p></div>
    #[inline(always)]
    pub unsafe fn from_type_int_q_flags_keyboard_modifier_q_string_bool_ushort(
        type_: ::qt_core::q_event::Type,
        key: ::std::os::raw::c_int,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        autorep: bool,
        count: ::std::os::raw::c_ushort,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent(
            type_,
            key,
            modifiers.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            autorep,
            count,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(QEvent::Type type, int key, QFlags<Qt::KeyboardModifier> modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers, const QString& text = …, bool autorep = …, unsigned short count = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#QKeyEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a>.</p>
    /// <p>Int <i>key</i> is the code for the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> that the event loop should listen for. If <i>key</i> is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The <i>modifiers</i> holds the keyboard modifiers, and the given <i>text</i> is the Unicode text that the key generated. If <i>autorep</i> is true, <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">isAutoRepeat</a>() will be true. <i>count</i> is the number of keys involved in the event.</p>
    /// <p>In addition to the normal key event data, also contains <i>nativeScanCode</i>, <i>nativeVirtualKey</i> and <i>nativeModifiers</i>. This extra data is used by the shortcut system, to determine which shortcuts to trigger.</p></div>
    #[inline(always)]
    pub unsafe fn from_type_int_q_flags_keyboard_modifier3_u32_q_string_bool_ushort(
        type_: ::qt_core::q_event::Type,
        key: ::std::os::raw::c_int,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        native_scan_code: u32,
        native_virtual_key: u32,
        native_modifiers: u32,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        autorep: bool,
        count: ::std::os::raw::c_ushort,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent1(
            type_,
            key,
            modifiers.to_int(),
            native_scan_code,
            native_virtual_key,
            native_modifiers,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            autorep,
            count,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(QEvent::Type type, int key, QFlags<Qt::KeyboardModifier> modifiers, const QString& text = …, bool autorep = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#QKeyEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a>.</p>
    /// <p>Int <i>key</i> is the code for the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> that the event loop should listen for. If <i>key</i> is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The <i>modifiers</i> holds the keyboard modifiers, and the given <i>text</i> is the Unicode text that the key generated. If <i>autorep</i> is true, <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">isAutoRepeat</a>() will be true. <i>count</i> is the number of keys involved in the event.</p></div>
    #[inline(always)]
    pub unsafe fn from_type_int_q_flags_keyboard_modifier_q_string_bool(
        type_: ::qt_core::q_event::Type,
        key: ::std::os::raw::c_int,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        autorep: bool,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent4(
            type_,
            key,
            modifiers.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            autorep,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(QEvent::Type type, int key, QFlags<Qt::KeyboardModifier> modifiers, const QString& text = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#QKeyEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a>.</p>
    /// <p>Int <i>key</i> is the code for the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> that the event loop should listen for. If <i>key</i> is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The <i>modifiers</i> holds the keyboard modifiers, and the given <i>text</i> is the Unicode text that the key generated. If <i>autorep</i> is true, <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">isAutoRepeat</a>() will be true. <i>count</i> is the number of keys involved in the event.</p></div>
    #[inline(always)]
    pub unsafe fn from_type_int_q_flags_keyboard_modifier_q_string(
        type_: ::qt_core::q_event::Type,
        key: ::std::os::raw::c_int,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent5(
            type_,
            key,
            modifiers.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(QEvent::Type type, int key, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#QKeyEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a>.</p>
    /// <p>Int <i>key</i> is the code for the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> that the event loop should listen for. If <i>key</i> is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The <i>modifiers</i> holds the keyboard modifiers, and the given <i>text</i> is the Unicode text that the key generated. If <i>autorep</i> is true, <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">isAutoRepeat</a>() will be true. <i>count</i> is the number of keys involved in the event.</p></div>
    #[inline(always)]
    pub unsafe fn from_type_int_q_flags_keyboard_modifier(
        type_: ::qt_core::q_event::Type,
        key: ::std::os::raw::c_int,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent6(type_, key, modifiers.to_int());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(QEvent::Type type, int key, QFlags<Qt::KeyboardModifier> modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers, const QString& text = …, bool autorep = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#QKeyEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a>.</p>
    /// <p>Int <i>key</i> is the code for the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> that the event loop should listen for. If <i>key</i> is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The <i>modifiers</i> holds the keyboard modifiers, and the given <i>text</i> is the Unicode text that the key generated. If <i>autorep</i> is true, <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">isAutoRepeat</a>() will be true. <i>count</i> is the number of keys involved in the event.</p>
    /// <p>In addition to the normal key event data, also contains <i>nativeScanCode</i>, <i>nativeVirtualKey</i> and <i>nativeModifiers</i>. This extra data is used by the shortcut system, to determine which shortcuts to trigger.</p></div>
    #[inline(always)]
    pub unsafe fn from_type_int_q_flags_keyboard_modifier3_u32_q_string_bool(
        type_: ::qt_core::q_event::Type,
        key: ::std::os::raw::c_int,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        native_scan_code: u32,
        native_virtual_key: u32,
        native_modifiers: u32,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        autorep: bool,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent7(
            type_,
            key,
            modifiers.to_int(),
            native_scan_code,
            native_virtual_key,
            native_modifiers,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            autorep,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(QEvent::Type type, int key, QFlags<Qt::KeyboardModifier> modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers, const QString& text = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#QKeyEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a>.</p>
    /// <p>Int <i>key</i> is the code for the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> that the event loop should listen for. If <i>key</i> is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The <i>modifiers</i> holds the keyboard modifiers, and the given <i>text</i> is the Unicode text that the key generated. If <i>autorep</i> is true, <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">isAutoRepeat</a>() will be true. <i>count</i> is the number of keys involved in the event.</p>
    /// <p>In addition to the normal key event data, also contains <i>nativeScanCode</i>, <i>nativeVirtualKey</i> and <i>nativeModifiers</i>. This extra data is used by the shortcut system, to determine which shortcuts to trigger.</p></div>
    #[inline(always)]
    pub unsafe fn from_type_int_q_flags_keyboard_modifier3_u32_q_string(
        type_: ::qt_core::q_event::Type,
        key: ::std::os::raw::c_int,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        native_scan_code: u32,
        native_virtual_key: u32,
        native_modifiers: u32,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent8(
            type_,
            key,
            modifiers.to_int(),
            native_scan_code,
            native_virtual_key,
            native_modifiers,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a key event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(QEvent::Type type, int key, QFlags<Qt::KeyboardModifier> modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#QKeyEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a key event object.</p>
    /// <p>The <i>type</i> parameter must be <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a>, <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a>.</p>
    /// <p>Int <i>key</i> is the code for the <a href="http://doc.qt.io/qt-5/qt.html#Key-enum">Qt::Key</a> that the event loop should listen for. If <i>key</i> is 0, the event is not a result of a known key; for example, it may be the result of a compose sequence or keyboard macro. The <i>modifiers</i> holds the keyboard modifiers, and the given <i>text</i> is the Unicode text that the key generated. If <i>autorep</i> is true, <a href="http://doc.qt.io/qt-5/qkeyevent.html#isAutoRepeat">isAutoRepeat</a>() will be true. <i>count</i> is the number of keys involved in the event.</p>
    /// <p>In addition to the normal key event data, also contains <i>nativeScanCode</i>, <i>nativeVirtualKey</i> and <i>nativeModifiers</i>. This extra data is used by the shortcut system, to determine which shortcuts to trigger.</p></div>
    #[inline(always)]
    pub unsafe fn from_type_int_q_flags_keyboard_modifier3_u32(
        type_: ::qt_core::q_event::Type,
        key: ::std::os::raw::c_int,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        native_scan_code: u32,
        native_virtual_key: u32,
        native_modifiers: u32,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent9(
            type_,
            key,
            modifiers.to_int(),
            native_scan_code,
            native_virtual_key,
            native_modifiers,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qkeyevent.html">QKeyEvent</a> class describes a key event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QKeyEvent::QKeyEvent(const QKeyEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qkeyevent.html">QKeyEvent</a> class describes a key event.</p>
    /// <p>Key events are sent to the widget with keyboard input focus when keys are pressed or released.</p>
    /// <p>A key event contains a special accept flag that indicates whether the receiver will handle the key event. This flag is set by default for <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a>, so there is no need to call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() when acting on a key event. For <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ShortcutOverride</a> the receiver needs to explicitly accept the event to trigger the override. Calling <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() on a key event will propagate it to the parent widget. The event is propagated up the parent widget chain until a widget accepts it or an event filter consumes it.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwidget.html#enabled-prop">QWidget::setEnabled</a>() function can be used to enable or disable mouse and keyboard events for a widget.</p>
    /// <p>The event handlers <a href="http://doc.qt.io/qt-5/qwidget.html#keyPressEvent">QWidget::keyPressEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#keyReleaseEvent">QWidget::keyReleaseEvent</a>(), <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#keyPressEvent">QGraphicsItem::keyPressEvent</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#keyReleaseEvent">QGraphicsItem::keyReleaseEvent</a>() receive key events.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeyEvent>>,
    ) -> ::cpp_core::CppBox<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_QKeyEvent3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeyEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the Unicode text that this key generated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QKeyEvent::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeyevent.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the Unicode text that this key generated.</p>
    /// <p>Return values when modifier keys such as Shift, Control, Alt, and Meta are pressed differ among platforms and could return an empty string.</p>
    /// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qkeyevent.html#key">key</a>() will always return a valid value, independent of modifier keys.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_KeyCompression</a>.</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_text(self as *const crate::QKeyEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qfocusevent.html">QFocusEvent</a> class contains event parameters for widget focus events.</p>
///
/// C++ class: <span style='color: green;'>```QFocusEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfocusevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfocusevent.html">QFocusEvent</a> class contains event parameters for widget focus events.</p>
/// <p>Focus events are sent to widgets when the keyboard input focus changes. Focus events occur due to mouse actions, key presses (such as <b>Tab</b> or <b>Backtab</b>), the window system, popup menus, keyboard shortcuts, or other application-specific reasons. The reason for a particular focus event is returned by <a href="http://doc.qt.io/qt-5/qfocusevent.html#reason">reason</a>() in the appropriate event handler.</p>
/// <p>The event handlers <a href="http://doc.qt.io/qt-5/qwidget.html#focusInEvent">QWidget::focusInEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#focusOutEvent">QWidget::focusOutEvent</a>(), <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#focusInEvent">QGraphicsItem::focusInEvent</a> and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#focusOutEvent">QGraphicsItem::focusOutEvent</a>() receive focus events.</p></div>
#[repr(C)]
pub struct QFocusEvent {
    _unused: u8,
}
impl QFocusEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qfocusevent.html">QFocusEvent</a> class contains event parameters for widget focus events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFocusEvent& QFocusEvent::operator=(const QFocusEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfocusevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfocusevent.html">QFocusEvent</a> class contains event parameters for widget focus events.</p>
    /// <p>Focus events are sent to widgets when the keyboard input focus changes. Focus events occur due to mouse actions, key presses (such as <b>Tab</b> or <b>Backtab</b>), the window system, popup menus, keyboard shortcuts, or other application-specific reasons. The reason for a particular focus event is returned by <a href="http://doc.qt.io/qt-5/qfocusevent.html#reason">reason</a>() in the appropriate event handler.</p>
    /// <p>The event handlers <a href="http://doc.qt.io/qt-5/qwidget.html#focusInEvent">QWidget::focusInEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#focusOutEvent">QWidget::focusOutEvent</a>(), <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#focusInEvent">QGraphicsItem::focusInEvent</a> and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#focusOutEvent">QGraphicsItem::focusOutEvent</a>() receive focus events.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFocusEvent>>,
    ) -> ::cpp_core::MutRef<crate::QFocusEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFocusEvent_operator_(
            self as *mut crate::QFocusEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFocusEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qevent.html#type">type</a>() is <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::FocusIn</a>; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFocusEvent::gotFocus() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfocusevent.html#gotFocus">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qevent.html#type">type</a>() is <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::FocusIn</a>; otherwise returns false.</p></div>
    #[inline(always)]
    pub unsafe fn got_focus(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFocusEvent_gotFocus(self as *const crate::QFocusEvent)
    }

    /// <p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qevent.html#type">type</a>() is <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::FocusOut</a>; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFocusEvent::lostFocus() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfocusevent.html#lostFocus">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qevent.html#type">type</a>() is <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::FocusOut</a>; otherwise returns false.</p></div>
    #[inline(always)]
    pub unsafe fn lost_focus(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFocusEvent_lostFocus(self as *const crate::QFocusEvent)
    }

    /// <p>Constructs a focus event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFocusEvent::QFocusEvent(QEvent::Type type, Qt::FocusReason reason = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfocusevent.html#QFocusEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a focus event object.</p>
    /// <p>The <i>type</i> parameter must be either <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::FocusIn</a> or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::FocusOut</a>. The <i>reason</i> describes the cause of the change in focus.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        type_: ::qt_core::q_event::Type,
        reason: ::qt_core::FocusReason,
    ) -> ::cpp_core::CppBox<crate::QFocusEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFocusEvent_QFocusEvent(type_, reason);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a focus event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFocusEvent::QFocusEvent(QEvent::Type type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfocusevent.html#QFocusEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a focus event object.</p>
    /// <p>The <i>type</i> parameter must be either <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::FocusIn</a> or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::FocusOut</a>. The <i>reason</i> describes the cause of the change in focus.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        type_: ::qt_core::q_event::Type,
    ) -> ::cpp_core::CppBox<crate::QFocusEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFocusEvent_QFocusEvent3(type_);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qfocusevent.html">QFocusEvent</a> class contains event parameters for widget focus events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFocusEvent::QFocusEvent(const QFocusEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfocusevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfocusevent.html">QFocusEvent</a> class contains event parameters for widget focus events.</p>
    /// <p>Focus events are sent to widgets when the keyboard input focus changes. Focus events occur due to mouse actions, key presses (such as <b>Tab</b> or <b>Backtab</b>), the window system, popup menus, keyboard shortcuts, or other application-specific reasons. The reason for a particular focus event is returned by <a href="http://doc.qt.io/qt-5/qfocusevent.html#reason">reason</a>() in the appropriate event handler.</p>
    /// <p>The event handlers <a href="http://doc.qt.io/qt-5/qwidget.html#focusInEvent">QWidget::focusInEvent</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#focusOutEvent">QWidget::focusOutEvent</a>(), <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#focusInEvent">QGraphicsItem::focusInEvent</a> and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#focusOutEvent">QGraphicsItem::focusOutEvent</a>() receive focus events.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFocusEvent>>,
    ) -> ::cpp_core::CppBox<crate::QFocusEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFocusEvent_QFocusEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFocusEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the reason for this focus event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::FocusReason QFocusEvent::reason() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfocusevent.html#reason">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the reason for this focus event.</p></div>
    #[inline(always)]
    pub unsafe fn reason(&self) -> ::qt_core::FocusReason {
        crate::__ffi::ctr_qt_gui_ffi_QFocusEvent_reason(self as *const crate::QFocusEvent)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a> class contains event parameters for paint events.</p>
///
/// C++ class: <span style='color: green;'>```QPaintEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpaintevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a> class contains event parameters for paint events.</p>
/// <p>Paint events are sent to widgets that need to update themselves, for instance when part of a widget is exposed because a covering widget was moved.</p>
/// <p>The event contains a <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>() that needs to be updated, and a <a href="http://doc.qt.io/qt-5/qpaintevent.html#rect">rect</a>() that is the bounding rectangle of that region. Both are provided because many widgets cannot make much use of <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>(), and <a href="http://doc.qt.io/qt-5/qpaintevent.html#rect">rect</a>() can be much faster than <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>().boundingRect().</p>
/// <a name="automatic-clipping"></a></div>
#[repr(C)]
pub struct QPaintEvent {
    _unused: u8,
}
impl QPaintEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a> class contains event parameters for paint events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPaintEvent& QPaintEvent::operator=(const QPaintEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a> class contains event parameters for paint events.</p>
    /// <p>Paint events are sent to widgets that need to update themselves, for instance when part of a widget is exposed because a covering widget was moved.</p>
    /// <p>The event contains a <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>() that needs to be updated, and a <a href="http://doc.qt.io/qt-5/qpaintevent.html#rect">rect</a>() that is the bounding rectangle of that region. Both are provided because many widgets cannot make much use of <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>(), and <a href="http://doc.qt.io/qt-5/qpaintevent.html#rect">rect</a>() can be much faster than <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>().boundingRect().</p>
    /// <a name="automatic-clipping"></a></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPaintEvent>>,
    ) -> ::cpp_core::MutRef<crate::QPaintEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEvent_operator_(
            self as *mut crate::QPaintEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPaintEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a paint event object with the region that needs to be updated. The region is specified by <i>paintRegion</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPaintEvent::QPaintEvent(const QRegion& paintRegion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintevent.html#QPaintEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a paint event object with the region that needs to be updated. The region is specified by <i>paintRegion</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_region(
        paint_region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QPaintEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEvent_QPaintEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(paint_region)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a paint event object with the rectangle that needs to be updated. The region is specified by <i>paintRect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPaintEvent::QPaintEvent(const QRect& paintRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintevent.html#QPaintEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a paint event object with the rectangle that needs to be updated. The region is specified by <i>paintRect</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_rect(
        paint_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QPaintEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEvent_QPaintEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(paint_rect)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a> class contains event parameters for paint events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPaintEvent::QPaintEvent(const QPaintEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a> class contains event parameters for paint events.</p>
    /// <p>Paint events are sent to widgets that need to update themselves, for instance when part of a widget is exposed because a covering widget was moved.</p>
    /// <p>The event contains a <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>() that needs to be updated, and a <a href="http://doc.qt.io/qt-5/qpaintevent.html#rect">rect</a>() that is the bounding rectangle of that region. Both are provided because many widgets cannot make much use of <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>(), and <a href="http://doc.qt.io/qt-5/qpaintevent.html#rect">rect</a>() can be much faster than <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>().boundingRect().</p>
    /// <a name="automatic-clipping"></a></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPaintEvent>>,
    ) -> ::cpp_core::CppBox<crate::QPaintEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEvent_QPaintEvent3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPaintEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the rectangle that needs to be updated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QPaintEvent::rect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintevent.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rectangle that needs to be updated.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintevent.html#region">region</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect">QPainter::setClipRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rect(&self) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPaintEvent_rect(self as *const crate::QPaintEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the region that needs to be updated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRegion& QPaintEvent::region() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintevent.html#region">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the region that needs to be updated.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintevent.html#rect">rect</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRegion">QPainter::setClipRegion</a>().</p></div>
    #[inline(always)]
    pub unsafe fn region(&self) -> ::cpp_core::Ref<crate::QRegion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPaintEvent_region(self as *const crate::QPaintEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmoveevent.html">QMoveEvent</a> class contains event parameters for move events.</p>
///
/// C++ class: <span style='color: green;'>```QMoveEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qmoveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmoveevent.html">QMoveEvent</a> class contains event parameters for move events.</p>
/// <p>Move events are sent to widgets that have been moved to a new position relative to their parent.</p>
/// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#moveEvent">QWidget::moveEvent</a>() receives move events.</p></div>
#[repr(C)]
pub struct QMoveEvent {
    _unused: u8,
}
impl QMoveEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qmoveevent.html">QMoveEvent</a> class contains event parameters for move events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMoveEvent& QMoveEvent::operator=(const QMoveEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmoveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmoveevent.html">QMoveEvent</a> class contains event parameters for move events.</p>
    /// <p>Move events are sent to widgets that have been moved to a new position relative to their parent.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#moveEvent">QWidget::moveEvent</a>() receives move events.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMoveEvent>>,
    ) -> ::cpp_core::MutRef<crate::QMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMoveEvent_operator_(
            self as *mut crate::QMoveEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMoveEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a move event with the new and old widget positions, <i>pos</i> and <i>oldPos</i> respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMoveEvent::QMoveEvent(const QPoint& pos, const QPoint& oldPos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmoveevent.html#QMoveEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a move event with the new and old widget positions, <i>pos</i> and <i>oldPos</i> respectively.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        old_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMoveEvent_QMoveEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(old_pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qmoveevent.html">QMoveEvent</a> class contains event parameters for move events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMoveEvent::QMoveEvent(const QMoveEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmoveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmoveevent.html">QMoveEvent</a> class contains event parameters for move events.</p>
    /// <p>Move events are sent to widgets that have been moved to a new position relative to their parent.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#moveEvent">QWidget::moveEvent</a>() receives move events.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMoveEvent>>,
    ) -> ::cpp_core::CppBox<crate::QMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMoveEvent_QMoveEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMoveEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the old position of the widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QMoveEvent::oldPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmoveevent.html#oldPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the old position of the widget.</p></div>
    #[inline(always)]
    pub unsafe fn old_pos(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMoveEvent_oldPos(self as *const crate::QMoveEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the new position of the widget. This excludes the window frame for top level widgets.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QMoveEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmoveevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the new position of the widget. This excludes the window frame for top level widgets.</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMoveEvent_pos(self as *const crate::QMoveEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qexposeevent.html">QExposeEvent</a> class contains event parameters for expose events.</p>
///
/// C++ class: <span style='color: green;'>```QExposeEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qexposeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qexposeevent.html">QExposeEvent</a> class contains event parameters for expose events.</p>
/// <p>Expose events are sent to windows when an area of the window is invalidated or window visibility in the windowing system changes.</p>
/// <p>The event handler <a href="http://doc.qt.io/qt-5/qwindow.html#exposeEvent">QWindow::exposeEvent</a>() receives expose events.</p></div>
#[repr(C)]
pub struct QExposeEvent {
    _unused: u8,
}
impl QExposeEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qexposeevent.html">QExposeEvent</a> class contains event parameters for expose events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QExposeEvent& QExposeEvent::operator=(const QExposeEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qexposeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qexposeevent.html">QExposeEvent</a> class contains event parameters for expose events.</p>
    /// <p>Expose events are sent to windows when an area of the window is invalidated or window visibility in the windowing system changes.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwindow.html#exposeEvent">QWindow::exposeEvent</a>() receives expose events.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QExposeEvent>>,
    ) -> ::cpp_core::MutRef<crate::QExposeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QExposeEvent_operator_(
            self as *mut crate::QExposeEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QExposeEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an expose event for the given <i>exposeRegion</i> which must be in local coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QExposeEvent::QExposeEvent(const QRegion& rgn)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qexposeevent.html#QExposeEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an expose event for the given <i>exposeRegion</i> which must be in local coordinates.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        rgn: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QExposeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QExposeEvent_QExposeEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(rgn).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qexposeevent.html">QExposeEvent</a> class contains event parameters for expose events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QExposeEvent::QExposeEvent(const QExposeEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qexposeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qexposeevent.html">QExposeEvent</a> class contains event parameters for expose events.</p>
    /// <p>Expose events are sent to windows when an area of the window is invalidated or window visibility in the windowing system changes.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwindow.html#exposeEvent">QWindow::exposeEvent</a>() receives expose events.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QExposeEvent>>,
    ) -> ::cpp_core::CppBox<crate::QExposeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QExposeEvent_QExposeEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QExposeEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the window area that has been exposed. The region is given in local coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRegion& QExposeEvent::region() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qexposeevent.html#region">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window area that has been exposed. The region is given in local coordinates.</p></div>
    #[inline(always)]
    pub unsafe fn region(&self) -> ::cpp_core::Ref<crate::QRegion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QExposeEvent_region(self as *const crate::QExposeEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

pub mod q_platform_surface_event {
    //! C++ type: <span style='color: green;'>```QPlatformSurfaceEvent```</span>

    /// <p>This enum describes the type of platform surface event. The possible types are:</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPlatformSurfaceEvent::SurfaceEventType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html#SurfaceEventType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the type of platform surface event. The possible types are:</p>
    ///
    /// <p>The <code>SurfaceAboutToBeDestroyed</code> event type is useful as a means of stopping rendering to a platform window before it is destroyed.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SurfaceEventType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SurfaceEventType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SurfaceEventType(value)
        }
    }

    impl From<SurfaceEventType> for ::std::os::raw::c_int {
        fn from(value: SurfaceEventType) -> Self {
            value.0
        }
    }

    impl SurfaceEventType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SurfaceEventType {
        /// The underlying native surface has been created (C++ enum variant: <span style='color: green;'>```SurfaceCreated = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const SurfaceCreated: crate::q_platform_surface_event::SurfaceEventType =
            crate::q_platform_surface_event::SurfaceEventType(0);
        /// The underlying native surface will be destroyed immediately after this event (C++ enum variant: <span style='color: green;'>```SurfaceAboutToBeDestroyed = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const SurfaceAboutToBeDestroyed: crate::q_platform_surface_event::SurfaceEventType =
            crate::q_platform_surface_event::SurfaceEventType(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">QPlatformSurfaceEvent</a> class is used to notify about native platform surface events.</p>
///
/// C++ class: <span style='color: green;'>```QPlatformSurfaceEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">QPlatformSurfaceEvent</a> class is used to notify about native platform surface events.</p>
/// <p>Platform window events are synchronously sent to windows and offscreen surfaces when their underlying native surfaces are created or are about to be destroyed.</p>
/// <p>Applications can respond to these events to know when the underlying platform surface exists.</p></div>
#[repr(C)]
pub struct QPlatformSurfaceEvent {
    _unused: u8,
}
impl QPlatformSurfaceEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">QPlatformSurfaceEvent</a> class is used to notify about native platform surface events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPlatformSurfaceEvent& QPlatformSurfaceEvent::operator=(const QPlatformSurfaceEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">QPlatformSurfaceEvent</a> class is used to notify about native platform surface events.</p>
    /// <p>Platform window events are synchronously sent to windows and offscreen surfaces when their underlying native surfaces are created or are about to be destroyed.</p>
    /// <p>Applications can respond to these events to know when the underlying platform surface exists.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPlatformSurfaceEvent>>,
    ) -> ::cpp_core::MutRef<crate::QPlatformSurfaceEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPlatformSurfaceEvent_operator_(
            self as *mut crate::QPlatformSurfaceEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPlatformSurfaceEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a platform surface event for the given <i>surfaceEventType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPlatformSurfaceEvent::QPlatformSurfaceEvent(QPlatformSurfaceEvent::SurfaceEventType surfaceEventType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html#QPlatformSurfaceEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a platform surface event for the given <i>surfaceEventType</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        surface_event_type: crate::q_platform_surface_event::SurfaceEventType,
    ) -> ::cpp_core::CppBox<crate::QPlatformSurfaceEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPlatformSurfaceEvent_QPlatformSurfaceEvent(
            surface_event_type,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">QPlatformSurfaceEvent</a> class is used to notify about native platform surface events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPlatformSurfaceEvent::QPlatformSurfaceEvent(const QPlatformSurfaceEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html">QPlatformSurfaceEvent</a> class is used to notify about native platform surface events.</p>
    /// <p>Platform window events are synchronously sent to windows and offscreen surfaces when their underlying native surfaces are created or are about to be destroyed.</p>
    /// <p>Applications can respond to these events to know when the underlying platform surface exists.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPlatformSurfaceEvent>>,
    ) -> ::cpp_core::CppBox<crate::QPlatformSurfaceEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPlatformSurfaceEvent_QPlatformSurfaceEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPlatformSurfaceEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the specific type of platform surface event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPlatformSurfaceEvent::SurfaceEventType QPlatformSurfaceEvent::surfaceEventType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qplatformsurfaceevent.html#surfaceEventType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the specific type of platform surface event.</p></div>
    #[inline(always)]
    pub unsafe fn surface_event_type(&self) -> crate::q_platform_surface_event::SurfaceEventType {
        crate::__ffi::ctr_qt_gui_ffi_QPlatformSurfaceEvent_surfaceEventType(
            self as *const crate::QPlatformSurfaceEvent,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qresizeevent.html">QResizeEvent</a> class contains event parameters for resize events.</p>
///
/// C++ class: <span style='color: green;'>```QResizeEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qresizeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qresizeevent.html">QResizeEvent</a> class contains event parameters for resize events.</p>
/// <p>Resize events are sent to widgets that have been resized.</p>
/// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#resizeEvent">QWidget::resizeEvent</a>() receives resize events.</p></div>
#[repr(C)]
pub struct QResizeEvent {
    _unused: u8,
}
impl QResizeEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qresizeevent.html">QResizeEvent</a> class contains event parameters for resize events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QResizeEvent& QResizeEvent::operator=(const QResizeEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qresizeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qresizeevent.html">QResizeEvent</a> class contains event parameters for resize events.</p>
    /// <p>Resize events are sent to widgets that have been resized.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#resizeEvent">QWidget::resizeEvent</a>() receives resize events.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QResizeEvent>>,
    ) -> ::cpp_core::MutRef<crate::QResizeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QResizeEvent_operator_(
            self as *mut crate::QResizeEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QResizeEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a resize event with the new and old widget sizes, <i>size</i> and <i>oldSize</i> respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QResizeEvent::QResizeEvent(const QSize& size, const QSize& oldSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qresizeevent.html#QResizeEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a resize event with the new and old widget sizes, <i>size</i> and <i>oldSize</i> respectively.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        old_size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QResizeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QResizeEvent_QResizeEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(old_size)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qresizeevent.html">QResizeEvent</a> class contains event parameters for resize events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QResizeEvent::QResizeEvent(const QResizeEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qresizeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qresizeevent.html">QResizeEvent</a> class contains event parameters for resize events.</p>
    /// <p>Resize events are sent to widgets that have been resized.</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#resizeEvent">QWidget::resizeEvent</a>() receives resize events.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QResizeEvent>>,
    ) -> ::cpp_core::CppBox<crate::QResizeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QResizeEvent_QResizeEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QResizeEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the old size of the widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QResizeEvent::oldSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qresizeevent.html#oldSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the old size of the widget.</p></div>
    #[inline(always)]
    pub unsafe fn old_size(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QResizeEvent_oldSize(self as *const crate::QResizeEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the new size of the widget. This is the same as <a href="http://doc.qt.io/qt-5/qwidget.html#size-prop">QWidget::size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QResizeEvent::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qresizeevent.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the new size of the widget. This is the same as <a href="http://doc.qt.io/qt-5/qwidget.html#size-prop">QWidget::size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QResizeEvent_size(self as *const crate::QResizeEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qcloseevent.html">QCloseEvent</a> class contains parameters that describe a close event.</p>
///
/// C++ class: <span style='color: green;'>```QCloseEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcloseevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcloseevent.html">QCloseEvent</a> class contains parameters that describe a close event.</p>
/// <p>Close events are sent to widgets that the user wants to close, usually by choosing "Close" from the window menu, or by clicking the <b>X</b> title bar button. They are also sent when you call <a href="http://doc.qt.io/qt-5/qwidget.html#close">QWidget::close</a>() to close a widget programmatically.</p>
/// <p>Close events contain a flag that indicates whether the receiver wants the widget to be closed or not. When a widget accepts the close event, it is hidden (and destroyed if it was created with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_DeleteOnClose</a> flag). If it refuses to accept the close event nothing happens. (Under X11 it is possible that the window manager will forcibly close the window; but at the time of writing we are not aware of any window manager that does this.)</p>
/// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#closeEvent">QWidget::closeEvent</a>() receives close events. The default implementation of this event handler accepts the close event. If you do not want your widget to be hidden, or want some special handling, you should reimplement the event handler and <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() the event.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qtwidgets-mainwindows-application-example.html#close-event-handler">closeEvent() in the Application example</a> shows a close event handler that asks whether to save a document before closing.</p>
/// <p>If you want the widget to be deleted when it is closed, create it with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_DeleteOnClose</a> flag. This is very useful for independent top-level windows in a multi-window application.</p>
/// <p><a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>s emits the <a href="http://doc.qt.io/qt-5/qobject.html#destroyed">destroyed()</a> signal when they are deleted.</p>
/// <p>If the last top-level window is closed, the <a href="http://doc.qt.io/qt-5/qguiapplication.html#lastWindowClosed">QGuiApplication::lastWindowClosed</a>() signal is emitted.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qevent.html#accepted-prop">isAccepted</a>() function returns <code>true</code> if the event's receiver has agreed to close the widget; call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() to agree to close the widget and call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if the receiver of this event does not want the widget to be closed.</p></div>
#[repr(C)]
pub struct QCloseEvent {
    _unused: u8,
}
impl QCloseEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qcloseevent.html">QCloseEvent</a> class contains parameters that describe a close event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QCloseEvent& QCloseEvent::operator=(const QCloseEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcloseevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcloseevent.html">QCloseEvent</a> class contains parameters that describe a close event.</p>
    /// <p>Close events are sent to widgets that the user wants to close, usually by choosing "Close" from the window menu, or by clicking the <b>X</b> title bar button. They are also sent when you call <a href="http://doc.qt.io/qt-5/qwidget.html#close">QWidget::close</a>() to close a widget programmatically.</p>
    /// <p>Close events contain a flag that indicates whether the receiver wants the widget to be closed or not. When a widget accepts the close event, it is hidden (and destroyed if it was created with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_DeleteOnClose</a> flag). If it refuses to accept the close event nothing happens. (Under X11 it is possible that the window manager will forcibly close the window; but at the time of writing we are not aware of any window manager that does this.)</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#closeEvent">QWidget::closeEvent</a>() receives close events. The default implementation of this event handler accepts the close event. If you do not want your widget to be hidden, or want some special handling, you should reimplement the event handler and <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() the event.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qtwidgets-mainwindows-application-example.html#close-event-handler">closeEvent() in the Application example</a> shows a close event handler that asks whether to save a document before closing.</p>
    /// <p>If you want the widget to be deleted when it is closed, create it with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_DeleteOnClose</a> flag. This is very useful for independent top-level windows in a multi-window application.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>s emits the <a href="http://doc.qt.io/qt-5/qobject.html#destroyed">destroyed()</a> signal when they are deleted.</p>
    /// <p>If the last top-level window is closed, the <a href="http://doc.qt.io/qt-5/qguiapplication.html#lastWindowClosed">QGuiApplication::lastWindowClosed</a>() signal is emitted.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qevent.html#accepted-prop">isAccepted</a>() function returns <code>true</code> if the event's receiver has agreed to close the widget; call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() to agree to close the widget and call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if the receiver of this event does not want the widget to be closed.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QCloseEvent>>,
    ) -> ::cpp_core::MutRef<crate::QCloseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCloseEvent_operator_(
            self as *mut crate::QCloseEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QCloseEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a close event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCloseEvent::QCloseEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcloseevent.html#QCloseEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a close event object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QCloseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCloseEvent_QCloseEvent();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qcloseevent.html">QCloseEvent</a> class contains parameters that describe a close event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCloseEvent::QCloseEvent(const QCloseEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcloseevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcloseevent.html">QCloseEvent</a> class contains parameters that describe a close event.</p>
    /// <p>Close events are sent to widgets that the user wants to close, usually by choosing "Close" from the window menu, or by clicking the <b>X</b> title bar button. They are also sent when you call <a href="http://doc.qt.io/qt-5/qwidget.html#close">QWidget::close</a>() to close a widget programmatically.</p>
    /// <p>Close events contain a flag that indicates whether the receiver wants the widget to be closed or not. When a widget accepts the close event, it is hidden (and destroyed if it was created with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_DeleteOnClose</a> flag). If it refuses to accept the close event nothing happens. (Under X11 it is possible that the window manager will forcibly close the window; but at the time of writing we are not aware of any window manager that does this.)</p>
    /// <p>The event handler <a href="http://doc.qt.io/qt-5/qwidget.html#closeEvent">QWidget::closeEvent</a>() receives close events. The default implementation of this event handler accepts the close event. If you do not want your widget to be hidden, or want some special handling, you should reimplement the event handler and <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() the event.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qtwidgets-mainwindows-application-example.html#close-event-handler">closeEvent() in the Application example</a> shows a close event handler that asks whether to save a document before closing.</p>
    /// <p>If you want the widget to be deleted when it is closed, create it with the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_DeleteOnClose</a> flag. This is very useful for independent top-level windows in a multi-window application.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>s emits the <a href="http://doc.qt.io/qt-5/qobject.html#destroyed">destroyed()</a> signal when they are deleted.</p>
    /// <p>If the last top-level window is closed, the <a href="http://doc.qt.io/qt-5/qguiapplication.html#lastWindowClosed">QGuiApplication::lastWindowClosed</a>() signal is emitted.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qevent.html#accepted-prop">isAccepted</a>() function returns <code>true</code> if the event's receiver has agreed to close the widget; call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() to agree to close the widget and call <a href="http://doc.qt.io/qt-5/qevent.html#ignore">ignore</a>() if the receiver of this event does not want the widget to be closed.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QCloseEvent>>,
    ) -> ::cpp_core::CppBox<crate::QCloseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCloseEvent_QCloseEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QCloseEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qicondragevent.html">QIconDragEvent</a> class indicates that a main icon drag has begun.</p>
///
/// C++ class: <span style='color: green;'>```QIconDragEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qicondragevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qicondragevent.html">QIconDragEvent</a> class indicates that a main icon drag has begun.</p>
/// <p>Icon drag events are sent to widgets when the main icon of a window has been dragged away. On <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, this happens when the proxy icon of a window is dragged off the title bar.</p>
/// <p>It is normal to begin using drag and drop in response to this event.</p></div>
#[repr(C)]
pub struct QIconDragEvent {
    _unused: u8,
}
impl QIconDragEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qicondragevent.html">QIconDragEvent</a> class indicates that a main icon drag has begun.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIconDragEvent& QIconDragEvent::operator=(const QIconDragEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicondragevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qicondragevent.html">QIconDragEvent</a> class indicates that a main icon drag has begun.</p>
    /// <p>Icon drag events are sent to widgets when the main icon of a window has been dragged away. On <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, this happens when the proxy icon of a window is dragged off the title bar.</p>
    /// <p>It is normal to begin using drag and drop in response to this event.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIconDragEvent>>,
    ) -> ::cpp_core::MutRef<crate::QIconDragEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconDragEvent_operator_(
            self as *mut crate::QIconDragEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIconDragEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an icon drag event object with the accept flag set to false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIconDragEvent::QIconDragEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicondragevent.html#QIconDragEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an icon drag event object with the accept flag set to false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QIconDragEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconDragEvent_QIconDragEvent();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qicondragevent.html">QIconDragEvent</a> class indicates that a main icon drag has begun.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIconDragEvent::QIconDragEvent(const QIconDragEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicondragevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qicondragevent.html">QIconDragEvent</a> class indicates that a main icon drag has begun.</p>
    /// <p>Icon drag events are sent to widgets when the main icon of a window has been dragged away. On <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, this happens when the proxy icon of a window is dragged off the title bar.</p>
    /// <p>It is normal to begin using drag and drop in response to this event.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIconDragEvent>>,
    ) -> ::cpp_core::CppBox<crate::QIconDragEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconDragEvent_QIconDragEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIconDragEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qshowevent.html">QShowEvent</a> class provides an event that is sent when a widget is shown.</p>
///
/// C++ class: <span style='color: green;'>```QShowEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qshowevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qshowevent.html">QShowEvent</a> class provides an event that is sent when a widget is shown.</p>
/// <p>There are two kinds of show events: show events caused by the window system (spontaneous), and internal show events. Spontaneous (<a href="http://doc.qt.io/qt-5/qevent.html#spontaneous">QEvent::spontaneous</a>()) show events are sent just after the window system shows the window; they are also sent when a top-level window is redisplayed after being iconified. Internal show events are delivered just before the widget becomes visible.</p></div>
#[repr(C)]
pub struct QShowEvent {
    _unused: u8,
}
impl QShowEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qshowevent.html">QShowEvent</a> class provides an event that is sent when a widget is shown.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QShowEvent& QShowEvent::operator=(const QShowEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshowevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qshowevent.html">QShowEvent</a> class provides an event that is sent when a widget is shown.</p>
    /// <p>There are two kinds of show events: show events caused by the window system (spontaneous), and internal show events. Spontaneous (<a href="http://doc.qt.io/qt-5/qevent.html#spontaneous">QEvent::spontaneous</a>()) show events are sent just after the window system shows the window; they are also sent when a top-level window is redisplayed after being iconified. Internal show events are delivered just before the widget becomes visible.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QShowEvent>>,
    ) -> ::cpp_core::MutRef<crate::QShowEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QShowEvent_operator_(
            self as *mut crate::QShowEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QShowEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qshowevent.html">QShowEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QShowEvent::QShowEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshowevent.html#QShowEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qshowevent.html">QShowEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QShowEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QShowEvent_QShowEvent();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qshowevent.html">QShowEvent</a> class provides an event that is sent when a widget is shown.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QShowEvent::QShowEvent(const QShowEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshowevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qshowevent.html">QShowEvent</a> class provides an event that is sent when a widget is shown.</p>
    /// <p>There are two kinds of show events: show events caused by the window system (spontaneous), and internal show events. Spontaneous (<a href="http://doc.qt.io/qt-5/qevent.html#spontaneous">QEvent::spontaneous</a>()) show events are sent just after the window system shows the window; they are also sent when a top-level window is redisplayed after being iconified. Internal show events are delivered just before the widget becomes visible.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QShowEvent>>,
    ) -> ::cpp_core::CppBox<crate::QShowEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QShowEvent_QShowEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QShowEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qhideevent.html">QHideEvent</a> class provides an event which is sent after a widget is hidden.</p>
///
/// C++ class: <span style='color: green;'>```QHideEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qhideevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhideevent.html">QHideEvent</a> class provides an event which is sent after a widget is hidden.</p>
/// <p>This event is sent just before <a href="http://doc.qt.io/qt-5/qwidget.html#hide">QWidget::hide</a>() returns, and also when a top-level window has been hidden (iconified) by the user.</p>
/// <p>If <a href="http://doc.qt.io/qt-5/qevent.html#spontaneous">spontaneous</a>() is true, the event originated outside the application. In this case, the user hid the window using the window manager controls, either by iconifying the window or by switching to another virtual desktop where the window is not visible. The window will become hidden but not withdrawn. If the window was iconified, <a href="http://doc.qt.io/qt-5/qwidget.html#minimized-prop">QWidget::isMinimized</a>() returns <code>true</code>.</p></div>
#[repr(C)]
pub struct QHideEvent {
    _unused: u8,
}
impl QHideEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qhideevent.html">QHideEvent</a> class provides an event which is sent after a widget is hidden.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QHideEvent& QHideEvent::operator=(const QHideEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhideevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhideevent.html">QHideEvent</a> class provides an event which is sent after a widget is hidden.</p>
    /// <p>This event is sent just before <a href="http://doc.qt.io/qt-5/qwidget.html#hide">QWidget::hide</a>() returns, and also when a top-level window has been hidden (iconified) by the user.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qevent.html#spontaneous">spontaneous</a>() is true, the event originated outside the application. In this case, the user hid the window using the window manager controls, either by iconifying the window or by switching to another virtual desktop where the window is not visible. The window will become hidden but not withdrawn. If the window was iconified, <a href="http://doc.qt.io/qt-5/qwidget.html#minimized-prop">QWidget::isMinimized</a>() returns <code>true</code>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QHideEvent>>,
    ) -> ::cpp_core::MutRef<crate::QHideEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHideEvent_operator_(
            self as *mut crate::QHideEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QHideEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qhideevent.html">QHideEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QHideEvent::QHideEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhideevent.html#QHideEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qhideevent.html">QHideEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QHideEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHideEvent_QHideEvent();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qhideevent.html">QHideEvent</a> class provides an event which is sent after a widget is hidden.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QHideEvent::QHideEvent(const QHideEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhideevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhideevent.html">QHideEvent</a> class provides an event which is sent after a widget is hidden.</p>
    /// <p>This event is sent just before <a href="http://doc.qt.io/qt-5/qwidget.html#hide">QWidget::hide</a>() returns, and also when a top-level window has been hidden (iconified) by the user.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qevent.html#spontaneous">spontaneous</a>() is true, the event originated outside the application. In this case, the user hid the window using the window manager controls, either by iconifying the window or by switching to another virtual desktop where the window is not visible. The window will become hidden but not withdrawn. If the window was iconified, <a href="http://doc.qt.io/qt-5/qwidget.html#minimized-prop">QWidget::isMinimized</a>() returns <code>true</code>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QHideEvent>>,
    ) -> ::cpp_core::CppBox<crate::QHideEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHideEvent_QHideEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QHideEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_context_menu_event {
    //! C++ type: <span style='color: green;'>```QContextMenuEvent```</span>

    /// <p>This enum describes the reason why the event was sent.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QContextMenuEvent::Reason```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#Reason-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the reason why the event was sent.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Reason(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Reason {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Reason(value)
        }
    }

    impl From<Reason> for ::std::os::raw::c_int {
        fn from(value: Reason) -> Self {
            value.0
        }
    }

    impl Reason {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Reason {
        /// The mouse caused the event to be sent. Normally this means the right mouse button was clicked, but this is platform dependent. (C++ enum variant: <span style='color: green;'>```Mouse = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Mouse: crate::q_context_menu_event::Reason =
            crate::q_context_menu_event::Reason(0);
        /// The keyboard caused this event to be sent. On Windows, this means the menu button was pressed. (C++ enum variant: <span style='color: green;'>```Keyboard = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Keyboard: crate::q_context_menu_event::Reason =
            crate::q_context_menu_event::Reason(1);
        /// The event was sent by some other means (i.e. not by the mouse or keyboard). (C++ enum variant: <span style='color: green;'>```Other = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Other: crate::q_context_menu_event::Reason =
            crate::q_context_menu_event::Reason(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">QContextMenuEvent</a> class contains parameters that describe a context menu event.</p>
///
/// C++ class: <span style='color: green;'>```QContextMenuEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">QContextMenuEvent</a> class contains parameters that describe a context menu event.</p>
/// <p>Context menu events are sent to widgets when a user performs an action associated with opening a context menu. The actions required to open context menus vary between platforms; for example, on Windows, pressing the menu button or clicking the right mouse button will cause this event to be sent.</p>
/// <p>When this event occurs it is customary to show a <a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a> with a context menu, if this is relevant to the context.</p>
/// <p>Context menu events contain a special accept flag that indicates whether the receiver accepted the event. If the event handler does not accept the event then, if possible, whatever triggered the event will be handled as a regular input event.</p></div>
#[repr(C)]
pub struct QContextMenuEvent {
    _unused: u8,
}
impl QContextMenuEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">QContextMenuEvent</a> class contains parameters that describe a context menu event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent& QContextMenuEvent::operator=(const QContextMenuEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">QContextMenuEvent</a> class contains parameters that describe a context menu event.</p>
    /// <p>Context menu events are sent to widgets when a user performs an action associated with opening a context menu. The actions required to open context menus vary between platforms; for example, on Windows, pressing the menu button or clicking the right mouse button will cause this event to be sent.</p>
    /// <p>When this event occurs it is customary to show a <a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a> with a context menu, if this is relevant to the context.</p>
    /// <p>Context menu events contain a special accept flag that indicates whether the receiver accepted the event. If the event handler does not accept the event then, if possible, whatever triggered the event will be handled as a regular input event.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QContextMenuEvent>>,
    ) -> ::cpp_core::MutRef<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_operator_(
            self as *mut crate::QContextMenuEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QContextMenuEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the global position of the mouse pointer at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QContextMenuEvent::globalPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global position of the mouse pointer at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_pos(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_globalPos(
            self as *const crate::QContextMenuEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the global x position of the mouse pointer at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QContextMenuEvent::globalX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global x position of the mouse pointer at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalY">globalY</a>() and <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_globalX(
            self as *const crate::QContextMenuEvent,
        )
    }

    /// <p>Returns the global y position of the mouse pointer at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QContextMenuEvent::globalY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global y position of the mouse pointer at the time of the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalX">globalX</a>() and <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_globalY(
            self as *const crate::QContextMenuEvent,
        )
    }

    /// <p>Constructs a context menu event object with the accept parameter flag set to false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QContextMenuEvent::QContextMenuEvent(QContextMenuEvent::Reason reason, const QPoint& pos, const QPoint& globalPos, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#QContextMenuEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a context menu event object with the accept parameter flag set to false.</p>
    /// <p>The <i>reason</i> parameter must be <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#Reason-enum">QContextMenuEvent::Mouse</a> or <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#Reason-enum">QContextMenuEvent::Keyboard</a>.</p>
    /// <p>The <i>pos</i> parameter specifies the mouse position relative to the receiving widget. <i>globalPos</i> is the mouse position in absolute coordinates. The <i>modifiers</i> holds the keyboard modifiers.</p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        reason: crate::q_context_menu_event::Reason,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_QContextMenuEvent(
            reason,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(global_pos)
                .as_raw_ptr(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a context menu event object with the accept parameter flag set to false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QContextMenuEvent::QContextMenuEvent(QContextMenuEvent::Reason reason, const QPoint& pos, const QPoint& globalPos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#QContextMenuEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a context menu event object with the accept parameter flag set to false.</p>
    /// <p>The <i>reason</i> parameter must be <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#Reason-enum">QContextMenuEvent::Mouse</a> or <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#Reason-enum">QContextMenuEvent::Keyboard</a>.</p>
    /// <p>The <i>pos</i> parameter specifies the mouse position relative to the receiving widget. <i>globalPos</i> is the mouse position in absolute coordinates.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        reason: crate::q_context_menu_event::Reason,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_QContextMenuEvent1(
            reason,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(global_pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a context menu event object with the accept parameter flag set to false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QContextMenuEvent::QContextMenuEvent(QContextMenuEvent::Reason reason, const QPoint& pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#QContextMenuEvent-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a context menu event object with the accept parameter flag set to false.</p>
    /// <p>The <i>reason</i> parameter must be <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#Reason-enum">QContextMenuEvent::Mouse</a> or <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#Reason-enum">QContextMenuEvent::Keyboard</a>.</p>
    /// <p>The <i>pos</i> parameter specifies the mouse position relative to the receiving widget.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalPos">globalPos</a>() is initialized to <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>(), which may not be appropriate. Use the other constructor to specify the global position explicitly.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        reason: crate::q_context_menu_event::Reason,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_QContextMenuEvent2(
            reason,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">QContextMenuEvent</a> class contains parameters that describe a context menu event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QContextMenuEvent::QContextMenuEvent(const QContextMenuEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html">QContextMenuEvent</a> class contains parameters that describe a context menu event.</p>
    /// <p>Context menu events are sent to widgets when a user performs an action associated with opening a context menu. The actions required to open context menus vary between platforms; for example, on Windows, pressing the menu button or clicking the right mouse button will cause this event to be sent.</p>
    /// <p>When this event occurs it is customary to show a <a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a> with a context menu, if this is relevant to the context.</p>
    /// <p>Context menu events contain a special accept flag that indicates whether the receiver accepted the event. If the event handler does not accept the event then, if possible, whatever triggered the event will be handled as a regular input event.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QContextMenuEvent>>,
    ) -> ::cpp_core::CppBox<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_QContextMenuEvent4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QContextMenuEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the mouse pointer relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QContextMenuEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the mouse pointer relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_pos(
            self as *const crate::QContextMenuEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the reason for this context event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent::Reason QContextMenuEvent::reason() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#reason">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the reason for this context event.</p></div>
    #[inline(always)]
    pub unsafe fn reason(&self) -> crate::q_context_menu_event::Reason {
        crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_reason(
            self as *const crate::QContextMenuEvent,
        )
    }

    /// <p>Returns the x position of the mouse pointer, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QContextMenuEvent::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x position of the mouse pointer, relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#y">y</a>() and <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_x(self as *const crate::QContextMenuEvent)
    }

    /// <p>Returns the y position of the mouse pointer, relative to the widget that received the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QContextMenuEvent::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y position of the mouse pointer, relative to the widget that received the event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qcontextmenuevent.html#pos">pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_y(self as *const crate::QContextMenuEvent)
    }
}

pub mod q_input_method_event {
    //! C++ type: <span style='color: green;'>```QInputMethodEvent```</span>

    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">Attribute</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QInputMethodEvent::AttributeType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">Attribute</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AttributeType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AttributeType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AttributeType(value)
        }
    }

    impl From<AttributeType> for ::std::os::raw::c_int {
        fn from(value: AttributeType) -> Self {
            value.0
        }
    }

    impl AttributeType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AttributeType {
        /// A <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> for the part of the preedit string specified by start and length. value contains a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a> of type <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> specifying rendering of this part of the preedit string. There should be at most one format for every part of the preedit string. If several are specified for any character in the string the behaviour is undefined. A conforming implementation has to at least honor the backgroundColor, textColor and fontUnderline properties of the format. (C++ enum variant: <span style='color: green;'>```TextFormat = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextFormat: crate::q_input_method_event::AttributeType =
            crate::q_input_method_event::AttributeType(0);
        /// If set, a cursor should be shown inside the preedit string at position start. The length variable determines whether the cursor is visible or not. If the length is 0 the cursor is invisible. If value is a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a> of type <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> this color will be used for rendering the cursor, otherwise the color of the surrounding text will be used. There should be at most one Cursor attribute per event. If several are specified the behaviour is undefined. (C++ enum variant: <span style='color: green;'>```Cursor = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cursor: crate::q_input_method_event::AttributeType =
            crate::q_input_method_event::AttributeType(1);
        /// The variant contains a <a href="http://doc.qt.io/qt-5/qlocale.html">QLocale</a> object specifying the language of a certain part of the preedit string. There should be at most one language set for every part of the preedit string. If several are specified for any character in the string the behavior is undefined. (C++ enum variant: <span style='color: green;'>```Language = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Language: crate::q_input_method_event::AttributeType =
            crate::q_input_method_event::AttributeType(2);
        /// The ruby text for a part of the preedit string. There should be at most one ruby text set for every part of the preedit string. If several are specified for any character in the string the behaviour is undefined. (C++ enum variant: <span style='color: green;'>```Ruby = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Ruby: crate::q_input_method_event::AttributeType =
            crate::q_input_method_event::AttributeType(3);
        /// If set, the edit cursor should be moved to the specified position in the editor text contents. In contrast with <code>Cursor</code>, this attribute does not work on the preedit text, but on the surrounding text. The cursor will be moved after the commit string has been committed, and the preedit string will be located at the new edit position. The start position specifies the new position and the length variable can be used to set a selection starting from that point. The value is unused. (C++ enum variant: <span style='color: green;'>```Selection = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Selection: crate::q_input_method_event::AttributeType =
            crate::q_input_method_event::AttributeType(4);
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">QInputMethodEvent::Attribute</a> class stores an input method attribute.</p>
    ///
    /// C++ class: <span style='color: green;'>```QInputMethodEvent::Attribute```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">QInputMethodEvent::Attribute</a> class stores an input method attribute.</p></div>
    #[repr(C)]
    pub struct Attribute {
        _unused: u8,
    }
    impl Attribute {
        /// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">QInputMethodEvent::Attribute</a> class stores an input method attribute.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QInputMethodEvent::Attribute::operator=(const QInputMethodEvent::Attribute& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">QInputMethodEvent::Attribute</a> class stores an input method attribute.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
        ) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_operator_(self as *mut crate::q_input_method_event::Attribute, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```length```</span> field.
        #[inline(always)]
        pub unsafe fn length(&self) -> ::std::os::raw::c_int {
            crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_length(
                self as *const crate::q_input_method_event::Attribute,
            )
        }

        /// <p>Constructs an input method attribute. <i>type</i> specifies the type of attribute, <i>start</i> and <i>length</i> the position of the attribute, and <i>value</i> the value of the attribute.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputMethodEvent::Attribute::Attribute(QInputMethodEvent::AttributeType typ, int s, int l, QVariant val)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html#Attribute">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an input method attribute. <i>type</i> specifies the type of attribute, <i>start</i> and <i>length</i> the position of the attribute, and <i>value</i> the value of the attribute.</p></div>
        #[inline(always)]
        pub unsafe fn new_4a(
            typ: crate::q_input_method_event::AttributeType,
            s: ::std::os::raw::c_int,
            l: ::std::os::raw::c_int,
            val: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
        ) -> ::cpp_core::CppBox<crate::q_input_method_event::Attribute> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_Attribute(
                typ,
                s,
                l,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(val)
                    .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputMethodEvent::Attribute::Attribute(QInputMethodEvent::AttributeType typ, int s, int l)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html#Attribute-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>Constructs an input method attribute with no value. <i>type</i> specifies the type of attribute, and <i>start</i> and <i>length</i> the position of the attribute.</p>
        /// <p>This function was introduced in  Qt 5.7.</p></div>
        #[inline(always)]
        pub unsafe fn new_3a(
            typ: crate::q_input_method_event::AttributeType,
            s: ::std::os::raw::c_int,
            l: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_input_method_event::Attribute> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_Attribute1(typ, s, l);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">QInputMethodEvent::Attribute</a> class stores an input method attribute.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputMethodEvent::Attribute::Attribute(const QInputMethodEvent::Attribute& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">QInputMethodEvent::Attribute</a> class stores an input method attribute.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
        ) -> ::cpp_core::CppBox<crate::q_input_method_event::Attribute> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_Attribute3(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(other).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Sets the value of the <span style='color: green;'>```length```</span> field.
        #[inline(always)]
        pub unsafe fn set_length(&mut self, value: ::std::os::raw::c_int) {
            crate::__ffi::ctr_qt_gui_ffi_set_QInputMethodEvent_Attribute_length(
                self as *mut crate::q_input_method_event::Attribute,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```start```</span> field.
        #[inline(always)]
        pub unsafe fn set_start(&mut self, value: ::std::os::raw::c_int) {
            crate::__ffi::ctr_qt_gui_ffi_set_QInputMethodEvent_Attribute_start(
                self as *mut crate::q_input_method_event::Attribute,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```type```</span> field.
        #[inline(always)]
        pub unsafe fn set_type(&mut self, value: crate::q_input_method_event::AttributeType) {
            crate::__ffi::ctr_qt_gui_ffi_set_QInputMethodEvent_Attribute_type(
                self as *mut crate::q_input_method_event::Attribute,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```value```</span> field.
        #[inline(always)]
        pub unsafe fn set_value(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QInputMethodEvent_Attribute_value(
                self as *mut crate::q_input_method_event::Attribute,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Returns the value of the <span style='color: green;'>```start```</span> field.
        #[inline(always)]
        pub unsafe fn start(&self) -> ::std::os::raw::c_int {
            crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_start(
                self as *const crate::q_input_method_event::Attribute,
            )
        }

        /// Returns the value of the <span style='color: green;'>```type```</span> field.
        #[inline(always)]
        pub unsafe fn type_(&self) -> crate::q_input_method_event::AttributeType {
            crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_type(
                self as *const crate::q_input_method_event::Attribute,
            )
        }

        /// Returns a reference to the <span style='color: green;'>```value```</span> field.
        #[inline(always)]
        pub unsafe fn value(&self) -> ::cpp_core::Ref<::qt_core::QVariant> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_value(
                self as *const crate::q_input_method_event::Attribute,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```value```</span> field.
        #[inline(always)]
        pub unsafe fn value_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QVariant> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_value_mut(
                self as *mut crate::q_input_method_event::Attribute,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_input_method_event::Attribute {
        /// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">QInputMethodEvent::Attribute</a> class stores an input method attribute.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QInputMethodEvent::Attribute::~Attribute()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">QInputMethodEvent::Attribute</a> class stores an input method attribute.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_Attribute_dAttribute(
                self as *mut crate::q_input_method_event::Attribute,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> class provides parameters for input method events.</p>
///
/// C++ class: <span style='color: green;'>```QInputMethodEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> class provides parameters for input method events.</p>
/// <p>Input method events are sent to widgets when an input method is used to enter text into a widget. Input methods are widely used to enter text for languages with non-Latin alphabets.</p>
/// <p>Note that when creating custom text editing widgets, the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_InputMethodEnabled</a> window attribute must be set explicitly (using the <a href="http://doc.qt.io/qt-5/qwidget.html#setAttribute">QWidget::setAttribute</a>() function) in order to receive input method events.</p>
/// <p>The events are of interest to authors of keyboard entry widgets who want to be able to correctly handle languages with complex character input. Text input in such languages is usually a three step process:</p>
/// <ol class="1" type="1"><li><b>Starting to Compose</b><p>When the user presses the first key on a keyboard, an input context is created. This input context will contain a string of the typed characters.</p>
/// </li>
/// <li><b>Composing</b><p>With every new key pressed, the input method will try to create a matching string for the text typed so far called preedit string. While the input context is active, the user can only move the cursor inside the string belonging to this input context.</p>
/// </li>
/// <li><b>Completing</b><p>At some point, the user will activate a user interface component (perhaps using a particular key) where they can choose from a number of strings matching the text they have typed so far. The user can either confirm their choice cancel the input; in either case the input context will be closed.</p>
/// </li>
/// </ol>
/// <p><a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> models these three stages, and transfers the information needed to correctly render the intermediate result. A <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> has two main parameters: <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(). The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() parameter gives the currently active preedit string. The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>() parameter gives a text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.</p>
/// <p>If the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>() should replace parts of the of the text in the editor, <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() will contain the number of characters to be replaced. <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>() contains the position at which characters are to be replaced relative from the start of the preedit string.</p>
/// <p>A number of attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only). The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">AttributeType</a> enum describes the different attributes that can be set.</p>
/// <p>A class implementing <a href="http://doc.qt.io/qt-5/qwidget.html#inputMethodEvent">QWidget::inputMethodEvent</a>() or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#inputMethodEvent">QGraphicsItem::inputMethodEvent</a>() should at least understand and honor the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">TextFormat</a> and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">Cursor</a> attributes.</p>
/// <p>Since input methods need to be able to query certain properties from the widget or graphics item, subclasses must also implement <a href="http://doc.qt.io/qt-5/qwidget.html#inputMethodQuery">QWidget::inputMethodQuery</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#inputMethodQuery">QGraphicsItem::inputMethodQuery</a>(), respectively.</p>
/// <p>When receiving an input method event, the text widget has to performs the following steps:</p>
/// <ol class="1" type="1"><li>If the widget has selected text, the selected text should get removed.</li>
/// <li>Remove the text starting at <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>() with length <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() and replace it by the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(). If <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() is 0, <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>() gives the insertion position for the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>().<p>When doing replacement the area of the preedit string is ignored, thus a replacement starting at -1 with a length of 2 will remove the last character before the preedit string and the first character afterwards, and insert the commit string directly before the preedit string.</p>
/// <p>If the widget implements undo/redo, this operation gets added to the undo stack.</p>
/// </li>
/// <li>If there is no current preedit string, insert the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() at the current cursor position; otherwise replace the previous <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a> with the one received from this event.<p>If the widget implements undo/redo, the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() should not influence the undo/redo stack in any way.</p>
/// <p>The widget should examine the list of attributes to apply to the preedit string. It has to understand at least the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">TextFormat</a> and Cursor attributes and render them as specified.</p>
/// </li>
/// </ol></div>
#[repr(C)]
pub struct QInputMethodEvent {
    _unused: u8,
}
impl QInputMethodEvent {
    /// <p>Returns the list of attributes passed to the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> constructor. The attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QList<QInputMethodEvent::Attribute>& QInputMethodEvent::attributes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#attributes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of attributes passed to the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> constructor. The attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() and <a href="http://doc.qt.io/qt-5/qinputmethodevent-attribute.html">Attribute</a>.</p></div>
    #[inline(always)]
    pub unsafe fn attributes(&self) -> ::cpp_core::Ref<crate::QListOfAttribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_attributes(
            self as *const crate::QInputMethodEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QString& QInputMethodEvent::commitString() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#setCommitString">setCommitString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>(), and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>().</p></div>
    #[inline(always)]
    pub unsafe fn commit_string(&self) -> ::cpp_core::Ref<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_commitString(
            self as *const crate::QInputMethodEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> class provides parameters for input method events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent& QInputMethodEvent::operator=(const QInputMethodEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> class provides parameters for input method events.</p>
    /// <p>Input method events are sent to widgets when an input method is used to enter text into a widget. Input methods are widely used to enter text for languages with non-Latin alphabets.</p>
    /// <p>Note that when creating custom text editing widgets, the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_InputMethodEnabled</a> window attribute must be set explicitly (using the <a href="http://doc.qt.io/qt-5/qwidget.html#setAttribute">QWidget::setAttribute</a>() function) in order to receive input method events.</p>
    /// <p>The events are of interest to authors of keyboard entry widgets who want to be able to correctly handle languages with complex character input. Text input in such languages is usually a three step process:</p>
    /// <ol class="1" type="1"><li><b>Starting to Compose</b><p>When the user presses the first key on a keyboard, an input context is created. This input context will contain a string of the typed characters.</p>
    /// </li>
    /// <li><b>Composing</b><p>With every new key pressed, the input method will try to create a matching string for the text typed so far called preedit string. While the input context is active, the user can only move the cursor inside the string belonging to this input context.</p>
    /// </li>
    /// <li><b>Completing</b><p>At some point, the user will activate a user interface component (perhaps using a particular key) where they can choose from a number of strings matching the text they have typed so far. The user can either confirm their choice cancel the input; in either case the input context will be closed.</p>
    /// </li>
    /// </ol>
    /// <p><a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> models these three stages, and transfers the information needed to correctly render the intermediate result. A <a href="http://doc.qt.io/qt-5/qinputmethodevent.html">QInputMethodEvent</a> has two main parameters: <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(). The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() parameter gives the currently active preedit string. The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>() parameter gives a text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>() should replace parts of the of the text in the editor, <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() will contain the number of characters to be replaced. <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>() contains the position at which characters are to be replaced relative from the start of the preedit string.</p>
    /// <p>A number of attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only). The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">AttributeType</a> enum describes the different attributes that can be set.</p>
    /// <p>A class implementing <a href="http://doc.qt.io/qt-5/qwidget.html#inputMethodEvent">QWidget::inputMethodEvent</a>() or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#inputMethodEvent">QGraphicsItem::inputMethodEvent</a>() should at least understand and honor the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">TextFormat</a> and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">Cursor</a> attributes.</p>
    /// <p>Since input methods need to be able to query certain properties from the widget or graphics item, subclasses must also implement <a href="http://doc.qt.io/qt-5/qwidget.html#inputMethodQuery">QWidget::inputMethodQuery</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#inputMethodQuery">QGraphicsItem::inputMethodQuery</a>(), respectively.</p>
    /// <p>When receiving an input method event, the text widget has to performs the following steps:</p>
    /// <ol class="1" type="1"><li>If the widget has selected text, the selected text should get removed.</li>
    /// <li>Remove the text starting at <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>() with length <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() and replace it by the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(). If <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() is 0, <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>() gives the insertion position for the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>().<p>When doing replacement the area of the preedit string is ignored, thus a replacement starting at -1 with a length of 2 will remove the last character before the preedit string and the first character afterwards, and insert the commit string directly before the preedit string.</p>
    /// <p>If the widget implements undo/redo, this operation gets added to the undo stack.</p>
    /// </li>
    /// <li>If there is no current preedit string, insert the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() at the current cursor position; otherwise replace the previous <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a> with the one received from this event.<p>If the widget implements undo/redo, the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() should not influence the undo/redo stack in any way.</p>
    /// <p>The widget should examine the list of attributes to apply to the preedit string. It has to understand at least the <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#AttributeType-enum">TextFormat</a> and Cursor attributes and render them as specified.</p>
    /// </li>
    /// </ol></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QInputMethodEvent>>,
    ) -> ::cpp_core::MutRef<crate::QInputMethodEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_operator_(
            self as *mut crate::QInputMethodEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QInputMethodEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an event of type <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::InputMethod</a>. The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#attributes">attributes</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>(), and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() are initialized to default values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputMethodEvent::QInputMethodEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#QInputMethodEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an event of type <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::InputMethod</a>. The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#attributes">attributes</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>(), and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() are initialized to default values.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#setCommitString">setCommitString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QInputMethodEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_QInputMethodEvent();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an event of type <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::InputMethod</a>. The preedit text is set to <i>preeditText</i>, the attributes to <i>attributes</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputMethodEvent::QInputMethodEvent(const QString& preeditText, const QList<QInputMethodEvent::Attribute>& attributes)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#QInputMethodEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an event of type <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::InputMethod</a>. The preedit text is set to <i>preeditText</i>, the attributes to <i>attributes</i>.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>(), and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() values can be set using <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#setCommitString">setCommitString</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">preeditString</a>() and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#attributes">attributes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        preedit_text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        attributes: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfAttribute>>,
    ) -> ::cpp_core::CppBox<crate::QInputMethodEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_QInputMethodEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(preedit_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfAttribute>>::cast_into(attributes)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputMethodEvent::QInputMethodEvent(const QInputMethodEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#QInputMethodEvent-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QInputMethodEvent>>,
    ) -> ::cpp_core::CppBox<crate::QInputMethodEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_QInputMethodEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QInputMethodEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the preedit text, i.e. the text before the user started editing it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QString& QInputMethodEvent::preeditString() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#preeditString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the preedit text, i.e. the text before the user started editing it.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>() and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#attributes">attributes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn preedit_string(&self) -> ::cpp_core::Ref<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_preeditString(
            self as *const crate::QInputMethodEvent,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of characters to be replaced in the preedit string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QInputMethodEvent::replacementLength() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of characters to be replaced in the preedit string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>() and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#setCommitString">setCommitString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replacement_length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_replacementLength(
            self as *const crate::QInputMethodEvent,
        )
    }

    /// <p>Returns the position at which characters are to be replaced relative from the start of the preedit string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QInputMethodEvent::replacementStart() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position at which characters are to be replaced relative from the start of the preedit string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>() and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#setCommitString">setCommitString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replacement_start(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_replacementStart(
            self as *const crate::QInputMethodEvent,
        )
    }

    /// <p>Sets the commit string to <i>commitString</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QInputMethodEvent::setCommitString(const QString& commitString, int replaceFrom = …, int replaceLength = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#setCommitString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the commit string to <i>commitString</i>.</p>
    /// <p>The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.</p>
    /// <p>If the commit string should replace parts of the of the text in the editor, <i>replaceLength</i> specifies the number of characters to be replaced. <i>replaceFrom</i> specifies the position at which characters are to be replaced relative from the start of the preedit string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>(), and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_commit_string_3a(
        &mut self,
        commit_string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        replace_from: ::std::os::raw::c_int,
        replace_length: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_setCommitString(
            self as *mut crate::QInputMethodEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(commit_string)
                .as_raw_ptr(),
            replace_from,
            replace_length,
        )
    }

    /// <p>Sets the commit string to <i>commitString</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QInputMethodEvent::setCommitString(const QString& commitString, int replaceFrom = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#setCommitString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the commit string to <i>commitString</i>.</p>
    /// <p>The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.</p>
    /// <p>If the commit string should replace parts of the of the text in the editor, <i>replaceLength</i> specifies the number of characters to be replaced. <i>replaceFrom</i> specifies the position at which characters are to be replaced relative from the start of the preedit string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>(), and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_commit_string_2a(
        &mut self,
        commit_string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        replace_from: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_setCommitString1(
            self as *mut crate::QInputMethodEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(commit_string)
                .as_raw_ptr(),
            replace_from,
        )
    }

    /// <p>Sets the commit string to <i>commitString</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QInputMethodEvent::setCommitString(const QString& commitString)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#setCommitString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the commit string to <i>commitString</i>.</p>
    /// <p>The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.</p>
    /// <p>If the commit string should replace parts of the of the text in the editor, <i>replaceLength</i> specifies the number of characters to be replaced. <i>replaceFrom</i> specifies the position at which characters are to be replaced relative from the start of the preedit string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodevent.html#commitString">commitString</a>(), <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementStart">replacementStart</a>(), and <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#replacementLength">replacementLength</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_commit_string_1a(
        &mut self,
        commit_string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_setCommitString2(
            self as *mut crate::QInputMethodEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(commit_string)
                .as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a> class provides an event sent by the input context to input objects.</p>
///
/// C++ class: <span style='color: green;'>```QInputMethodQueryEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a> class provides an event sent by the input context to input objects.</p>
/// <p>It is used by the input method to query a set of properties of the object to be able to support complex input method operations as support for surrounding text and reconversions.</p>
/// <p><a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#queries">queries</a>() specifies which properties are queried.</p>
/// <p>The object should call <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#setValue">setValue</a>() on the event to fill in the requested data before calling <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>().</p></div>
#[repr(C)]
pub struct QInputMethodQueryEvent {
    _unused: u8,
}
impl QInputMethodQueryEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a> class provides an event sent by the input context to input objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodQueryEvent& QInputMethodQueryEvent::operator=(const QInputMethodQueryEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a> class provides an event sent by the input context to input objects.</p>
    /// <p>It is used by the input method to query a set of properties of the object to be able to support complex input method operations as support for surrounding text and reconversions.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#queries">queries</a>() specifies which properties are queried.</p>
    /// <p>The object should call <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#setValue">setValue</a>() on the event to fill in the requested data before calling <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QInputMethodQueryEvent>>,
    ) -> ::cpp_core::MutRef<crate::QInputMethodQueryEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodQueryEvent_operator_(
            self as *mut crate::QInputMethodQueryEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QInputMethodQueryEvent>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a query event for properties given by <i>queries</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputMethodQueryEvent::QInputMethodQueryEvent(QFlags<Qt::InputMethodQuery> queries)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#QInputMethodQueryEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a query event for properties given by <i>queries</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        queries: ::qt_core::QFlags<::qt_core::InputMethodQuery>,
    ) -> ::cpp_core::CppBox<crate::QInputMethodQueryEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodQueryEvent_QInputMethodQueryEvent(
            queries.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a> class provides an event sent by the input context to input objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QInputMethodQueryEvent::QInputMethodQueryEvent(const QInputMethodQueryEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a> class provides an event sent by the input context to input objects.</p>
    /// <p>It is used by the input method to query a set of properties of the object to be able to support complex input method operations as support for surrounding text and reconversions.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#queries">queries</a>() specifies which properties are queried.</p>
    /// <p>The object should call <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#setValue">setValue</a>() on the event to fill in the requested data before calling <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QInputMethodQueryEvent>>,
    ) -> ::cpp_core::CppBox<crate::QInputMethodQueryEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QInputMethodQueryEvent_QInputMethodQueryEvent2(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QInputMethodQueryEvent>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the properties queried by the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::InputMethodQuery> QInputMethodQueryEvent::queries() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#queries">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the properties queried by the event.</p></div>
    #[inline(always)]
    pub unsafe fn queries(&self) -> ::qt_core::QFlags<::qt_core::InputMethodQuery> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodQueryEvent_queries(
            self as *const crate::QInputMethodQueryEvent,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Sets property <i>query</i> to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QInputMethodQueryEvent::setValue(Qt::InputMethodQuery query, const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#setValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets property <i>query</i> to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_value(
        &mut self,
        query: ::qt_core::InputMethodQuery,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethodQueryEvent_setValue(
            self as *mut crate::QInputMethodQueryEvent,
            query,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns value of the property <i>query</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QInputMethodQueryEvent::value(Qt::InputMethodQuery query) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns value of the property <i>query</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html#setValue">setValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(
        &self,
        query: ::qt_core::InputMethodQuery,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethodQueryEvent_value(
            self as *const crate::QInputMethodQueryEvent,
            query,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> class provides an event which is sent when a drag and drop action is completed.</p>
///
/// C++ class: <span style='color: green;'>```QDropEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qdropevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> class provides an event which is sent when a drag and drop action is completed.</p>
/// <p>When a widget <a href="http://doc.qt.io/qt-5/qwidget.html#acceptDrops-prop">accepts drop events</a>, it will receive this event if it has accepted the most recent <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> or <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> sent to it.</p>
/// <p>The drop event contains a proposed action, available from <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">proposedAction</a>(), for the widget to either accept or ignore. If the action can be handled by the widget, you should call the <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction</a>() function. Since the proposed action can be a combination of <a href="http://doc.qt.io/qt-5/qt.html#DropAction-enum">Qt::DropAction</a> values, it may be useful to either select one of these values as a default action or ask the user to select their preferred action.</p>
/// <p>If the proposed drop action is not suitable, perhaps because your custom widget does not support that action, you can replace it with any of the <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">possible drop actions</a> by calling <a href="http://doc.qt.io/qt-5/qdropevent.html#setDropAction">setDropAction</a>() with your preferred action. If you set a value that is not present in the bitwise OR combination of values returned by <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">possibleActions</a>(), the default copy action will be used. Once a replacement drop action has been set, call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() instead of <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction</a>() to complete the drop operation.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qdropevent.html#mimeData">mimeData</a>() function provides the data dropped on the widget in a <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> object. This contains information about the MIME type of the data in addition to the data itself.</p></div>
#[repr(C)]
pub struct QDropEvent {
    _unused: u8,
}
impl QDropEvent {
    /// <p>Sets the drop action to be the proposed action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDropEvent::acceptProposedAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the drop action to be the proposed action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdropevent.html#setDropAction">setDropAction</a>(), <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">proposedAction</a>(), and <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>().</p></div>
    #[inline(always)]
    pub unsafe fn accept_proposed_action(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDropEvent_acceptProposedAction(self as *mut crate::QDropEvent)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> class provides an event which is sent when a drag and drop action is completed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QDropEvent& QDropEvent::operator=(const QDropEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> class provides an event which is sent when a drag and drop action is completed.</p>
    /// <p>When a widget <a href="http://doc.qt.io/qt-5/qwidget.html#acceptDrops-prop">accepts drop events</a>, it will receive this event if it has accepted the most recent <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> or <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> sent to it.</p>
    /// <p>The drop event contains a proposed action, available from <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">proposedAction</a>(), for the widget to either accept or ignore. If the action can be handled by the widget, you should call the <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction</a>() function. Since the proposed action can be a combination of <a href="http://doc.qt.io/qt-5/qt.html#DropAction-enum">Qt::DropAction</a> values, it may be useful to either select one of these values as a default action or ask the user to select their preferred action.</p>
    /// <p>If the proposed drop action is not suitable, perhaps because your custom widget does not support that action, you can replace it with any of the <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">possible drop actions</a> by calling <a href="http://doc.qt.io/qt-5/qdropevent.html#setDropAction">setDropAction</a>() with your preferred action. If you set a value that is not present in the bitwise OR combination of values returned by <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">possibleActions</a>(), the default copy action will be used. Once a replacement drop action has been set, call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() instead of <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction</a>() to complete the drop operation.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qdropevent.html#mimeData">mimeData</a>() function provides the data dropped on the widget in a <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> object. This contains information about the MIME type of the data in addition to the data itself.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDropEvent>>,
    ) -> ::cpp_core::MutRef<crate::QDropEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDropEvent_operator_(
            self as *mut crate::QDropEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDropEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the action to be performed on the data by the target. This may be different from the action supplied in <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">proposedAction</a>() if you have called <a href="http://doc.qt.io/qt-5/qdropevent.html#setDropAction">setDropAction</a>() to explicitly choose a drop action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::DropAction QDropEvent::dropAction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#dropAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the action to be performed on the data by the target. This may be different from the action supplied in <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">proposedAction</a>() if you have called <a href="http://doc.qt.io/qt-5/qdropevent.html#setDropAction">setDropAction</a>() to explicitly choose a drop action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdropevent.html#setDropAction">setDropAction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn drop_action(&self) -> ::qt_core::DropAction {
        crate::__ffi::ctr_qt_gui_ffi_QDropEvent_dropAction(self as *const crate::QDropEvent)
    }

    /// <p>Returns the modifier keys that are pressed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::KeyboardModifier> QDropEvent::keyboardModifiers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#keyboardModifiers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the modifier keys that are pressed.</p></div>
    #[inline(always)]
    pub unsafe fn keyboard_modifiers(&self) -> ::qt_core::QFlags<::qt_core::KeyboardModifier> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDropEvent_keyboardModifiers(
            self as *const crate::QDropEvent,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the data that was dropped on the widget and its associated MIME type information.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QMimeData* QDropEvent::mimeData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#mimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the data that was dropped on the widget and its associated MIME type information.</p></div>
    #[inline(always)]
    pub unsafe fn mime_data(&self) -> ::cpp_core::Ptr<::qt_core::QMimeData> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QDropEvent_mimeData(self as *const crate::QDropEvent);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the mouse buttons that are pressed..</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::MouseButton> QDropEvent::mouseButtons() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#mouseButtons">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mouse buttons that are pressed..</p></div>
    #[inline(always)]
    pub unsafe fn mouse_buttons(&self) -> ::qt_core::QFlags<::qt_core::MouseButton> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QDropEvent_mouseButtons(self as *const crate::QDropEvent);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Constructs a drop event of a certain <i>type</i> corresponding to a drop at the point specified by <i>pos</i> in the destination widget's coordinate system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDropEvent::QDropEvent(const QPointF& pos, QFlags<Qt::DropAction> actions, const QMimeData* data, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, QEvent::Type type = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#QDropEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a drop event of a certain <i>type</i> corresponding to a drop at the point specified by <i>pos</i> in the destination widget's coordinate system.</p>
    /// <p>The <i>actions</i> indicate which types of drag and drop operation can be performed, and the drag data is stored as MIME-encoded data in <i>data</i>.</p>
    /// <p>The states of the mouse buttons and keyboard modifiers at the time of the drop are specified by <i>buttons</i> and <i>modifiers</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_6a(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        actions: ::qt_core::QFlags<::qt_core::DropAction>,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QMimeData>>,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        type_: ::qt_core::q_event::Type,
    ) -> ::cpp_core::CppBox<crate::QDropEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDropEvent_QDropEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            actions.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QMimeData>>::cast_into(data)
                .as_raw_ptr(),
            buttons.to_int(),
            modifiers.to_int(),
            type_,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a drop event of a certain <i>type</i> corresponding to a drop at the point specified by <i>pos</i> in the destination widget's coordinate system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDropEvent::QDropEvent(const QPointF& pos, QFlags<Qt::DropAction> actions, const QMimeData* data, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#QDropEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a drop event of a certain <i>type</i> corresponding to a drop at the point specified by <i>pos</i> in the destination widget's coordinate system.</p>
    /// <p>The <i>actions</i> indicate which types of drag and drop operation can be performed, and the drag data is stored as MIME-encoded data in <i>data</i>.</p>
    /// <p>The states of the mouse buttons and keyboard modifiers at the time of the drop are specified by <i>buttons</i> and <i>modifiers</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_5a(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        actions: ::qt_core::QFlags<::qt_core::DropAction>,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QMimeData>>,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QDropEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDropEvent_QDropEvent3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            actions.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QMimeData>>::cast_into(data)
                .as_raw_ptr(),
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> class provides an event which is sent when a drag and drop action is completed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDropEvent::QDropEvent(const QDropEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> class provides an event which is sent when a drag and drop action is completed.</p>
    /// <p>When a widget <a href="http://doc.qt.io/qt-5/qwidget.html#acceptDrops-prop">accepts drop events</a>, it will receive this event if it has accepted the most recent <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> or <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> sent to it.</p>
    /// <p>The drop event contains a proposed action, available from <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">proposedAction</a>(), for the widget to either accept or ignore. If the action can be handled by the widget, you should call the <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction</a>() function. Since the proposed action can be a combination of <a href="http://doc.qt.io/qt-5/qt.html#DropAction-enum">Qt::DropAction</a> values, it may be useful to either select one of these values as a default action or ask the user to select their preferred action.</p>
    /// <p>If the proposed drop action is not suitable, perhaps because your custom widget does not support that action, you can replace it with any of the <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">possible drop actions</a> by calling <a href="http://doc.qt.io/qt-5/qdropevent.html#setDropAction">setDropAction</a>() with your preferred action. If you set a value that is not present in the bitwise OR combination of values returned by <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">possibleActions</a>(), the default copy action will be used. Once a replacement drop action has been set, call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() instead of <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction</a>() to complete the drop operation.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qdropevent.html#mimeData">mimeData</a>() function provides the data dropped on the widget in a <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> object. This contains information about the MIME type of the data in addition to the data itself.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDropEvent>>,
    ) -> ::cpp_core::CppBox<crate::QDropEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDropEvent_QDropEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDropEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position where the drop was made.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QDropEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position where the drop was made.</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QDropEvent_pos(self as *const crate::QDropEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position where the drop was made.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPointF& QDropEvent::posF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#posF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position where the drop was made.</p></div>
    #[inline(always)]
    pub unsafe fn pos_f(&self) -> ::cpp_core::Ref<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QDropEvent_posF(self as *const crate::QDropEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an OR-combination of possible drop actions.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::DropAction> QDropEvent::possibleActions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an OR-combination of possible drop actions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdropevent.html#dropAction">dropAction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn possible_actions(&self) -> ::qt_core::QFlags<::qt_core::DropAction> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDropEvent_possibleActions(
            self as *const crate::QDropEvent,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the proposed drop action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::DropAction QDropEvent::proposedAction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the proposed drop action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdropevent.html#dropAction">dropAction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn proposed_action(&self) -> ::qt_core::DropAction {
        crate::__ffi::ctr_qt_gui_ffi_QDropEvent_proposedAction(self as *const crate::QDropEvent)
    }

    /// <p>Sets the <i>action</i> to be performed on the data by the target. Use this to override the <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">proposed action</a> with one of the <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">possible actions</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDropEvent::setDropAction(Qt::DropAction action)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#setDropAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>action</i> to be performed on the data by the target. Use this to override the <a href="http://doc.qt.io/qt-5/qdropevent.html#proposedAction">proposed action</a> with one of the <a href="http://doc.qt.io/qt-5/qdropevent.html#possibleActions">possible actions</a>.</p>
    /// <p>If you set a drop action that is not one of the possible actions, the drag and drop operation will default to a copy operation.</p>
    /// <p>Once you have supplied a replacement drop action, call <a href="http://doc.qt.io/qt-5/qevent.html#accept">accept</a>() instead of <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdropevent.html#dropAction">dropAction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_drop_action(&mut self, action: ::qt_core::DropAction) {
        crate::__ffi::ctr_qt_gui_ffi_QDropEvent_setDropAction(
            self as *mut crate::QDropEvent,
            action,
        )
    }

    /// <p>If the source of the drag operation is a widget in this application, this function returns that source; otherwise it returns 0. The source of the operation is the first parameter to the <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> object used instantiate the drag.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QObject* QDropEvent::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdropevent.html#source">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the source of the drag operation is a widget in this application, this function returns that source; otherwise it returns 0. The source of the operation is the first parameter to the <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> object used instantiate the drag.</p>
    /// <p>This is useful if your widget needs special behavior when dragging to itself.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#QDrag">QDrag::QDrag</a>().</p></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QDropEvent_source(self as *const crate::QDropEvent);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> class provides an event which is sent while a drag and drop action is in progress.</p>
///
/// C++ class: <span style='color: green;'>```QDragMoveEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> class provides an event which is sent while a drag and drop action is in progress.</p>
/// <p>A widget will receive drag move events repeatedly while the drag is within its boundaries, if it accepts <a href="http://doc.qt.io/qt-5/qwidget.html#acceptDrops-prop">drop events</a> and <a href="http://doc.qt.io/qt-5/qwidget.html#dragEnterEvent">enter events</a>. The widget should examine the event to see what kind of <a href="http://doc.qt.io/qt-5/qdropevent.html#mimeData">data</a> it provides, and call the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#accept-1">accept</a>() function to accept the drop if appropriate.</p>
/// <p>The rectangle supplied by the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#answerRect">answerRect</a>() function can be used to restrict drops to certain parts of the widget. For example, we can check whether the rectangle intersects with the geometry of a certain child widget and only call <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction()</a> if that is the case.</p>
/// <p>Note that this class inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a>.</p></div>
#[repr(C)]
pub struct QDragMoveEvent {
    _unused: u8,
}
impl QDragMoveEvent {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDragMoveEvent::accept()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#accept-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Calls <a href="http://doc.qt.io/qt-5/qevent.html#accept">QDropEvent::accept</a>().</p></div>
    #[inline(always)]
    pub unsafe fn accept_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_accept(self as *mut crate::QDragMoveEvent)
    }

    /// <p>The same as <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#accept-1">accept</a>(), but also notifies that future moves will also be acceptable if they remain within the <i>rectangle</i> given on the widget. This can improve performance, but may also be ignored by the underlying system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDragMoveEvent::accept(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#accept">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The same as <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#accept-1">accept</a>(), but also notifies that future moves will also be acceptable if they remain within the <i>rectangle</i> given on the widget. This can improve performance, but may also be ignored by the underlying system.</p>
    /// <p>If the rectangle is empty, drag move events will be sent continuously. This is useful if the source is scrolling in a timer event.</p></div>
    #[inline(always)]
    pub unsafe fn accept_1a(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_accept1(
            self as *mut crate::QDragMoveEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Returns the rectangle in the widget where the drop will occur if accepted. You can use this information to restrict drops to certain places on the widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QDragMoveEvent::answerRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#answerRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rectangle in the widget where the drop will occur if accepted. You can use this information to restrict drops to certain places on the widget.</p></div>
    #[inline(always)]
    pub unsafe fn answer_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_answerRect(
            self as *const crate::QDragMoveEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> class provides an event which is sent while a drag and drop action is in progress.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent& QDragMoveEvent::operator=(const QDragMoveEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> class provides an event which is sent while a drag and drop action is in progress.</p>
    /// <p>A widget will receive drag move events repeatedly while the drag is within its boundaries, if it accepts <a href="http://doc.qt.io/qt-5/qwidget.html#acceptDrops-prop">drop events</a> and <a href="http://doc.qt.io/qt-5/qwidget.html#dragEnterEvent">enter events</a>. The widget should examine the event to see what kind of <a href="http://doc.qt.io/qt-5/qdropevent.html#mimeData">data</a> it provides, and call the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#accept-1">accept</a>() function to accept the drop if appropriate.</p>
    /// <p>The rectangle supplied by the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#answerRect">answerRect</a>() function can be used to restrict drops to certain parts of the widget. For example, we can check whether the rectangle intersects with the geometry of a certain child widget and only call <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction()</a> if that is the case.</p>
    /// <p>Note that this class inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDragMoveEvent>>,
    ) -> ::cpp_core::MutRef<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_operator_(
            self as *mut crate::QDragMoveEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDragMoveEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDragMoveEvent::ignore()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#ignore-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Calls <a href="http://doc.qt.io/qt-5/qevent.html#ignore">QDropEvent::ignore</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ignore_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_ignore(self as *mut crate::QDragMoveEvent)
    }

    /// <p>The opposite of the accept(const <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>&amp;) function. Moves within the <i>rectangle</i> are not acceptable, and will be ignored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDragMoveEvent::ignore(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#ignore">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The opposite of the accept(const <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>&amp;) function. Moves within the <i>rectangle</i> are not acceptable, and will be ignored.</p></div>
    #[inline(always)]
    pub unsafe fn ignore_1a(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_ignore1(
            self as *mut crate::QDragMoveEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> of the required <i>type</i> indicating that the mouse is at position <i>pos</i> given within a widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDragMoveEvent::QDragMoveEvent(const QPoint& pos, QFlags<Qt::DropAction> actions, const QMimeData* data, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers, QEvent::Type type = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#QDragMoveEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> of the required <i>type</i> indicating that the mouse is at position <i>pos</i> given within a widget.</p>
    /// <p>The mouse and keyboard states are specified by <i>buttons</i> and <i>modifiers</i>, and the <i>actions</i> describe the types of drag and drop operation that are possible. The drag data is passed as MIME-encoded information in <i>data</i>.</p>
    /// <p><b>Warning:</b> Do not attempt to create a <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> yourself. These objects rely on Qt's internal state.</p></div>
    #[inline(always)]
    pub unsafe fn new_6a(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        actions: ::qt_core::QFlags<::qt_core::DropAction>,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QMimeData>>,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        type_: ::qt_core::q_event::Type,
    ) -> ::cpp_core::CppBox<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_QDragMoveEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
            actions.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QMimeData>>::cast_into(data)
                .as_raw_ptr(),
            buttons.to_int(),
            modifiers.to_int(),
            type_,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> of the required <i>type</i> indicating that the mouse is at position <i>pos</i> given within a widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDragMoveEvent::QDragMoveEvent(const QPoint& pos, QFlags<Qt::DropAction> actions, const QMimeData* data, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#QDragMoveEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> of the required <i>type</i> indicating that the mouse is at position <i>pos</i> given within a widget.</p>
    /// <p>The mouse and keyboard states are specified by <i>buttons</i> and <i>modifiers</i>, and the <i>actions</i> describe the types of drag and drop operation that are possible. The drag data is passed as MIME-encoded information in <i>data</i>.</p>
    /// <p><b>Warning:</b> Do not attempt to create a <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> yourself. These objects rely on Qt's internal state.</p></div>
    #[inline(always)]
    pub unsafe fn new_5a(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        actions: ::qt_core::QFlags<::qt_core::DropAction>,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QMimeData>>,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_QDragMoveEvent3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
            actions.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QMimeData>>::cast_into(data)
                .as_raw_ptr(),
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> class provides an event which is sent while a drag and drop action is in progress.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDragMoveEvent::QDragMoveEvent(const QDragMoveEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a> class provides an event which is sent while a drag and drop action is in progress.</p>
    /// <p>A widget will receive drag move events repeatedly while the drag is within its boundaries, if it accepts <a href="http://doc.qt.io/qt-5/qwidget.html#acceptDrops-prop">drop events</a> and <a href="http://doc.qt.io/qt-5/qwidget.html#dragEnterEvent">enter events</a>. The widget should examine the event to see what kind of <a href="http://doc.qt.io/qt-5/qdropevent.html#mimeData">data</a> it provides, and call the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#accept-1">accept</a>() function to accept the drop if appropriate.</p>
    /// <p>The rectangle supplied by the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#answerRect">answerRect</a>() function can be used to restrict drops to certain parts of the widget. For example, we can check whether the rectangle intersects with the geometry of a certain child widget and only call <a href="http://doc.qt.io/qt-5/qdropevent.html#acceptProposedAction">acceptProposedAction()</a> if that is the case.</p>
    /// <p>Note that this class inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDragMoveEvent>>,
    ) -> ::cpp_core::CppBox<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_QDragMoveEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDragMoveEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> class provides an event which is sent to a widget when a drag and drop action enters it.</p>
///
/// C++ class: <span style='color: green;'>```QDragEnterEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qdragenterevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> class provides an event which is sent to a widget when a drag and drop action enters it.</p>
/// <p>A widget must accept this event in order to receive the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">drag move events</a> that are sent while the drag and drop action is in progress. The drag enter event is always immediately followed by a drag move event.</p>
/// <p><a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a>, which in turn inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a>.</p></div>
#[repr(C)]
pub struct QDragEnterEvent {
    _unused: u8,
}
impl QDragEnterEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> class provides an event which is sent to a widget when a drag and drop action enters it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent& QDragEnterEvent::operator=(const QDragEnterEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragenterevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> class provides an event which is sent to a widget when a drag and drop action enters it.</p>
    /// <p>A widget must accept this event in order to receive the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">drag move events</a> that are sent while the drag and drop action is in progress. The drag enter event is always immediately followed by a drag move event.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a>, which in turn inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDragEnterEvent>>,
    ) -> ::cpp_core::MutRef<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragEnterEvent_operator_(
            self as *mut crate::QDragEnterEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDragEnterEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> that represents a drag entering a widget at the given <i>point</i> with mouse and keyboard states specified by <i>buttons</i> and <i>modifiers</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDragEnterEvent::QDragEnterEvent(const QPoint& pos, QFlags<Qt::DropAction> actions, const QMimeData* data, QFlags<Qt::MouseButton> buttons, QFlags<Qt::KeyboardModifier> modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragenterevent.html#QDragEnterEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> that represents a drag entering a widget at the given <i>point</i> with mouse and keyboard states specified by <i>buttons</i> and <i>modifiers</i>.</p>
    /// <p>The drag data is passed as MIME-encoded information in <i>data</i>, and the specified <i>actions</i> describe the possible types of drag and drop operation that can be performed.</p>
    /// <p><b>Warning:</b> Do not create a <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> yourself since these objects rely on Qt's internal state.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        actions: ::qt_core::QFlags<::qt_core::DropAction>,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QMimeData>>,
        buttons: ::qt_core::QFlags<::qt_core::MouseButton>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragEnterEvent_QDragEnterEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
            actions.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QMimeData>>::cast_into(data)
                .as_raw_ptr(),
            buttons.to_int(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> class provides an event which is sent to a widget when a drag and drop action enters it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDragEnterEvent::QDragEnterEvent(const QDragEnterEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragenterevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> class provides an event which is sent to a widget when a drag and drop action enters it.</p>
    /// <p>A widget must accept this event in order to receive the <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">drag move events</a> that are sent while the drag and drop action is in progress. The drag enter event is always immediately followed by a drag move event.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a>, which in turn inherits most of its functionality from <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDragEnterEvent>>,
    ) -> ::cpp_core::CppBox<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragEnterEvent_QDragEnterEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDragEnterEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a> class provides an event that is sent to a widget when a drag and drop action leaves it.</p>
///
/// C++ class: <span style='color: green;'>```QDragLeaveEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a> class provides an event that is sent to a widget when a drag and drop action leaves it.</p>
/// <p>This event is always preceded by a <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> and a series of <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a>s. It is not sent if a <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> is sent instead.</p></div>
#[repr(C)]
pub struct QDragLeaveEvent {
    _unused: u8,
}
impl QDragLeaveEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a> class provides an event that is sent to a widget when a drag and drop action leaves it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QDragLeaveEvent& QDragLeaveEvent::operator=(const QDragLeaveEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a> class provides an event that is sent to a widget when a drag and drop action leaves it.</p>
    /// <p>This event is always preceded by a <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> and a series of <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a>s. It is not sent if a <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> is sent instead.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDragLeaveEvent>>,
    ) -> ::cpp_core::MutRef<crate::QDragLeaveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragLeaveEvent_operator_(
            self as *mut crate::QDragLeaveEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDragLeaveEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDragLeaveEvent::QDragLeaveEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragleaveevent.html#QDragLeaveEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a>.</p>
    /// <p><b>Warning:</b> Do not create a <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a> yourself since these objects rely on Qt's internal state.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QDragLeaveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragLeaveEvent_QDragLeaveEvent();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a> class provides an event that is sent to a widget when a drag and drop action leaves it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDragLeaveEvent::QDragLeaveEvent(const QDragLeaveEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdragleaveevent.html">QDragLeaveEvent</a> class provides an event that is sent to a widget when a drag and drop action leaves it.</p>
    /// <p>This event is always preceded by a <a href="http://doc.qt.io/qt-5/qdragenterevent.html">QDragEnterEvent</a> and a series of <a href="http://doc.qt.io/qt-5/qdragmoveevent.html">QDragMoveEvent</a>s. It is not sent if a <a href="http://doc.qt.io/qt-5/qdropevent.html">QDropEvent</a> is sent instead.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDragLeaveEvent>>,
    ) -> ::cpp_core::CppBox<crate::QDragLeaveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDragLeaveEvent_QDragLeaveEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDragLeaveEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qhelpevent.html">QHelpEvent</a> class provides an event that is used to request helpful information about a particular point in a widget.</p>
///
/// C++ class: <span style='color: green;'>```QHelpEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qhelpevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhelpevent.html">QHelpEvent</a> class provides an event that is used to request helpful information about a particular point in a widget.</p>
/// <p>This event can be intercepted in applications to provide tooltips or "What's This?" help for custom widgets. The <a href="http://doc.qt.io/qt-5/qevent.html#type">type</a>() can be either <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ToolTip</a> or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::WhatsThis</a>.</p></div>
#[repr(C)]
pub struct QHelpEvent {
    _unused: u8,
}
impl QHelpEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qhelpevent.html">QHelpEvent</a> class provides an event that is used to request helpful information about a particular point in a widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QHelpEvent& QHelpEvent::operator=(const QHelpEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhelpevent.html">QHelpEvent</a> class provides an event that is used to request helpful information about a particular point in a widget.</p>
    /// <p>This event can be intercepted in applications to provide tooltips or "What's This?" help for custom widgets. The <a href="http://doc.qt.io/qt-5/qevent.html#type">type</a>() can be either <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ToolTip</a> or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::WhatsThis</a>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QHelpEvent>>,
    ) -> ::cpp_core::MutRef<crate::QHelpEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_operator_(
            self as *mut crate::QHelpEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QHelpEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the mouse cursor position when the event was generated in global coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QHelpEvent::globalPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mouse cursor position when the event was generated in global coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalX">globalX</a>(), and <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalY">globalY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_pos(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_globalPos(self as *const crate::QHelpEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().<a href="http://doc.qt.io/qt-5/qhelpevent.html#x">x</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QHelpEvent::globalX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().<a href="http://doc.qt.io/qt-5/qhelpevent.html#x">x</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhelpevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalY">globalY</a>(), and <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_globalX(self as *const crate::QHelpEvent)
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().<a href="http://doc.qt.io/qt-5/qhelpevent.html#y">y</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QHelpEvent::globalY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().<a href="http://doc.qt.io/qt-5/qhelpevent.html#y">y</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhelpevent.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalX">globalX</a>(), and <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_globalY(self as *const crate::QHelpEvent)
    }

    /// <p>Constructs a help event with the given <i>type</i> corresponding to the widget-relative position specified by <i>pos</i> and the global position specified by <i>globalPos</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QHelpEvent::QHelpEvent(QEvent::Type type, const QPoint& pos, const QPoint& globalPos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html#QHelpEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a help event with the given <i>type</i> corresponding to the widget-relative position specified by <i>pos</i> and the global position specified by <i>globalPos</i>.</p>
    /// <p><i>type</i> must be either <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ToolTip</a> or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::WhatsThis</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">pos</a>() and <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new(
        type_: ::qt_core::q_event::Type,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        global_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QHelpEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_QHelpEvent(
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(global_pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qhelpevent.html">QHelpEvent</a> class provides an event that is used to request helpful information about a particular point in a widget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QHelpEvent::QHelpEvent(const QHelpEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qhelpevent.html">QHelpEvent</a> class provides an event that is used to request helpful information about a particular point in a widget.</p>
    /// <p>This event can be intercepted in applications to provide tooltips or "What's This?" help for custom widgets. The <a href="http://doc.qt.io/qt-5/qevent.html#type">type</a>() can be either <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::ToolTip</a> or <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::WhatsThis</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QHelpEvent>>,
    ) -> ::cpp_core::CppBox<crate::QHelpEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_QHelpEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QHelpEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the mouse cursor position when the event was generated, relative to the widget to which the event is dispatched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QHelpEvent::pos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mouse cursor position when the event was generated, relative to the widget to which the event is dispatched.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>(), <a href="http://doc.qt.io/qt-5/qhelpevent.html#x">x</a>(), and <a href="http://doc.qt.io/qt-5/qhelpevent.html#y">y</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_pos(self as *const crate::QHelpEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">pos</a>().x().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QHelpEvent::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">pos</a>().x().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhelpevent.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">pos</a>(), and <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_x(self as *const crate::QHelpEvent)
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">pos</a>().y().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QHelpEvent::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qhelpevent.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">pos</a>().y().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhelpevent.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qhelpevent.html#pos">pos</a>(), and <a href="http://doc.qt.io/qt-5/qhelpevent.html#globalPos">globalPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_y(self as *const crate::QHelpEvent)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qstatustipevent.html">QStatusTipEvent</a> class provides an event that is used to show messages in a status bar.</p>
///
/// C++ class: <span style='color: green;'>```QStatusTipEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qstatustipevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstatustipevent.html">QStatusTipEvent</a> class provides an event that is used to show messages in a status bar.</p>
/// <p>Status tips can be set on a widget using the <a href="http://doc.qt.io/qt-5/qwidget.html#statusTip-prop">QWidget::setStatusTip</a>() function. They are shown in the status bar when the mouse cursor enters the widget. For example:</p>
/// <div class="table"><table class="generic" width="100%">
///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
///
///   MainWindow<span class="operator">::</span>MainWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>parent)
/// &#32;     : <span class="type"><a href="http://doc.qt.io/qt-5/qmainwindow.html">QMainWindow</a></span>(parent)
///   {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>myWidget <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span>;
/// &#32;     myWidget<span class="operator">-</span><span class="operator">&gt;</span>setStatusTip(tr(<span class="string">"This is my widget."</span>));
///
/// &#32;     setCentralWidget(myWidget);
/// &#32;     ...
///   }
///
/// </pre>
/// </td><td><p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qstatustipevent-widget.png" alt="Widget with status tip."></p></td></tr>
/// </tbody></table></div>
/// <p>Status tips can also be set on actions using the <a href="http://doc.qt.io/qt-5/qaction.html#statusTip-prop">QAction::setStatusTip</a>() function:</p>
/// <div class="table"><table class="generic" width="100%">
///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
///
///   MainWindow<span class="operator">::</span>MainWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>parent)
/// &#32;     : <span class="type"><a href="http://doc.qt.io/qt-5/qmainwindow.html">QMainWindow</a></span>(parent)
///   {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a></span> <span class="operator">*</span>fileMenu <span class="operator">=</span> menuBar()<span class="operator">-</span><span class="operator">&gt;</span>addMenu(tr(<span class="string">"File"</span>));
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qaction.html">QAction</a></span> <span class="operator">*</span>newAct <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qaction.html">QAction</a></span>(tr(<span class="string">"&amp;New"</span>)<span class="operator">,</span> <span class="keyword">this</span>);
/// &#32;     newAct<span class="operator">-</span><span class="operator">&gt;</span>setStatusTip(tr(<span class="string">"Create a new file."</span>));
/// &#32;     fileMenu<span class="operator">-</span><span class="operator">&gt;</span>addAction(newAct);
/// &#32;     ...
///   }
///
/// </pre>
/// </td><td><p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qstatustipevent-action.png" alt="Action with status tip."></p></td></tr>
/// </tbody></table></div>
/// <p>Finally, status tips are supported for the item view classes through the <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::StatusTipRole</a> enum value.</p></div>
#[repr(C)]
pub struct QStatusTipEvent {
    _unused: u8,
}
impl QStatusTipEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qstatustipevent.html">QStatusTipEvent</a> class provides an event that is used to show messages in a status bar.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStatusTipEvent& QStatusTipEvent::operator=(const QStatusTipEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatustipevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstatustipevent.html">QStatusTipEvent</a> class provides an event that is used to show messages in a status bar.</p>
    /// <p>Status tips can be set on a widget using the <a href="http://doc.qt.io/qt-5/qwidget.html#statusTip-prop">QWidget::setStatusTip</a>() function. They are shown in the status bar when the mouse cursor enters the widget. For example:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   MainWindow<span class="operator">::</span>MainWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>parent)
    /// &#32;     : <span class="type"><a href="http://doc.qt.io/qt-5/qmainwindow.html">QMainWindow</a></span>(parent)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>myWidget <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span>;
    /// &#32;     myWidget<span class="operator">-</span><span class="operator">&gt;</span>setStatusTip(tr(<span class="string">"This is my widget."</span>));
    ///
    /// &#32;     setCentralWidget(myWidget);
    /// &#32;     ...
    ///   }
    ///
    /// </pre>
    /// </td><td><p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qstatustipevent-widget.png" alt="Widget with status tip."></p></td></tr>
    /// </tbody></table></div>
    /// <p>Status tips can also be set on actions using the <a href="http://doc.qt.io/qt-5/qaction.html#statusTip-prop">QAction::setStatusTip</a>() function:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   MainWindow<span class="operator">::</span>MainWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>parent)
    /// &#32;     : <span class="type"><a href="http://doc.qt.io/qt-5/qmainwindow.html">QMainWindow</a></span>(parent)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a></span> <span class="operator">*</span>fileMenu <span class="operator">=</span> menuBar()<span class="operator">-</span><span class="operator">&gt;</span>addMenu(tr(<span class="string">"File"</span>));
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qaction.html">QAction</a></span> <span class="operator">*</span>newAct <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qaction.html">QAction</a></span>(tr(<span class="string">"&amp;New"</span>)<span class="operator">,</span> <span class="keyword">this</span>);
    /// &#32;     newAct<span class="operator">-</span><span class="operator">&gt;</span>setStatusTip(tr(<span class="string">"Create a new file."</span>));
    /// &#32;     fileMenu<span class="operator">-</span><span class="operator">&gt;</span>addAction(newAct);
    /// &#32;     ...
    ///   }
    ///
    /// </pre>
    /// </td><td><p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qstatustipevent-action.png" alt="Action with status tip."></p></td></tr>
    /// </tbody></table></div>
    /// <p>Finally, status tips are supported for the item view classes through the <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::StatusTipRole</a> enum value.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QStatusTipEvent>>,
    ) -> ::cpp_core::MutRef<crate::QStatusTipEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStatusTipEvent_operator_(
            self as *mut crate::QStatusTipEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QStatusTipEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a status tip event with the text specified by <i>tip</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStatusTipEvent::QStatusTipEvent(const QString& tip)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatustipevent.html#QStatusTipEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a status tip event with the text specified by <i>tip</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatustipevent.html#tip">tip</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new(
        tip: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QStatusTipEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStatusTipEvent_QStatusTipEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(tip)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qstatustipevent.html">QStatusTipEvent</a> class provides an event that is used to show messages in a status bar.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStatusTipEvent::QStatusTipEvent(const QStatusTipEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatustipevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstatustipevent.html">QStatusTipEvent</a> class provides an event that is used to show messages in a status bar.</p>
    /// <p>Status tips can be set on a widget using the <a href="http://doc.qt.io/qt-5/qwidget.html#statusTip-prop">QWidget::setStatusTip</a>() function. They are shown in the status bar when the mouse cursor enters the widget. For example:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   MainWindow<span class="operator">::</span>MainWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>parent)
    /// &#32;     : <span class="type"><a href="http://doc.qt.io/qt-5/qmainwindow.html">QMainWindow</a></span>(parent)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>myWidget <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span>;
    /// &#32;     myWidget<span class="operator">-</span><span class="operator">&gt;</span>setStatusTip(tr(<span class="string">"This is my widget."</span>));
    ///
    /// &#32;     setCentralWidget(myWidget);
    /// &#32;     ...
    ///   }
    ///
    /// </pre>
    /// </td><td><p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qstatustipevent-widget.png" alt="Widget with status tip."></p></td></tr>
    /// </tbody></table></div>
    /// <p>Status tips can also be set on actions using the <a href="http://doc.qt.io/qt-5/qaction.html#statusTip-prop">QAction::setStatusTip</a>() function:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   MainWindow<span class="operator">::</span>MainWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>parent)
    /// &#32;     : <span class="type"><a href="http://doc.qt.io/qt-5/qmainwindow.html">QMainWindow</a></span>(parent)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qmenu.html">QMenu</a></span> <span class="operator">*</span>fileMenu <span class="operator">=</span> menuBar()<span class="operator">-</span><span class="operator">&gt;</span>addMenu(tr(<span class="string">"File"</span>));
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qaction.html">QAction</a></span> <span class="operator">*</span>newAct <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qaction.html">QAction</a></span>(tr(<span class="string">"&amp;New"</span>)<span class="operator">,</span> <span class="keyword">this</span>);
    /// &#32;     newAct<span class="operator">-</span><span class="operator">&gt;</span>setStatusTip(tr(<span class="string">"Create a new file."</span>));
    /// &#32;     fileMenu<span class="operator">-</span><span class="operator">&gt;</span>addAction(newAct);
    /// &#32;     ...
    ///   }
    ///
    /// </pre>
    /// </td><td><p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qstatustipevent-action.png" alt="Action with status tip."></p></td></tr>
    /// </tbody></table></div>
    /// <p>Finally, status tips are supported for the item view classes through the <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::StatusTipRole</a> enum value.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QStatusTipEvent>>,
    ) -> ::cpp_core::CppBox<crate::QStatusTipEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStatusTipEvent_QStatusTipEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QStatusTipEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the message to show in the status bar.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QStatusTipEvent::tip() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatustipevent.html#tip">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the message to show in the status bar.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatusbar.html#showMessage">QStatusBar::showMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tip(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStatusTipEvent_tip(self as *const crate::QStatusTipEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">QWhatsThisClickedEvent</a> class provides an event that can be used to handle hyperlinks in a "What's This?" text.</p>
///
/// C++ class: <span style='color: green;'>```QWhatsThisClickedEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">QWhatsThisClickedEvent</a> class provides an event that can be used to handle hyperlinks in a "What's This?" text.</p></div>
#[repr(C)]
pub struct QWhatsThisClickedEvent {
    _unused: u8,
}
impl QWhatsThisClickedEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">QWhatsThisClickedEvent</a> class provides an event that can be used to handle hyperlinks in a "What's This?" text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWhatsThisClickedEvent& QWhatsThisClickedEvent::operator=(const QWhatsThisClickedEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">QWhatsThisClickedEvent</a> class provides an event that can be used to handle hyperlinks in a "What's This?" text.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QWhatsThisClickedEvent>>,
    ) -> ::cpp_core::MutRef<crate::QWhatsThisClickedEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWhatsThisClickedEvent_operator_(
            self as *mut crate::QWhatsThisClickedEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QWhatsThisClickedEvent>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the URL that was clicked by the user in the "What's This?" text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QWhatsThisClickedEvent::href() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html#href">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the URL that was clicked by the user in the "What's This?" text.</p></div>
    #[inline(always)]
    pub unsafe fn href(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWhatsThisClickedEvent_href(
            self as *const crate::QWhatsThisClickedEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an event containing a URL specified by <i>href</i> when a link is clicked in a "What's This?" message.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWhatsThisClickedEvent::QWhatsThisClickedEvent(const QString& href)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html#QWhatsThisClickedEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an event containing a URL specified by <i>href</i> when a link is clicked in a "What's This?" message.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html#href">href</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new(
        href: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QWhatsThisClickedEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWhatsThisClickedEvent_QWhatsThisClickedEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(href)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">QWhatsThisClickedEvent</a> class provides an event that can be used to handle hyperlinks in a "What's This?" text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWhatsThisClickedEvent::QWhatsThisClickedEvent(const QWhatsThisClickedEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwhatsthisclickedevent.html">QWhatsThisClickedEvent</a> class provides an event that can be used to handle hyperlinks in a "What's This?" text.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QWhatsThisClickedEvent>>,
    ) -> ::cpp_core::CppBox<crate::QWhatsThisClickedEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWhatsThisClickedEvent_QWhatsThisClickedEvent2(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QWhatsThisClickedEvent>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qactionevent.html">QActionEvent</a> class provides an event that is generated when a <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a> is added, removed, or changed.</p>
///
/// C++ class: <span style='color: green;'>```QActionEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qactionevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qactionevent.html">QActionEvent</a> class provides an event that is generated when a <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a> is added, removed, or changed.</p>
/// <p>Actions can be added to widgets using <a href="http://doc.qt.io/qt-5/qwidget.html#addAction">QWidget::addAction</a>(). This generates an <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">ActionAdded</a> event, which you can handle to provide custom behavior. For example, <a href="http://doc.qt.io/qt-5/qtoolbar.html">QToolBar</a> reimplements <a href="http://doc.qt.io/qt-5/qwidget.html#actionEvent">QWidget::actionEvent</a>() to create <a href="http://doc.qt.io/qt-5/qtoolbutton.html">QToolButton</a>s for the actions.</p></div>
#[repr(C)]
pub struct QActionEvent {
    _unused: u8,
}
impl QActionEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qactionevent.html">QActionEvent</a> class provides an event that is generated when a <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a> is added, removed, or changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QActionEvent& QActionEvent::operator=(const QActionEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qactionevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qactionevent.html">QActionEvent</a> class provides an event that is generated when a <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a> is added, removed, or changed.</p>
    /// <p>Actions can be added to widgets using <a href="http://doc.qt.io/qt-5/qwidget.html#addAction">QWidget::addAction</a>(). This generates an <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">ActionAdded</a> event, which you can handle to provide custom behavior. For example, <a href="http://doc.qt.io/qt-5/qtoolbar.html">QToolBar</a> reimplements <a href="http://doc.qt.io/qt-5/qwidget.html#actionEvent">QWidget::actionEvent</a>() to create <a href="http://doc.qt.io/qt-5/qtoolbutton.html">QToolButton</a>s for the actions.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QActionEvent>>,
    ) -> ::cpp_core::MutRef<crate::QActionEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QActionEvent_operator_(
            self as *mut crate::QActionEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QActionEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qactionevent.html">QActionEvent</a> class provides an event that is generated when a <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a> is added, removed, or changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QActionEvent::QActionEvent(const QActionEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qactionevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qactionevent.html">QActionEvent</a> class provides an event that is generated when a <a href="http://doc.qt.io/qt-5/qaction.html">QAction</a> is added, removed, or changed.</p>
    /// <p>Actions can be added to widgets using <a href="http://doc.qt.io/qt-5/qwidget.html#addAction">QWidget::addAction</a>(). This generates an <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">ActionAdded</a> event, which you can handle to provide custom behavior. For example, <a href="http://doc.qt.io/qt-5/qtoolbar.html">QToolBar</a> reimplements <a href="http://doc.qt.io/qt-5/qwidget.html#actionEvent">QWidget::actionEvent</a>() to create <a href="http://doc.qt.io/qt-5/qtoolbutton.html">QToolButton</a>s for the actions.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QActionEvent>>,
    ) -> ::cpp_core::CppBox<crate::QActionEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QActionEvent_QActionEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QActionEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qfileopenevent.html">QFileOpenEvent</a> class provides an event that will be sent when there is a request to open a file or a URL.</p>
///
/// C++ class: <span style='color: green;'>```QFileOpenEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfileopenevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfileopenevent.html">QFileOpenEvent</a> class provides an event that will be sent when there is a request to open a file or a URL.</p>
/// <p>File open events will be sent to the QApplication::instance() when the operating system requests that a file or URL should be opened. This is a high-level event that can be caused by different user actions depending on the user's desktop environment; for example, double clicking on an file icon in the Finder on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>.</p>
/// <p>This event is only used to notify the application of a request. It may be safely ignored.</p>
/// <p><b>Note: </b>This class is currently supported for <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> only.</p><a name="macos-example"></a></div>
#[repr(C)]
pub struct QFileOpenEvent {
    _unused: u8,
}
impl QFileOpenEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qfileopenevent.html">QFileOpenEvent</a> class provides an event that will be sent when there is a request to open a file or a URL.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFileOpenEvent& QFileOpenEvent::operator=(const QFileOpenEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfileopenevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfileopenevent.html">QFileOpenEvent</a> class provides an event that will be sent when there is a request to open a file or a URL.</p>
    /// <p>File open events will be sent to the QApplication::instance() when the operating system requests that a file or URL should be opened. This is a high-level event that can be caused by different user actions depending on the user's desktop environment; for example, double clicking on an file icon in the Finder on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>.</p>
    /// <p>This event is only used to notify the application of a request. It may be safely ignored.</p>
    /// <p><b>Note: </b>This class is currently supported for <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> only.</p><a name="macos-example"></a></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFileOpenEvent>>,
    ) -> ::cpp_core::MutRef<crate::QFileOpenEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFileOpenEvent_operator_(
            self as *mut crate::QFileOpenEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFileOpenEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the file that is being opened.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFileOpenEvent::file() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfileopenevent.html#file">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the file that is being opened.</p></div>
    #[inline(always)]
    pub unsafe fn file(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFileOpenEvent_file(self as *const crate::QFileOpenEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFileOpenEvent::QFileOpenEvent(const QString& file)```</span>.
    #[inline(always)]
    pub unsafe fn from_q_string(
        file: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QFileOpenEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFileOpenEvent_QFileOpenEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFileOpenEvent::QFileOpenEvent(const QUrl& url)```</span>.
    #[inline(always)]
    pub unsafe fn from_q_url(
        url: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) -> ::cpp_core::CppBox<crate::QFileOpenEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFileOpenEvent_QFileOpenEvent1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(url).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qfileopenevent.html">QFileOpenEvent</a> class provides an event that will be sent when there is a request to open a file or a URL.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFileOpenEvent::QFileOpenEvent(const QFileOpenEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfileopenevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfileopenevent.html">QFileOpenEvent</a> class provides an event that will be sent when there is a request to open a file or a URL.</p>
    /// <p>File open events will be sent to the QApplication::instance() when the operating system requests that a file or URL should be opened. This is a high-level event that can be caused by different user actions depending on the user's desktop environment; for example, double clicking on an file icon in the Finder on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>.</p>
    /// <p>This event is only used to notify the application of a request. It may be safely ignored.</p>
    /// <p><b>Note: </b>This class is currently supported for <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> only.</p><a name="macos-example"></a></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFileOpenEvent>>,
    ) -> ::cpp_core::CppBox<crate::QFileOpenEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFileOpenEvent_QFileOpenEvent3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFileOpenEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Opens a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a> on the <i>file</i> referenced by this event in the mode specified by <i>flags</i>. Returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFileOpenEvent::openFile(QFile& file, QFlags<QIODevice::OpenModeFlag> flags) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfileopenevent.html#openFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Opens a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a> on the <i>file</i> referenced by this event in the mode specified by <i>flags</i>. Returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    /// <p>This is necessary as some files cannot be opened by name, but require specific information stored in this event.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn open_file(
        &self,
        file: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QFile>>,
        flags: ::qt_core::QFlags<::qt_core::q_io_device::OpenModeFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFileOpenEvent_openFile(
            self as *const crate::QFileOpenEvent,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QFile>>::cast_into(file)
                .as_mut_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>Returns the url that is being opened.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl QFileOpenEvent::url() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfileopenevent.html#url">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the url that is being opened.</p>
    /// <p>This function was introduced in  Qt 4.6.</p></div>
    #[inline(always)]
    pub unsafe fn url(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFileOpenEvent_url(self as *const crate::QFileOpenEvent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// C++ class: <span style='color: green;'>```QToolBarChangeEvent```</span>.
#[repr(C)]
pub struct QToolBarChangeEvent {
    _unused: u8,
}
impl QToolBarChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QToolBarChangeEvent& QToolBarChangeEvent::operator=(const QToolBarChangeEvent& other)```</span>.
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QToolBarChangeEvent>>,
    ) -> ::cpp_core::MutRef<crate::QToolBarChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QToolBarChangeEvent_operator_(
            self as *mut crate::QToolBarChangeEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QToolBarChangeEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QToolBarChangeEvent::QToolBarChangeEvent(bool t)```</span>.
    #[inline(always)]
    pub unsafe fn new(t: bool) -> ::cpp_core::CppBox<crate::QToolBarChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QToolBarChangeEvent_QToolBarChangeEvent(t);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QToolBarChangeEvent::QToolBarChangeEvent(const QToolBarChangeEvent& other)```</span>.
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QToolBarChangeEvent>>,
    ) -> ::cpp_core::CppBox<crate::QToolBarChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QToolBarChangeEvent_QToolBarChangeEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QToolBarChangeEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QToolBarChangeEvent::toggle() const```</span>.
    #[inline(always)]
    pub unsafe fn toggle(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QToolBarChangeEvent_toggle(
            self as *const crate::QToolBarChangeEvent,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qshortcutevent.html">QShortcutEvent</a> class provides an event which is generated when the user presses a key combination.</p>
///
/// C++ class: <span style='color: green;'>```QShortcutEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qshortcutevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qshortcutevent.html">QShortcutEvent</a> class provides an event which is generated when the user presses a key combination.</p>
/// <p>Normally you do not need to use this class directly; <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> provides a higher-level interface to handle shortcut keys.</p></div>
#[repr(C)]
pub struct QShortcutEvent {
    _unused: u8,
}
impl QShortcutEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qshortcutevent.html">QShortcutEvent</a> class provides an event which is generated when the user presses a key combination.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QShortcutEvent& QShortcutEvent::operator=(const QShortcutEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshortcutevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qshortcutevent.html">QShortcutEvent</a> class provides an event which is generated when the user presses a key combination.</p>
    /// <p>Normally you do not need to use this class directly; <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> provides a higher-level interface to handle shortcut keys.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QShortcutEvent>>,
    ) -> ::cpp_core::MutRef<crate::QShortcutEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QShortcutEvent_operator_(
            self as *mut crate::QShortcutEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QShortcutEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the key sequence that triggered the event is ambiguous.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QShortcutEvent::isAmbiguous() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshortcutevent.html#isAmbiguous">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the key sequence that triggered the event is ambiguous.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qshortcut.html#activatedAmbiguously">QShortcut::activatedAmbiguously</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_ambiguous(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QShortcutEvent_isAmbiguous(
            self as *const crate::QShortcutEvent,
        )
    }

    /// <p>Returns the key sequence that triggered the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QShortcutEvent::key() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshortcutevent.html#key">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the key sequence that triggered the event.</p></div>
    #[inline(always)]
    pub unsafe fn key(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QShortcutEvent_key(self as *const crate::QShortcutEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a shortcut event for the given <i>key</i> press, associated with the <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> ID <i>id</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QShortcutEvent::QShortcutEvent(const QKeySequence& key, int id, bool ambiguous = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshortcutevent.html#QShortcutEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a shortcut event for the given <i>key</i> press, associated with the <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> ID <i>id</i>.</p>
    /// <p><i>ambiguous</i> specifies whether there is more than one <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> for the same key sequence.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
        id: ::std::os::raw::c_int,
        ambiguous: bool,
    ) -> ::cpp_core::CppBox<crate::QShortcutEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QShortcutEvent_QShortcutEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(key)
                .as_raw_ptr(),
            id,
            ambiguous,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a shortcut event for the given <i>key</i> press, associated with the <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> ID <i>id</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QShortcutEvent::QShortcutEvent(const QKeySequence& key, int id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshortcutevent.html#QShortcutEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a shortcut event for the given <i>key</i> press, associated with the <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> ID <i>id</i>.</p>
    /// <p><i>ambiguous</i> specifies whether there is more than one <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> for the same key sequence.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
        id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QShortcutEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QShortcutEvent_QShortcutEvent3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(key)
                .as_raw_ptr(),
            id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qshortcutevent.html">QShortcutEvent</a> class provides an event which is generated when the user presses a key combination.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QShortcutEvent::QShortcutEvent(const QShortcutEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshortcutevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qshortcutevent.html">QShortcutEvent</a> class provides an event which is generated when the user presses a key combination.</p>
    /// <p>Normally you do not need to use this class directly; <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> provides a higher-level interface to handle shortcut keys.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QShortcutEvent>>,
    ) -> ::cpp_core::CppBox<crate::QShortcutEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QShortcutEvent_QShortcutEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QShortcutEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the ID of the <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> object for which this event was generated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QShortcutEvent::shortcutId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshortcutevent.html#shortcutId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the ID of the <a href="http://doc.qt.io/qt-5/qshortcut.html">QShortcut</a> object for which this event was generated.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qshortcut.html#id">QShortcut::id</a>().</p></div>
    #[inline(always)]
    pub unsafe fn shortcut_id(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QShortcutEvent_shortcutId(self as *const crate::QShortcutEvent)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">QWindowStateChangeEvent</a> class provides the window state before a window state change.</p>
///
/// C++ class: <span style='color: green;'>```QWindowStateChangeEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">QWindowStateChangeEvent</a> class provides the window state before a window state change.</p></div>
#[repr(C)]
pub struct QWindowStateChangeEvent {
    _unused: u8,
}
impl QWindowStateChangeEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">QWindowStateChangeEvent</a> class provides the window state before a window state change.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindowStateChangeEvent& QWindowStateChangeEvent::operator=(const QWindowStateChangeEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">QWindowStateChangeEvent</a> class provides the window state before a window state change.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QWindowStateChangeEvent>>,
    ) -> ::cpp_core::MutRef<crate::QWindowStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindowStateChangeEvent_operator_(
            self as *mut crate::QWindowStateChangeEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QWindowStateChangeEvent>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QWindowStateChangeEvent::isOverride() const```</span>.
    #[inline(always)]
    pub unsafe fn is_override(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindowStateChangeEvent_isOverride(
            self as *const crate::QWindowStateChangeEvent,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWindowStateChangeEvent::QWindowStateChangeEvent(QFlags<Qt::WindowState> aOldState, bool isOverride = …)```</span>.
    #[inline(always)]
    pub unsafe fn new_2a(
        a_old_state: ::qt_core::QFlags<::qt_core::WindowState>,
        is_override: bool,
    ) -> ::cpp_core::CppBox<crate::QWindowStateChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindowStateChangeEvent_QWindowStateChangeEvent(
                a_old_state.to_int(),
                is_override,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWindowStateChangeEvent::QWindowStateChangeEvent(QFlags<Qt::WindowState> aOldState)```</span>.
    #[inline(always)]
    pub unsafe fn new_1a(
        a_old_state: ::qt_core::QFlags<::qt_core::WindowState>,
    ) -> ::cpp_core::CppBox<crate::QWindowStateChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindowStateChangeEvent_QWindowStateChangeEvent3(
                a_old_state.to_int(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">QWindowStateChangeEvent</a> class provides the window state before a window state change.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWindowStateChangeEvent::QWindowStateChangeEvent(const QWindowStateChangeEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html">QWindowStateChangeEvent</a> class provides the window state before a window state change.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QWindowStateChangeEvent>>,
    ) -> ::cpp_core::CppBox<crate::QWindowStateChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindowStateChangeEvent_QWindowStateChangeEvent2(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QWindowStateChangeEvent>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the state of the window before the change.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::WindowState> QWindowStateChangeEvent::oldState() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindowstatechangeevent.html#oldState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the state of the window before the change.</p></div>
    #[inline(always)]
    pub unsafe fn old_state(&self) -> ::qt_core::QFlags<::qt_core::WindowState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindowStateChangeEvent_oldState(
            self as *const crate::QWindowStateChangeEvent,
        );
        ::qt_core::QFlags::from(ffi_result)
    }
}

/// <p><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">QPointingDeviceUniqueId</a> identifies a unique object, such as a tagged token or stylus, which is used with a pointing device.</p>
///
/// C++ class: <span style='color: green;'>```QPointingDeviceUniqueId```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">QPointingDeviceUniqueId</a> identifies a unique object, such as a tagged token or stylus, which is used with a pointing device.</p>
/// <p>QPointingDeviceUniqueIds can be compared for equality, and can be used as keys in a <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a>. You get access to the numerical ID via <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#numericId-prop">numericId</a>(), if the device supports such IDs. For future extensions, though, you should not use that function, but compare objects of this type using the equality operator.</p>
/// <p>This class is a thin wrapper around an integer ID. You pass it into and out of functions by value.</p>
/// <p>This type actively prevents you from holding it in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, because doing so would be very inefficient. Use a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> instead, which has the same API as <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, but more efficient storage.</p></div>
#[repr(C)]
pub struct QPointingDeviceUniqueId {
    _unused: u8,
}
impl QPointingDeviceUniqueId {
    /// <p><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">QPointingDeviceUniqueId</a> identifies a unique object, such as a tagged token or stylus, which is used with a pointing device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointingDeviceUniqueId& QPointingDeviceUniqueId::operator=(const QPointingDeviceUniqueId& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">QPointingDeviceUniqueId</a> identifies a unique object, such as a tagged token or stylus, which is used with a pointing device.</p>
    /// <p>QPointingDeviceUniqueIds can be compared for equality, and can be used as keys in a <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a>. You get access to the numerical ID via <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#numericId-prop">numericId</a>(), if the device supports such IDs. For future extensions, though, you should not use that function, but compare objects of this type using the equality operator.</p>
    /// <p>This class is a thin wrapper around an integer ID. You pass it into and out of functions by value.</p>
    /// <p>This type actively prevents you from holding it in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, because doing so would be very inefficient. Use a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> instead, which has the same API as <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, but more efficient storage.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>,
    ) -> ::cpp_core::MutRef<crate::QPointingDeviceUniqueId> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPointingDeviceUniqueId_operator_(
            self as *mut crate::QPointingDeviceUniqueId,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a unique pointer ID from numeric ID <i>id</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPointingDeviceUniqueId QPointingDeviceUniqueId::fromNumericId(qint64 id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#fromNumericId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a unique pointer ID from numeric ID <i>id</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_numeric_id(id: i64) -> ::cpp_core::CppBox<crate::QPointingDeviceUniqueId> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPointingDeviceUniqueId_fromNumericId(id);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns whether this unique pointer ID is valid, that is, it represents an actual pointer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPointingDeviceUniqueId::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether this unique pointer ID is valid, that is, it represents an actual pointer.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPointingDeviceUniqueId_isValid(
            self as *const crate::QPointingDeviceUniqueId,
        )
    }

    /// <p>Constructs an invalid unique pointer ID.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPointingDeviceUniqueId::QPointingDeviceUniqueId()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#QPointingDeviceUniqueId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an invalid unique pointer ID.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPointingDeviceUniqueId> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPointingDeviceUniqueId_QPointingDeviceUniqueId();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">QPointingDeviceUniqueId</a> identifies a unique object, such as a tagged token or stylus, which is used with a pointing device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPointingDeviceUniqueId::QPointingDeviceUniqueId(const QPointingDeviceUniqueId& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">QPointingDeviceUniqueId</a> identifies a unique object, such as a tagged token or stylus, which is used with a pointing device.</p>
    /// <p>QPointingDeviceUniqueIds can be compared for equality, and can be used as keys in a <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a>. You get access to the numerical ID via <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#numericId-prop">numericId</a>(), if the device supports such IDs. For future extensions, though, you should not use that function, but compare objects of this type using the equality operator.</p>
    /// <p>This class is a thin wrapper around an integer ID. You pass it into and out of functions by value.</p>
    /// <p>This type actively prevents you from holding it in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, because doing so would be very inefficient. Use a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> instead, which has the same API as <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, but more efficient storage.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>,
    ) -> ::cpp_core::CppBox<crate::QPointingDeviceUniqueId> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPointingDeviceUniqueId_QPointingDeviceUniqueId1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the numeric unique ID of the token represented by a touchpoint</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```qint64 QPointingDeviceUniqueId::numericId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#numericId-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the numeric unique ID of the token represented by a touchpoint</p>
    /// <p>If the device provides a numeric ID, <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#isValid">isValid</a>() returns true, and this property provides the numeric ID; otherwise it is -1.</p>
    /// <p>You should not use the value of this property in portable code, but instead rely on equality to identify pointers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qint64 </td><td class="memItemRight bottomAlign"><span class="name"><b>numericId</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn numeric_id(&self) -> i64 {
        crate::__ffi::ctr_qt_gui_ffi_QPointingDeviceUniqueId_numericId(
            self as *const crate::QPointingDeviceUniqueId,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPointingDeviceUniqueId_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

pub mod q_touch_event {
    //! C++ type: <span style='color: green;'>```QTouchEvent```</span>

    pub mod touch_point {
        //! C++ type: <span style='color: green;'>```QTouchEvent::TouchPoint```</span>

        /// C++ enum: <span style='color: green;'>```QTouchEvent::TouchPoint::InfoFlag```</span>.
        #[derive(Debug, Clone, Copy, PartialEq, Eq)]
        #[repr(transparent)]
        pub struct InfoFlag(::std::os::raw::c_int);

        impl From<::std::os::raw::c_int> for InfoFlag {
            fn from(value: ::std::os::raw::c_int) -> Self {
                InfoFlag(value)
            }
        }

        impl From<InfoFlag> for ::std::os::raw::c_int {
            fn from(value: InfoFlag) -> Self {
                value.0
            }
        }

        impl InfoFlag {
            pub fn to_int(&self) -> ::std::os::raw::c_int {
                self.0
            }
        }

        impl InfoFlag {
            /// C++ enum variant: <span style='color: green;'>```Pen = 1```</span>
            #[allow(non_upper_case_globals)]
            pub const Pen: crate::q_touch_event::touch_point::InfoFlag =
                crate::q_touch_event::touch_point::InfoFlag(1);
            /// C++ enum variant: <span style='color: green;'>```Token = 2```</span>
            #[allow(non_upper_case_globals)]
            pub const Token: crate::q_touch_event::touch_point::InfoFlag =
                crate::q_touch_event::touch_point::InfoFlag(2);
        }

        impl From<crate::q_touch_event::touch_point::InfoFlag>
            for ::qt_core::QFlags<crate::q_touch_event::touch_point::InfoFlag>
        {
            fn from(value: crate::q_touch_event::touch_point::InfoFlag) -> Self {
                Self::from(value.to_int())
            }
        }

        impl<T: Into<::qt_core::QFlags<crate::q_touch_event::touch_point::InfoFlag>>>
            std::ops::BitOr<T> for crate::q_touch_event::touch_point::InfoFlag
        {
            type Output = ::qt_core::QFlags<crate::q_touch_event::touch_point::InfoFlag>;
            fn bitor(
                self,
                rhs: T,
            ) -> ::qt_core::QFlags<crate::q_touch_event::touch_point::InfoFlag> {
                Into::<::qt_core::QFlags<crate::q_touch_event::touch_point::InfoFlag>>::into(self)
                    | rhs
            }
        }
    }
    /// <p>The <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">TouchPoint</a> class provides information about a touch point in a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QTouchEvent::TouchPoint```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">TouchPoint</a> class provides information about a touch point in a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/touchpoint-metrics.png" alt=""></p></div>
    #[repr(C)]
    pub struct TouchPoint {
        _unused: u8,
    }
    impl TouchPoint {
        /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QTouchEvent::TouchPoint::operator=(const QTouchEvent::TouchPoint& other)```</span>.
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
        ) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_operator_1(self as *mut crate::q_touch_event::TouchPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the width and height of the bounding ellipse of this touch point. The return value is in logical pixels. Most touchscreens do not detect the shape of the contact point, so a null size is the most common value. In other cases the diameters may be nonzero and equal (the ellipse is approximated as a circle).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSizeF QTouchEvent::TouchPoint::ellipseDiameters() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#ellipseDiameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width and height of the bounding ellipse of this touch point. The return value is in logical pixels. Most touchscreens do not detect the shape of the contact point, so a null size is the most common value. In other cases the diameters may be nonzero and equal (the ellipse is approximated as a circle).</p>
        /// <p>This function was introduced in  Qt 5.9.</p></div>
        #[inline(always)]
        pub unsafe fn ellipse_diameters(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_ellipseDiameters(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns additional information about the touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QFlags<QTouchEvent::TouchPoint::InfoFlag> QTouchEvent::TouchPoint::flags() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#flags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns additional information about the touch point.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#InfoFlag-enum">QTouchEvent::TouchPoint::InfoFlags</a>.</p></div>
        #[inline(always)]
        pub unsafe fn flags(
            &self,
        ) -> ::qt_core::QFlags<crate::q_touch_event::touch_point::InfoFlag> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_flags(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::qt_core::QFlags::from(ffi_result)
        }

        /// <p>Returns the id number of this touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```int QTouchEvent::TouchPoint::id() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#id">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the id number of this touch point.</p>
        /// <p>Do not assume that id numbers start at zero or that they are sequential. Such an assumption is often false due to the way the underlying drivers work.</p></div>
        #[inline(always)]
        pub unsafe fn id(&self) -> ::std::os::raw::c_int {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_id(
                self as *const crate::q_touch_event::TouchPoint,
            )
        }

        /// <p>Returns the normalized position of this touch point from the previous touch event.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::lastNormalizedPos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastNormalizedPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the normalized position of this touch point from the previous touch event.</p>
        /// <p>The coordinates are normalized to the size of the touch device, i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#normalizedPos">normalizedPos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startNormalizedPos">startNormalizedPos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn last_normalized_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_lastNormalizedPos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the position of this touch point from the previous touch event, relative to the widget or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> that received the event.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::lastPos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of this touch point from the previous touch event, relative to the widget or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> that received the event.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startPos">startPos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn last_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_lastPos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the scene position of this touch point from the previous touch event.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::lastScenePos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastScenePos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the scene position of this touch point from the previous touch event.</p>
        /// <p>The scene position is the position in <a href="http://doc.qt.io/qt-5/qgraphicsscene.html">QGraphicsScene</a> coordinates if the <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> is handled by a QGraphicsItem::touchEvent() reimplementation, and identical to the screen position for widgets.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#scenePos">scenePos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startScenePos">startScenePos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn last_scene_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_lastScenePos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the screen position of this touch point from the previous touch event.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::lastScreenPos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastScreenPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the screen position of this touch point from the previous touch event.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#screenPos">screenPos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startScreenPos">startScreenPos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn last_screen_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_lastScreenPos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Move-constructs a <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">TouchPoint</a> instance, making it point to the same object that <i>other</i> was pointing to.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::TouchPoint::TouchPoint(int id = …)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#TouchPoint">C++ documentation</a> for <span style='color: green;'>```TouchPoint::TouchPoint(TouchPoint &&other)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Move-constructs a <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">TouchPoint</a> instance, making it point to the same object that <i>other</i> was pointing to.</p></div>
        #[inline(always)]
        pub unsafe fn new_1a(
            id: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_touch_event::TouchPoint> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_TouchPoint(id);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">TouchPoint</a> class provides information about a touch point in a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::TouchPoint::TouchPoint()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">TouchPoint</a> class provides information about a touch point in a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a>.</p>
        /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/touchpoint-metrics.png" alt=""></p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_touch_event::TouchPoint> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_TouchPoint3();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Move-constructs a <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">TouchPoint</a> instance, making it point to the same object that <i>other</i> was pointing to.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::TouchPoint::TouchPoint(const QTouchEvent::TouchPoint& other)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#TouchPoint">C++ documentation</a> for <span style='color: green;'>```TouchPoint::TouchPoint(TouchPoint &&other)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Move-constructs a <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html">TouchPoint</a> instance, making it point to the same object that <i>other</i> was pointing to.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
        ) -> ::cpp_core::CppBox<crate::q_touch_event::TouchPoint> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_TouchPoint1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(other).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the normalized position of this touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::normalizedPos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#normalizedPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the normalized position of this touch point.</p>
        /// <p>The coordinates are normalized to the size of the touch device, i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startNormalizedPos">startNormalizedPos</a>(), <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastNormalizedPos">lastNormalizedPos</a>(), and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn normalized_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_normalizedPos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the position of this touch point, relative to the widget or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> that received the event.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::pos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of this touch point, relative to the widget or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> that received the event.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startPos">startPos</a>(), <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastPos">lastPos</a>(), <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#screenPos">screenPos</a>(), <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#scenePos">scenePos</a>(), and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#normalizedPos">normalizedPos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_pos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the pressure of this touch point. The return value is in the range 0.0 to 1.0.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```double QTouchEvent::TouchPoint::pressure() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pressure">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pressure of this touch point. The return value is in the range 0.0 to 1.0.</p></div>
        #[inline(always)]
        pub unsafe fn pressure(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_pressure(
                self as *const crate::q_touch_event::TouchPoint,
            )
        }

        /// <p>Returns the raw, unfiltered positions for the touch point. The positions are in native screen coordinates. To get local coordinates you can use mapFromGlobal() of the <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> returned by <a href="http://doc.qt.io/qt-5/qtouchevent.html#window">QTouchEvent::window</a>().</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QVector<QPointF> QTouchEvent::TouchPoint::rawScreenPositions() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#rawScreenPositions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the raw, unfiltered positions for the touch point. The positions are in native screen coordinates. To get local coordinates you can use mapFromGlobal() of the <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> returned by <a href="http://doc.qt.io/qt-5/qtouchevent.html#window">QTouchEvent::window</a>().</p>
        /// <p><b>Note: </b>Returns an empty vector if the touch device's capabilities do not include <a href="http://doc.qt.io/qt-5/qtouchdevice.html#CapabilityFlag-enum">QTouchDevice::RawPositions</a>.</p><p><b>Note: </b>Native screen coordinates refer to the native orientation of the screen which, in case of mobile devices, is typically portrait. This means that on systems capable of screen orientation changes the positions in this list will not reflect the current orientation (unlike <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#screenPos">screenPos</a>(), etc.) and will always be reported in the native orientation.</p><p>This function was introduced in  Qt 5.0.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#capabilities">QTouchDevice::capabilities</a>(), <a href="http://doc.qt.io/qt-5/qtouchevent.html#device">device</a>(), and <a href="http://doc.qt.io/qt-5/qtouchevent.html#window">window</a>().</p></div>
        #[inline(always)]
        pub unsafe fn raw_screen_positions(
            &self,
        ) -> ::cpp_core::CppBox<::qt_core::QVectorOfQPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_rawScreenPositions(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the rect for this touch point, relative to the widget or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> that received the event. The rect is centered around the point returned by <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>().</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QRectF QTouchEvent::TouchPoint::rect() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint-obsolete.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rect for this touch point, relative to the widget or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> that received the event. The rect is centered around the point returned by <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>().</p>
        /// <p><b>Note: </b>This function returns an empty rect if the device does not report touch point sizes.</p><p>of the touchpoint regardless of rotation, whereas a touchpoint is more correctly modeled as an ellipse at position <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>() with <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#ellipseDiameters">ellipseDiameters</a>() which are independent of <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#rotation">rotation</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#scenePos">scenePos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#ellipseDiameters">ellipseDiameters</a>().</p></div>
        #[inline(always)]
        pub unsafe fn rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_rect(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the angular orientation of this touch point. The return value is in degrees, where zero (the default) indicates the finger or token is pointing upwards, a negative angle means it's rotated to the left, and a positive angle means it's rotated to the right. Most touchscreens do not detect rotation, so zero is the most common value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```double QTouchEvent::TouchPoint::rotation() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#rotation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the angular orientation of this touch point. The return value is in degrees, where zero (the default) indicates the finger or token is pointing upwards, a negative angle means it's rotated to the left, and a positive angle means it's rotated to the right. Most touchscreens do not detect rotation, so zero is the most common value.</p>
        /// <p>This function was introduced in  Qt 5.8.</p></div>
        #[inline(always)]
        pub unsafe fn rotation(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_rotation(
                self as *const crate::q_touch_event::TouchPoint,
            )
        }

        /// <p>Returns the scene position of this touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::scenePos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#scenePos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the scene position of this touch point.</p>
        /// <p>The scene position is the position in <a href="http://doc.qt.io/qt-5/qgraphicsscene.html">QGraphicsScene</a> coordinates if the <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> is handled by a QGraphicsItem::touchEvent() reimplementation, and identical to the screen position for widgets.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startScenePos">startScenePos</a>(), <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastScenePos">lastScenePos</a>(), and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn scene_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_scenePos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the rect for this touch point in scene coordinates.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QRectF QTouchEvent::TouchPoint::sceneRect() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint-obsolete.html#sceneRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rect for this touch point in scene coordinates.</p>
        /// <p><b>Note: </b>This function returns an empty rect if the device does not report touch point sizes.</p><p>of the touchpoint regardless of rotation, whereas a touchpoint is more correctly modeled as an ellipse at position <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#scenePos">scenePos</a>() with <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#ellipseDiameters">ellipseDiameters</a>() which are independent of <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#rotation">rotation</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#scenePos">scenePos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#ellipseDiameters">ellipseDiameters</a>().</p></div>
        #[inline(always)]
        pub unsafe fn scene_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_sceneRect(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the screen position of this touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::screenPos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#screenPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the screen position of this touch point.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startScreenPos">startScreenPos</a>(), <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastScreenPos">lastScreenPos</a>(), and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn screen_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_screenPos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the rect for this touch point in screen coordinates.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QRectF QTouchEvent::TouchPoint::screenRect() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint-obsolete.html#screenRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rect for this touch point in screen coordinates.</p>
        /// <p><b>Note: </b>This function returns an empty rect if the device does not report touch point sizes.</p><p>touchpoint regardless of rotation, whereas a touchpoint is more correctly modeled as an ellipse at position <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#screenPos">screenPos</a>() with <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#ellipseDiameters">ellipseDiameters</a>() which are independent of <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#rotation">rotation</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#screenPos">screenPos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#ellipseDiameters">ellipseDiameters</a>().</p></div>
        #[inline(always)]
        pub unsafe fn screen_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_screenRect(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setEllipseDiameters(const QSizeF& dia)```</span>.
        #[inline(always)]
        pub unsafe fn set_ellipse_diameters(
            &mut self,
            dia: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setEllipseDiameters(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(dia)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setFlags(QFlags<QTouchEvent::TouchPoint::InfoFlag> flags)```</span>.
        #[inline(always)]
        pub unsafe fn set_flags(
            &mut self,
            flags: ::qt_core::QFlags<crate::q_touch_event::touch_point::InfoFlag>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setFlags(
                self as *mut crate::q_touch_event::TouchPoint,
                flags.to_int(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setId(int id)```</span>.
        #[inline(always)]
        pub unsafe fn set_id(&mut self, id: ::std::os::raw::c_int) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setId(
                self as *mut crate::q_touch_event::TouchPoint,
                id,
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setLastNormalizedPos(const QPointF& lastNormalizedPos)```</span>.
        #[inline(always)]
        pub unsafe fn set_last_normalized_pos(
            &mut self,
            last_normalized_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setLastNormalizedPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(
                    last_normalized_pos,
                )
                .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setLastPos(const QPointF& lastPos)```</span>.
        #[inline(always)]
        pub unsafe fn set_last_pos(
            &mut self,
            last_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setLastPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(last_pos)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setLastScenePos(const QPointF& lastScenePos)```</span>.
        #[inline(always)]
        pub unsafe fn set_last_scene_pos(
            &mut self,
            last_scene_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setLastScenePos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(
                    last_scene_pos,
                )
                .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setLastScreenPos(const QPointF& lastScreenPos)```</span>.
        #[inline(always)]
        pub unsafe fn set_last_screen_pos(
            &mut self,
            last_screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setLastScreenPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(
                    last_screen_pos,
                )
                .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setNormalizedPos(const QPointF& normalizedPos)```</span>.
        #[inline(always)]
        pub unsafe fn set_normalized_pos(
            &mut self,
            normalized_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setNormalizedPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(
                    normalized_pos,
                )
                .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setPos(const QPointF& pos)```</span>.
        #[inline(always)]
        pub unsafe fn set_pos(
            &mut self,
            pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setPressure(double pressure)```</span>.
        #[inline(always)]
        pub unsafe fn set_pressure(&mut self, pressure: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setPressure(
                self as *mut crate::q_touch_event::TouchPoint,
                pressure,
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setRawScreenPositions(const QVector<QPointF>& positions)```</span>.
        #[inline(always)]
        pub unsafe fn set_raw_screen_positions(
            &mut self,
            positions: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfQPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setRawScreenPositions(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfQPointF>>::cast_into(
                    positions,
                )
                .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setRect(const QRectF& rect)```</span>.
        #[inline(always)]
        pub unsafe fn set_rect(
            &mut self,
            rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setRect(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setRotation(double angle)```</span>.
        #[inline(always)]
        pub unsafe fn set_rotation(&mut self, angle: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setRotation(
                self as *mut crate::q_touch_event::TouchPoint,
                angle,
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setScenePos(const QPointF& scenePos)```</span>.
        #[inline(always)]
        pub unsafe fn set_scene_pos(
            &mut self,
            scene_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setScenePos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(scene_pos)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setSceneRect(const QRectF& sceneRect)```</span>.
        #[inline(always)]
        pub unsafe fn set_scene_rect(
            &mut self,
            scene_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setSceneRect(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(scene_rect)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setScreenPos(const QPointF& screenPos)```</span>.
        #[inline(always)]
        pub unsafe fn set_screen_pos(
            &mut self,
            screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setScreenPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(screen_pos)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setScreenRect(const QRectF& screenRect)```</span>.
        #[inline(always)]
        pub unsafe fn set_screen_rect(
            &mut self,
            screen_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setScreenRect(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(screen_rect)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setStartNormalizedPos(const QPointF& startNormalizedPos)```</span>.
        #[inline(always)]
        pub unsafe fn set_start_normalized_pos(
            &mut self,
            start_normalized_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setStartNormalizedPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(
                    start_normalized_pos,
                )
                .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setStartPos(const QPointF& startPos)```</span>.
        #[inline(always)]
        pub unsafe fn set_start_pos(
            &mut self,
            start_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setStartPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(start_pos)
                    .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setStartScenePos(const QPointF& startScenePos)```</span>.
        #[inline(always)]
        pub unsafe fn set_start_scene_pos(
            &mut self,
            start_scene_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setStartScenePos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(
                    start_scene_pos,
                )
                .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setStartScreenPos(const QPointF& startScreenPos)```</span>.
        #[inline(always)]
        pub unsafe fn set_start_screen_pos(
            &mut self,
            start_screen_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setStartScreenPos(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(
                    start_screen_pos,
                )
                .as_raw_ptr(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setState(QFlags<Qt::TouchPointState> state)```</span>.
        #[inline(always)]
        pub unsafe fn set_state(&mut self, state: ::qt_core::QFlags<::qt_core::TouchPointState>) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setState(
                self as *mut crate::q_touch_event::TouchPoint,
                state.to_int(),
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setUniqueId(qint64 uid)```</span>.
        #[inline(always)]
        pub unsafe fn set_unique_id(&mut self, uid: i64) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setUniqueId(
                self as *mut crate::q_touch_event::TouchPoint,
                uid,
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::setVelocity(const QVector2D& v)```</span>.
        #[inline(always)]
        pub unsafe fn set_velocity(
            &mut self,
            v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_setVelocity(
                self as *mut crate::q_touch_event::TouchPoint,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(v)
                    .as_raw_ptr(),
            )
        }

        /// <p>Returns the normalized starting position of this touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::startNormalizedPos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startNormalizedPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the normalized starting position of this touch point.</p>
        /// <p>The coordinates are normalized to the size of the touch device, i.e. (0,0) is the top-left corner and (1,1) is the bottom-right corner.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#normalizedPos">normalizedPos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastNormalizedPos">lastNormalizedPos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn start_normalized_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_startNormalizedPos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the starting position of this touch point, relative to the widget or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> that received the event.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::startPos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the starting position of this touch point, relative to the widget or <a href="http://doc.qt.io/qt-5/qgraphicsitem.html">QGraphicsItem</a> that received the event.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#pos">pos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastPos">lastPos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn start_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_startPos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the starting scene position of this touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::startScenePos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startScenePos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the starting scene position of this touch point.</p>
        /// <p>The scene position is the position in <a href="http://doc.qt.io/qt-5/qgraphicsscene.html">QGraphicsScene</a> coordinates if the <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> is handled by a QGraphicsItem::touchEvent() reimplementation, and identical to the screen position for widgets.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#scenePos">scenePos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastScenePos">lastScenePos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn start_scene_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_startScenePos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the starting screen position of this touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QTouchEvent::TouchPoint::startScreenPos() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#startScreenPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the starting screen position of this touch point.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#screenPos">screenPos</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#lastScreenPos">lastScreenPos</a>().</p></div>
        #[inline(always)]
        pub unsafe fn start_screen_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_startScreenPos(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the current state of this touch point.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```Qt::TouchPointState QTouchEvent::TouchPoint::state() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#state">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current state of this touch point.</p></div>
        #[inline(always)]
        pub unsafe fn state(&self) -> ::qt_core::TouchPointState {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_state(
                self as *const crate::q_touch_event::TouchPoint,
            )
        }

        /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::TouchPoint::swap(QTouchEvent::TouchPoint& other)```</span>.
        #[inline(always)]
        pub unsafe fn swap(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::q_touch_event::TouchPoint>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_swap(self as *mut crate::q_touch_event::TouchPoint, ::cpp_core::CastInto::<::cpp_core::MutRef<crate::q_touch_event::TouchPoint>>::cast_into(other).as_mut_raw_ptr())
        }

        /// <p>Returns the unique ID of this touch point or token, if any.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointingDeviceUniqueId QTouchEvent::TouchPoint::uniqueId() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#uniqueId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the unique ID of this touch point or token, if any.</p>
        /// <p>It is normally invalid (see <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#isValid">isValid()</a>), because touchscreens cannot uniquely identify fingers. But when the <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#InfoFlag-enum">Token</a> flag is set, it is expected to uniquely identify a specific token (fiducial object).</p>
        /// <p>This function was introduced in  Qt 5.8.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#flags">flags</a>.</p></div>
        #[inline(always)]
        pub unsafe fn unique_id(&self) -> ::cpp_core::CppBox<crate::QPointingDeviceUniqueId> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_uniqueId(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a velocity vector for this touch point. The vector is in the screen's coordinate system, using pixels per seconds for the magnitude.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QVector2D QTouchEvent::TouchPoint::velocity() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtouchevent-touchpoint.html#velocity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a velocity vector for this touch point. The vector is in the screen's coordinate system, using pixels per seconds for the magnitude.</p>
        /// <p><b>Note: </b>The returned vector is only valid if the touch device's capabilities include <a href="http://doc.qt.io/qt-5/qtouchdevice.html#CapabilityFlag-enum">QTouchDevice::Velocity</a>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtouchdevice.html#capabilities">QTouchDevice::capabilities</a>() and <a href="http://doc.qt.io/qt-5/qtouchevent.html#device">device</a>().</p></div>
        #[inline(always)]
        pub unsafe fn velocity(&self) -> ::cpp_core::CppBox<crate::QVector2D> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_velocity(
                self as *const crate::q_touch_event::TouchPoint,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_touch_event::TouchPoint {
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QTouchEvent::TouchPoint::~TouchPoint()```</span>.
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_TouchPoint_dTouchPoint(
                self as *mut crate::q_touch_event::TouchPoint,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> class contains parameters that describe a touch event.</p>
///
/// C++ class: <span style='color: green;'>```QTouchEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtouchevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> class contains parameters that describe a touch event.</p>
/// <a name="enabling-touch-events"></a></div>
#[repr(C)]
pub struct QTouchEvent {
    _unused: u8,
}
impl QTouchEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> class contains parameters that describe a touch event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent& QTouchEvent::operator=(const QTouchEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> class contains parameters that describe a touch event.</p>
    /// <a name="enabling-touch-events"></a></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTouchEvent>>,
    ) -> ::cpp_core::MutRef<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_operator_(
            self as *mut crate::QTouchEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTouchEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the touch device from which this touch event originates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchDevice* QTouchEvent::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the touch device from which this touch event originates.</p></div>
    #[inline(always)]
    pub unsafe fn device(&self) -> ::cpp_core::MutPtr<crate::QTouchDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_device(self as *const crate::QTouchEvent);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::QTouchEvent(QEvent::Type eventType, QTouchDevice* device = …, QFlags<Qt::KeyboardModifier> modifiers = …, QFlags<Qt::TouchPointState> touchPointStates = …, const QList<QTouchEvent::TouchPoint>& touchPoints = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#QTouchEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p></div>
    #[inline(always)]
    pub unsafe fn new_5a(
        event_type: ::qt_core::q_event::Type,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTouchDevice>>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        touch_point_states: ::qt_core::QFlags<::qt_core::TouchPointState>,
        touch_points: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTouchPoint>>,
    ) -> ::cpp_core::CppBox<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_QTouchEvent(
            event_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTouchDevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            modifiers.to_int(),
            touch_point_states.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTouchPoint>>::cast_into(
                touch_points,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::QTouchEvent(QEvent::Type eventType, QTouchDevice* device = …, QFlags<Qt::KeyboardModifier> modifiers = …, QFlags<Qt::TouchPointState> touchPointStates = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#QTouchEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        event_type: ::qt_core::q_event::Type,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTouchDevice>>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
        touch_point_states: ::qt_core::QFlags<::qt_core::TouchPointState>,
    ) -> ::cpp_core::CppBox<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_QTouchEvent3(
            event_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTouchDevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            modifiers.to_int(),
            touch_point_states.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::QTouchEvent(QEvent::Type eventType, QTouchDevice* device = …, QFlags<Qt::KeyboardModifier> modifiers = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#QTouchEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        event_type: ::qt_core::q_event::Type,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTouchDevice>>,
        modifiers: ::qt_core::QFlags<::qt_core::KeyboardModifier>,
    ) -> ::cpp_core::CppBox<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_QTouchEvent4(
            event_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTouchDevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            modifiers.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::QTouchEvent(QEvent::Type eventType, QTouchDevice* device = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#QTouchEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        event_type: ::qt_core::q_event::Type,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTouchDevice>>,
    ) -> ::cpp_core::CppBox<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_QTouchEvent5(
            event_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTouchDevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::QTouchEvent(QEvent::Type eventType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#QTouchEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> with the given <i>eventType</i>, <i>device</i>, and <i>touchPoints</i>. The <i>touchPointStates</i> and <i>modifiers</i> are the current touch point states and keyboard modifiers at the time of the event.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        event_type: ::qt_core::q_event::Type,
    ) -> ::cpp_core::CppBox<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_QTouchEvent6(event_type);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> class contains parameters that describe a touch event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTouchEvent::QTouchEvent(const QTouchEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a> class contains parameters that describe a touch event.</p>
    /// <a name="enabling-touch-events"></a></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTouchEvent>>,
    ) -> ::cpp_core::CppBox<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_QTouchEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTouchEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::setDevice(QTouchDevice* adevice)```</span>.
    #[inline(always)]
    pub unsafe fn set_device(
        &mut self,
        adevice: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTouchDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_setDevice(
            self as *mut crate::QTouchEvent,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTouchDevice>>::cast_into(adevice)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::setTarget(QObject* atarget)```</span>.
    #[inline(always)]
    pub unsafe fn set_target(
        &mut self,
        atarget: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_setTarget(
            self as *mut crate::QTouchEvent,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(atarget)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::setTouchPointStates(QFlags<Qt::TouchPointState> aTouchPointStates)```</span>.
    #[inline(always)]
    pub unsafe fn set_touch_point_states(
        &mut self,
        a_touch_point_states: ::qt_core::QFlags<::qt_core::TouchPointState>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_setTouchPointStates(
            self as *mut crate::QTouchEvent,
            a_touch_point_states.to_int(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::setTouchPoints(const QList<QTouchEvent::TouchPoint>& atouchPoints)```</span>.
    #[inline(always)]
    pub unsafe fn set_touch_points(
        &mut self,
        atouch_points: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_setTouchPoints(
            self as *mut crate::QTouchEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTouchPoint>>::cast_into(
                atouch_points,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTouchEvent::setWindow(QWindow* awindow)```</span>.
    #[inline(always)]
    pub unsafe fn set_window(
        &mut self,
        awindow: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_setWindow(
            self as *mut crate::QTouchEvent,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(awindow)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the target object within the window on which the event occurred. This is typically a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or a <a href="http://doc.qt.io/qt-5/qquickitem.html">QQuickItem</a>. May be 0 when no specific target is available.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QObject* QTouchEvent::target() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#target">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the target object within the window on which the event occurred. This is typically a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or a <a href="http://doc.qt.io/qt-5/qquickitem.html">QQuickItem</a>. May be 0 when no specific target is available.</p></div>
    #[inline(always)]
    pub unsafe fn target(&self) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_target(self as *const crate::QTouchEvent);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a bitwise OR of all the touch point states for this event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::TouchPointState> QTouchEvent::touchPointStates() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#touchPointStates">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a bitwise OR of all the touch point states for this event.</p></div>
    #[inline(always)]
    pub unsafe fn touch_point_states(&self) -> ::qt_core::QFlags<::qt_core::TouchPointState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_touchPointStates(
            self as *const crate::QTouchEvent,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the list of touch points contained in the touch event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QList<QTouchEvent::TouchPoint>& QTouchEvent::touchPoints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#touchPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of touch points contained in the touch event.</p></div>
    #[inline(always)]
    pub unsafe fn touch_points(&self) -> ::cpp_core::Ref<crate::QListOfTouchPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_touchPoints(self as *const crate::QTouchEvent);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the window on which the event occurred. Useful for doing global-local mapping on data like rawScreenPositions() which, for performance reasons, only stores the global positions in the touch event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QTouchEvent::window() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#window">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window on which the event occurred. Useful for doing global-local mapping on data like rawScreenPositions() which, for performance reasons, only stores the global positions in the touch event.</p></div>
    #[inline(always)]
    pub unsafe fn window(&self) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_window(self as *const crate::QTouchEvent);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a> class is sent in preparation of scrolling.</p>
///
/// C++ class: <span style='color: green;'>```QScrollPrepareEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a> class is sent in preparation of scrolling.</p>
/// <p>The scroll prepare event is sent before scrolling (usually by <a href="http://doc.qt.io/qt-5/qscroller.html">QScroller</a>) is started. The object receiving this event should set <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#viewportSize">viewportSize</a>, maxContentPos and <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#contentPos">contentPos</a>. It also should accept this event to indicate that scrolling should be started.</p>
/// <p>It is not guaranteed that a <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> will be sent after an acceepted <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a>, e.g. in a case where the maximum content position is (0,0).</p></div>
#[repr(C)]
pub struct QScrollPrepareEvent {
    _unused: u8,
}
impl QScrollPrepareEvent {
    /// <p>Returns the current position of the content as set by <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setContentPos">setContentPos</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QScrollPrepareEvent::contentPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#contentPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current position of the content as set by <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setContentPos">setContentPos</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setContentPos">setContentPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn content_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_contentPos(
            self as *const crate::QScrollPrepareEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the range of coordinates for the content as set by <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setContentPosRange">setContentPosRange</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QScrollPrepareEvent::contentPosRange() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#contentPosRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the range of coordinates for the content as set by <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setContentPosRange">setContentPosRange</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setContentPosRange">setContentPosRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn content_pos_range(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_contentPosRange(
            self as *const crate::QScrollPrepareEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a> class is sent in preparation of scrolling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScrollPrepareEvent& QScrollPrepareEvent::operator=(const QScrollPrepareEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a> class is sent in preparation of scrolling.</p>
    /// <p>The scroll prepare event is sent before scrolling (usually by <a href="http://doc.qt.io/qt-5/qscroller.html">QScroller</a>) is started. The object receiving this event should set <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#viewportSize">viewportSize</a>, maxContentPos and <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#contentPos">contentPos</a>. It also should accept this event to indicate that scrolling should be started.</p>
    /// <p>It is not guaranteed that a <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> will be sent after an acceepted <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a>, e.g. in a case where the maximum content position is (0,0).</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QScrollPrepareEvent>>,
    ) -> ::cpp_core::MutRef<crate::QScrollPrepareEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_operator_(
            self as *mut crate::QScrollPrepareEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QScrollPrepareEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates new <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a> The <i>startPos</i> is the position of a touch or mouse event that started the scrolling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QScrollPrepareEvent::QScrollPrepareEvent(const QPointF& startPos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#QScrollPrepareEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates new <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a> The <i>startPos</i> is the position of a touch or mouse event that started the scrolling.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        start_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QScrollPrepareEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_QScrollPrepareEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(start_pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a> class is sent in preparation of scrolling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QScrollPrepareEvent::QScrollPrepareEvent(const QScrollPrepareEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a> class is sent in preparation of scrolling.</p>
    /// <p>The scroll prepare event is sent before scrolling (usually by <a href="http://doc.qt.io/qt-5/qscroller.html">QScroller</a>) is started. The object receiving this event should set <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#viewportSize">viewportSize</a>, maxContentPos and <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#contentPos">contentPos</a>. It also should accept this event to indicate that scrolling should be started.</p>
    /// <p>It is not guaranteed that a <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> will be sent after an acceepted <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html">QScrollPrepareEvent</a>, e.g. in a case where the maximum content position is (0,0).</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QScrollPrepareEvent>>,
    ) -> ::cpp_core::CppBox<crate::QScrollPrepareEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_QScrollPrepareEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QScrollPrepareEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the current content position to <i>pos</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QScrollPrepareEvent::setContentPos(const QPointF& pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setContentPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the current content position to <i>pos</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#contentPos">contentPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_content_pos(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_setContentPos(
            self as *mut crate::QScrollPrepareEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the range of content coordinates to <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QScrollPrepareEvent::setContentPosRange(const QRectF& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setContentPosRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the range of content coordinates to <i>rect</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#contentPosRange">contentPosRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_content_pos_range(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_setContentPosRange(
            self as *mut crate::QScrollPrepareEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the size of the area that is to be scrolled to <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QScrollPrepareEvent::setViewportSize(const QSizeF& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setViewportSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the area that is to be scrolled to <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#viewportSize">viewportSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_viewport_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_setViewportSize(
            self as *mut crate::QScrollPrepareEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the position of the touch or mouse event that started the scrolling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QScrollPrepareEvent::startPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#startPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the touch or mouse event that started the scrolling.</p></div>
    #[inline(always)]
    pub unsafe fn start_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_startPos(
            self as *const crate::QScrollPrepareEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns size of the area that is to be scrolled as set by <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setViewportSize">setViewportSize</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QScrollPrepareEvent::viewportSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#viewportSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns size of the area that is to be scrolled as set by <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setViewportSize">setViewportSize</a></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#setViewportSize">setViewportSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn viewport_size(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_viewportSize(
            self as *const crate::QScrollPrepareEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_scroll_event {
    //! C++ type: <span style='color: green;'>```QScrollEvent```</span>

    /// <p>This enum describes the states a scroll event can have.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QScrollEvent::ScrollState```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollevent.html#ScrollState-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the states a scroll event can have.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscrollevent.html#scrollState">QScrollEvent::scrollState</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ScrollState(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ScrollState {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ScrollState(value)
        }
    }

    impl From<ScrollState> for ::std::os::raw::c_int {
        fn from(value: ScrollState) -> Self {
            value.0
        }
    }

    impl ScrollState {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ScrollState {
        /// Set for the first scroll event of a scroll activity. (C++ enum variant: <span style='color: green;'>```ScrollStarted = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScrollStarted: crate::q_scroll_event::ScrollState =
            crate::q_scroll_event::ScrollState(0);
        /// Set for all but the first and the last scroll event of a scroll activity. (C++ enum variant: <span style='color: green;'>```ScrollUpdated = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScrollUpdated: crate::q_scroll_event::ScrollState =
            crate::q_scroll_event::ScrollState(1);
        /// Set for the last scroll event of a scroll activity. (C++ enum variant: <span style='color: green;'>```ScrollFinished = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScrollFinished: crate::q_scroll_event::ScrollState =
            crate::q_scroll_event::ScrollState(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> class is sent when scrolling.</p>
///
/// C++ class: <span style='color: green;'>```QScrollEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qscrollevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> class is sent when scrolling.</p>
/// <p>The scroll event is sent to indicate that the receiver should be scrolled. Usually the receiver should be something visual like <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or <a href="http://doc.qt.io/qt-5/qgraphicsobject.html">QGraphicsObject</a>.</p>
/// <p>Some care should be taken that no conflicting QScrollEvents are sent from two sources. Using <a href="http://doc.qt.io/qt-5/qscroller.html#scrollTo">QScroller::scrollTo</a> is save however.</p></div>
#[repr(C)]
pub struct QScrollEvent {
    _unused: u8,
}
impl QScrollEvent {
    /// <p>Returns the new scroll position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QScrollEvent::contentPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollevent.html#contentPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the new scroll position.</p></div>
    #[inline(always)]
    pub unsafe fn content_pos(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollEvent_contentPos(
            self as *const crate::QScrollEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> class is sent when scrolling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScrollEvent& QScrollEvent::operator=(const QScrollEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> class is sent when scrolling.</p>
    /// <p>The scroll event is sent to indicate that the receiver should be scrolled. Usually the receiver should be something visual like <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or <a href="http://doc.qt.io/qt-5/qgraphicsobject.html">QGraphicsObject</a>.</p>
    /// <p>Some care should be taken that no conflicting QScrollEvents are sent from two sources. Using <a href="http://doc.qt.io/qt-5/qscroller.html#scrollTo">QScroller::scrollTo</a> is save however.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QScrollEvent>>,
    ) -> ::cpp_core::MutRef<crate::QScrollEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollEvent_operator_(
            self as *mut crate::QScrollEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QScrollEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates a new <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> <i>contentPos</i> is the new content position, <i>overshootDistance</i> is the new overshoot distance while <i>scrollState</i> indicates if this scroll event is the first one, the last one or some event in between.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QScrollEvent::QScrollEvent(const QPointF& contentPos, const QPointF& overshoot, QScrollEvent::ScrollState scrollState)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollevent.html#QScrollEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> <i>contentPos</i> is the new content position, <i>overshootDistance</i> is the new overshoot distance while <i>scrollState</i> indicates if this scroll event is the first one, the last one or some event in between.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        content_pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        overshoot: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        scroll_state: crate::q_scroll_event::ScrollState,
    ) -> ::cpp_core::CppBox<crate::QScrollEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollEvent_QScrollEvent(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(content_pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(overshoot)
                .as_raw_ptr(),
            scroll_state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> class is sent when scrolling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QScrollEvent::QScrollEvent(const QScrollEvent& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a> class is sent when scrolling.</p>
    /// <p>The scroll event is sent to indicate that the receiver should be scrolled. Usually the receiver should be something visual like <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or <a href="http://doc.qt.io/qt-5/qgraphicsobject.html">QGraphicsObject</a>.</p>
    /// <p>Some care should be taken that no conflicting QScrollEvents are sent from two sources. Using <a href="http://doc.qt.io/qt-5/qscroller.html#scrollTo">QScroller::scrollTo</a> is save however.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QScrollEvent>>,
    ) -> ::cpp_core::CppBox<crate::QScrollEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollEvent_QScrollEvent2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QScrollEvent>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the new overshoot distance. See <a href="http://doc.qt.io/qt-5/qscroller.html">QScroller</a> for an explanation of the term overshoot.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QScrollEvent::overshootDistance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollevent.html#overshootDistance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the new overshoot distance. See <a href="http://doc.qt.io/qt-5/qscroller.html">QScroller</a> for an explanation of the term overshoot.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscroller.html">QScroller</a>.</p></div>
    #[inline(always)]
    pub unsafe fn overshoot_distance(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScrollEvent_overshootDistance(
            self as *const crate::QScrollEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current scroll state as a combination of ScrollStateFlag values. <a href="http://doc.qt.io/qt-5/qscrollevent.html#ScrollState-enum">ScrollStarted</a> (or <a href="http://doc.qt.io/qt-5/qscrollevent.html#ScrollState-enum">ScrollFinished</a>) will be set, if this scroll event is the first (or last) event in a scrolling activity. Please note that both values can be set at the same time, if the activity consists of a single <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a>. All other scroll events in between will have their state set to <a href="http://doc.qt.io/qt-5/qscrollevent.html#ScrollState-enum">ScrollUpdated</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScrollEvent::ScrollState QScrollEvent::scrollState() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollevent.html#scrollState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current scroll state as a combination of ScrollStateFlag values. <a href="http://doc.qt.io/qt-5/qscrollevent.html#ScrollState-enum">ScrollStarted</a> (or <a href="http://doc.qt.io/qt-5/qscrollevent.html#ScrollState-enum">ScrollFinished</a>) will be set, if this scroll event is the first (or last) event in a scrolling activity. Please note that both values can be set at the same time, if the activity consists of a single <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a>. All other scroll events in between will have their state set to <a href="http://doc.qt.io/qt-5/qscrollevent.html#ScrollState-enum">ScrollUpdated</a>.</p>
    /// <p>A widget could for example revert selections when scrolling is started and stopped.</p></div>
    #[inline(always)]
    pub unsafe fn scroll_state(&self) -> crate::q_scroll_event::ScrollState {
        crate::__ffi::ctr_qt_gui_ffi_QScrollEvent_scrollState(self as *const crate::QScrollEvent)
    }
}

/// C++ class: <span style='color: green;'>```QScreenOrientationChangeEvent```</span>.
#[repr(C)]
pub struct QScreenOrientationChangeEvent {
    _unused: u8,
}
impl QScreenOrientationChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QScreenOrientationChangeEvent& QScreenOrientationChangeEvent::operator=(const QScreenOrientationChangeEvent& other)```</span>.
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QScreenOrientationChangeEvent>>,
    ) -> ::cpp_core::MutRef<crate::QScreenOrientationChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreenOrientationChangeEvent_operator_(self as *mut crate::QScreenOrientationChangeEvent, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QScreenOrientationChangeEvent>>::cast_into(other).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates a new <a href="http://doc.qt.io/qt-5/qscreenorientationchangeevent.html">QScreenOrientationChangeEvent</a> <i>orientation</i> is the new orientation of the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QScreenOrientationChangeEvent::QScreenOrientationChangeEvent(QScreen* screen, Qt::ScreenOrientation orientation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreenorientationchangeevent.html#QScreenOrientationChangeEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new <a href="http://doc.qt.io/qt-5/qscreenorientationchangeevent.html">QScreenOrientationChangeEvent</a> <i>orientation</i> is the new orientation of the screen.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
        orientation: ::qt_core::ScreenOrientation,
    ) -> ::cpp_core::CppBox<crate::QScreenOrientationChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreenOrientationChangeEvent_QScreenOrientationChangeEvent(::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen).as_mut_raw_ptr(), orientation);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QScreenOrientationChangeEvent::QScreenOrientationChangeEvent(const QScreenOrientationChangeEvent& other)```</span>.
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QScreenOrientationChangeEvent>>,
    ) -> ::cpp_core::CppBox<crate::QScreenOrientationChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreenOrientationChangeEvent_QScreenOrientationChangeEvent2(::cpp_core::CastInto::<::cpp_core::Ref<crate::QScreenOrientationChangeEvent>>::cast_into(other).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the orientation of the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::ScreenOrientation QScreenOrientationChangeEvent::orientation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreenorientationchangeevent.html#orientation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the orientation of the screen.</p></div>
    #[inline(always)]
    pub unsafe fn orientation(&self) -> ::qt_core::ScreenOrientation {
        crate::__ffi::ctr_qt_gui_ffi_QScreenOrientationChangeEvent_orientation(
            self as *const crate::QScreenOrientationChangeEvent,
        )
    }

    /// <p>Returns the screen whose orientation changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen* QScreenOrientationChangeEvent::screen() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreenorientationchangeevent.html#screen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the screen whose orientation changed.</p></div>
    #[inline(always)]
    pub unsafe fn screen(&self) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreenOrientationChangeEvent_screen(
            self as *const crate::QScreenOrientationChangeEvent,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

/// C++ class: <span style='color: green;'>```QApplicationStateChangeEvent```</span>.
#[repr(C)]
pub struct QApplicationStateChangeEvent {
    _unused: u8,
}
impl QApplicationStateChangeEvent {
    /// <p>Returns the state of the application.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::ApplicationState QApplicationStateChangeEvent::applicationState() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qapplicationstatechangeevent.html#applicationState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the state of the application.</p></div>
    #[inline(always)]
    pub unsafe fn application_state(&self) -> ::qt_core::ApplicationState {
        crate::__ffi::ctr_qt_gui_ffi_QApplicationStateChangeEvent_applicationState(
            self as *const crate::QApplicationStateChangeEvent,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```QApplicationStateChangeEvent& QApplicationStateChangeEvent::operator=(const QApplicationStateChangeEvent& other)```</span>.
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QApplicationStateChangeEvent>>,
    ) -> ::cpp_core::MutRef<crate::QApplicationStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QApplicationStateChangeEvent_operator_(self as *mut crate::QApplicationStateChangeEvent, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QApplicationStateChangeEvent>>::cast_into(other).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates a new <a href="http://doc.qt.io/qt-5/qapplicationstatechangeevent.html">QApplicationStateChangeEvent</a>. <i>applicationState</i> is the new state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QApplicationStateChangeEvent::QApplicationStateChangeEvent(Qt::ApplicationState state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qapplicationstatechangeevent.html#QApplicationStateChangeEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new <a href="http://doc.qt.io/qt-5/qapplicationstatechangeevent.html">QApplicationStateChangeEvent</a>. <i>applicationState</i> is the new state.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        state: ::qt_core::ApplicationState,
    ) -> ::cpp_core::CppBox<crate::QApplicationStateChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QApplicationStateChangeEvent_QApplicationStateChangeEvent(
                state,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QApplicationStateChangeEvent::QApplicationStateChangeEvent(const QApplicationStateChangeEvent& other)```</span>.
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QApplicationStateChangeEvent>>,
    ) -> ::cpp_core::CppBox<crate::QApplicationStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QApplicationStateChangeEvent_QApplicationStateChangeEvent2(::cpp_core::CastInto::<::cpp_core::Ref<crate::QApplicationStateChangeEvent>>::cast_into(other).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_font {
    //! C++ type: <span style='color: green;'>```QFont```</span>

    /// <p>Style hints are used by the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm to find an appropriate default family if a selected font family is not available.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFont::StyleHint```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Style hints are used by the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm to find an appropriate default family if a selected font family is not available.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct StyleHint(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for StyleHint {
        fn from(value: ::std::os::raw::c_int) -> Self {
            StyleHint(value)
        }
    }

    impl From<StyleHint> for ::std::os::raw::c_int {
        fn from(value: StyleHint) -> Self {
            value.0
        }
    }

    impl StyleHint {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl StyleHint {
        /// is a synonym for <code>SansSerif</code>. (C++ enum variant: <span style='color: green;'>```Helvetica = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Helvetica: crate::q_font::StyleHint = crate::q_font::StyleHint(0);
        /// the font matcher prefer sans serif fonts. (C++ enum variant: <span style='color: green;'>```SansSerif = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const SansSerif: crate::q_font::StyleHint = crate::q_font::StyleHint(0);
        /// is a synonym for <code>Serif</code>. (C++ enum variant: <span style='color: green;'>```Times = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Times: crate::q_font::StyleHint = crate::q_font::StyleHint(1);
        /// the font matcher prefers serif fonts. (C++ enum variant: <span style='color: green;'>```Serif = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Serif: crate::q_font::StyleHint = crate::q_font::StyleHint(1);
        /// a synonym for <code>TypeWriter</code>. (C++ enum variant: <span style='color: green;'>```Courier = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Courier: crate::q_font::StyleHint = crate::q_font::StyleHint(2);
        /// the font matcher prefers fixed pitch fonts. (C++ enum variant: <span style='color: green;'>```TypeWriter = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const TypeWriter: crate::q_font::StyleHint = crate::q_font::StyleHint(2);
        /// the font matcher prefers decorative fonts. (C++ enum variant: <span style='color: green;'>```OldEnglish = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const OldEnglish: crate::q_font::StyleHint = crate::q_font::StyleHint(3);
        /// is a synonym for <code>OldEnglish</code>. (C++ enum variant: <span style='color: green;'>```Decorative = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Decorative: crate::q_font::StyleHint = crate::q_font::StyleHint(3);
        /// the font matcher prefers system fonts. (C++ enum variant: <span style='color: green;'>```System = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const System: crate::q_font::StyleHint = crate::q_font::StyleHint(4);
        /// leaves the font matching algorithm to choose the family. This is the default. (C++ enum variant: <span style='color: green;'>```AnyStyle = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnyStyle: crate::q_font::StyleHint = crate::q_font::StyleHint(5);
        /// the font matcher prefers fonts that map to the CSS generic font-family 'cursive'. (C++ enum variant: <span style='color: green;'>```Cursive = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cursive: crate::q_font::StyleHint = crate::q_font::StyleHint(6);
        /// the font matcher prefers fonts that map to the CSS generic font-family 'monospace'. (C++ enum variant: <span style='color: green;'>```Monospace = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const Monospace: crate::q_font::StyleHint = crate::q_font::StyleHint(7);
        /// the font matcher prefers fonts that map to the CSS generic font-family 'fantasy'. (C++ enum variant: <span style='color: green;'>```Fantasy = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Fantasy: crate::q_font::StyleHint = crate::q_font::StyleHint(8);
    }

    /// <p>The style strategy tells the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm what type of fonts should be used to find an appropriate default family.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFont::StyleStrategy```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The style strategy tells the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm what type of fonts should be used to find an appropriate default family.</p>
    /// <p>The following strategies are available:</p>
    ///
    /// <p>Any of these may be OR-ed with one of these flags:</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct StyleStrategy(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for StyleStrategy {
        fn from(value: ::std::os::raw::c_int) -> Self {
            StyleStrategy(value)
        }
    }

    impl From<StyleStrategy> for ::std::os::raw::c_int {
        fn from(value: StyleStrategy) -> Self {
            value.0
        }
    }

    impl StyleStrategy {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl StyleStrategy {
        /// the default style strategy. It does not prefer any type of font. (C++ enum variant: <span style='color: green;'>```PreferDefault = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferDefault: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(1);
        /// prefers bitmap fonts (as opposed to outline fonts). (C++ enum variant: <span style='color: green;'>```PreferBitmap = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferBitmap: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(2);
        /// prefers device fonts. (C++ enum variant: <span style='color: green;'>```PreferDevice = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferDevice: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(4);
        /// prefers outline fonts (as opposed to bitmap fonts). (C++ enum variant: <span style='color: green;'>```PreferOutline = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferOutline: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(8);
        /// forces the use of outline fonts. (C++ enum variant: <span style='color: green;'>```ForceOutline = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const ForceOutline: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(16);
        /// prefer an exact match. The font matcher will try to use the exact font size that has been specified. (C++ enum variant: <span style='color: green;'>```PreferMatch = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferMatch: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(32);
        /// prefer the best quality font. The font matcher will use the nearest standard point size that the font supports. (C++ enum variant: <span style='color: green;'>```PreferQuality = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferQuality: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(64);
        /// antialias if possible. (C++ enum variant: <span style='color: green;'>```PreferAntialias = 128```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferAntialias: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(128);
        /// don't antialias the fonts. (C++ enum variant: <span style='color: green;'>```NoAntialias = 256```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoAntialias: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(256);
        /// forces the use of OpenGL compatible fonts. (C++ enum variant: <span style='color: green;'>```OpenGLCompatible = 512```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenGLCompatible: crate::q_font::StyleStrategy =
            crate::q_font::StyleStrategy(512);
        /// forces the use of integer values in font engines that support fractional font metrics. (C++ enum variant: <span style='color: green;'>```ForceIntegerMetrics = 1024```</span>)
        #[allow(non_upper_case_globals)]
        pub const ForceIntegerMetrics: crate::q_font::StyleStrategy =
            crate::q_font::StyleStrategy(1024);
        /// avoid subpixel antialiasing on the fonts if possible. (C++ enum variant: <span style='color: green;'>```NoSubpixelAntialias = 2048```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoSubpixelAntialias: crate::q_font::StyleStrategy =
            crate::q_font::StyleStrategy(2048);
        /// If the font selected for a certain writing system does not contain a character requested to draw, then Qt automatically chooses a similar looking font that contains the character. The NoFontMerging flag disables this feature. Please note that enabling this flag will not prevent Qt from automatically picking a suitable font when the selected font does not support the writing system of the text. (C++ enum variant: <span style='color: green;'>```NoFontMerging = 32768```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoFontMerging: crate::q_font::StyleStrategy = crate::q_font::StyleStrategy(32768);
        /// Sometimes, a font will apply complex rules to a set of characters in order to display them correctly. In some writing systems, such as Brahmic scripts, this is required in order for the text to be legible, but in e.g. Latin script, it is merely a cosmetic feature. The PreferNoShaping flag will disable all such features when they are not required, which will improve performance in most cases (since Qt 5.10). (C++ enum variant: <span style='color: green;'>```PreferNoShaping = 4096```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferNoShaping: crate::q_font::StyleStrategy =
            crate::q_font::StyleStrategy(4096);
    }

    /// <p>This enum describes the different levels of hinting that can be applied to glyphs to improve legibility on displays where it might be warranted by the density of pixels.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFont::HintingPreference```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#HintingPreference-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different levels of hinting that can be applied to glyphs to improve legibility on displays where it might be warranted by the density of pixels.</p>
    ///
    /// <p>Please note that this enum only describes a preference, as the full range of hinting levels are not supported on all of Qt's supported platforms. The following table details the effect of a given hinting preference on a selected set of target platforms.</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th></th><th>PreferDefaultHinting</th><th>PreferNoHinting</th><th>PreferVerticalHinting</th><th>PreferFullHinting</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>Windows Vista (w/o Platform Update) and earlier</td><td>Full hinting</td><td>Full hinting</td><td>Full hinting</td><td>Full hinting</td></tr>
    /// <tr valign="top" class="even"><td>Windows 7 and Windows Vista (w/Platform Update) and DirectWrite enabled in Qt</td><td>Full hinting</td><td>Vertical hinting</td><td>Vertical hinting</td><td>Full hinting</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qtgui-attribution-freetype.html#freetype">FreeType</a></td><td>Operating System setting</td><td>No hinting</td><td>Vertical hinting (light)</td><td>Full hinting</td></tr>
    /// <tr valign="top" class="even"><td>Cocoa on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a></td><td>No hinting</td><td>No hinting</td><td>No hinting</td><td>No hinting</td></tr>
    /// </tbody></table></div>
    /// <p><b>Note: </b>Please be aware that altering the hinting preference on Windows is available through the DirectWrite font engine. This is available on Windows Vista after installing the platform update, and on Windows 7. In order to use this extension, configure Qt using -directwrite. The target application will then depend on the availability of DirectWrite on the target system.</p><p>This enum was introduced or modified in  Qt 4.8.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct HintingPreference(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for HintingPreference {
        fn from(value: ::std::os::raw::c_int) -> Self {
            HintingPreference(value)
        }
    }

    impl From<HintingPreference> for ::std::os::raw::c_int {
        fn from(value: HintingPreference) -> Self {
            value.0
        }
    }

    impl HintingPreference {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl HintingPreference {
        /// Use the default hinting level for the target platform. (C++ enum variant: <span style='color: green;'>```PreferDefaultHinting = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferDefaultHinting: crate::q_font::HintingPreference =
            crate::q_font::HintingPreference(0);
        /// If possible, render text without hinting the outlines of the glyphs. The text layout will be typographically accurate and scalable, using the same metrics as are used e.g. when printing. (C++ enum variant: <span style='color: green;'>```PreferNoHinting = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferNoHinting: crate::q_font::HintingPreference =
            crate::q_font::HintingPreference(1);
        /// If possible, render text with no horizontal hinting, but align glyphs to the pixel grid in the vertical direction. The text will appear crisper on displays where the density is too low to give an accurate rendering of the glyphs. But since the horizontal metrics of the glyphs are unhinted, the text's layout will be scalable to higher density devices (such as printers) without impacting details such as line breaks. (C++ enum variant: <span style='color: green;'>```PreferVerticalHinting = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferVerticalHinting: crate::q_font::HintingPreference =
            crate::q_font::HintingPreference(2);
        /// If possible, render text with hinting in both horizontal and vertical directions. The text will be altered to optimize legibility on the target device, but since the metrics will depend on the target size of the text, the positions of glyphs, line breaks, and other typographical detail will not scale, meaning that a text layout may look different on devices with different pixel densities. (C++ enum variant: <span style='color: green;'>```PreferFullHinting = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreferFullHinting: crate::q_font::HintingPreference =
            crate::q_font::HintingPreference(3);
    }

    /// <p>Qt uses a weighting scale from 0 to 99 similar to, but not the same as, the scales used in Windows or CSS. A weight of 0 will be thin, whilst 99 will be extremely black.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFont::Weight```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Qt uses a weighting scale from 0 to 99 similar to, but not the same as, the scales used in Windows or CSS. A weight of 0 will be thin, whilst 99 will be extremely black.</p>
    /// <p>This enum contains the predefined font weights:</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Weight(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Weight {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Weight(value)
        }
    }

    impl From<Weight> for ::std::os::raw::c_int {
        fn from(value: Weight) -> Self {
            value.0
        }
    }

    impl Weight {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Weight {
        /// 0 (C++ enum variant: <span style='color: green;'>```Thin = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Thin: crate::q_font::Weight = crate::q_font::Weight(0);
        /// 12 (C++ enum variant: <span style='color: green;'>```ExtraLight = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExtraLight: crate::q_font::Weight = crate::q_font::Weight(12);
        /// 25 (C++ enum variant: <span style='color: green;'>```Light = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const Light: crate::q_font::Weight = crate::q_font::Weight(25);
        /// 50 (C++ enum variant: <span style='color: green;'>```Normal = 50```</span>)
        #[allow(non_upper_case_globals)]
        pub const Normal: crate::q_font::Weight = crate::q_font::Weight(50);
        /// 57 (C++ enum variant: <span style='color: green;'>```Medium = 57```</span>)
        #[allow(non_upper_case_globals)]
        pub const Medium: crate::q_font::Weight = crate::q_font::Weight(57);
        /// 63 (C++ enum variant: <span style='color: green;'>```DemiBold = 63```</span>)
        #[allow(non_upper_case_globals)]
        pub const DemiBold: crate::q_font::Weight = crate::q_font::Weight(63);
        /// 75 (C++ enum variant: <span style='color: green;'>```Bold = 75```</span>)
        #[allow(non_upper_case_globals)]
        pub const Bold: crate::q_font::Weight = crate::q_font::Weight(75);
        /// 81 (C++ enum variant: <span style='color: green;'>```ExtraBold = 81```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExtraBold: crate::q_font::Weight = crate::q_font::Weight(81);
        /// 87 (C++ enum variant: <span style='color: green;'>```Black = 87```</span>)
        #[allow(non_upper_case_globals)]
        pub const Black: crate::q_font::Weight = crate::q_font::Weight(87);
    }

    /// <p>This enum describes the different styles of glyphs that are used to display text.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFont::Style```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#Style-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different styles of glyphs that are used to display text.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">Weight</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Style(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Style {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Style(value)
        }
    }

    impl From<Style> for ::std::os::raw::c_int {
        fn from(value: Style) -> Self {
            value.0
        }
    }

    impl Style {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Style {
        /// Normal glyphs used in unstyled text. (C++ enum variant: <span style='color: green;'>```StyleNormal = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const StyleNormal: crate::q_font::Style = crate::q_font::Style(0);
        /// Italic glyphs that are specifically designed for the purpose of representing italicized text. (C++ enum variant: <span style='color: green;'>```StyleItalic = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const StyleItalic: crate::q_font::Style = crate::q_font::Style(1);
        /// Glyphs with an italic appearance that are typically based on the unstyled glyphs, but are not fine-tuned for the purpose of representing italicized text. (C++ enum variant: <span style='color: green;'>```StyleOblique = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const StyleOblique: crate::q_font::Style = crate::q_font::Style(2);
    }

    /// <p>Predefined stretch values that follow the CSS naming convention. The higher the value, the more stretched the text is.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFont::Stretch```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#Stretch-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Predefined stretch values that follow the CSS naming convention. The higher the value, the more stretched the text is.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setStretch">setStretch</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#stretch">stretch</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Stretch(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Stretch {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Stretch(value)
        }
    }

    impl From<Stretch> for ::std::os::raw::c_int {
        fn from(value: Stretch) -> Self {
            value.0
        }
    }

    impl Stretch {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Stretch {
        /// 0 Accept any stretch matched using the other <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> properties (added in Qt 5.8) (C++ enum variant: <span style='color: green;'>```AnyStretch = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnyStretch: crate::q_font::Stretch = crate::q_font::Stretch(0);
        /// 50 (C++ enum variant: <span style='color: green;'>```UltraCondensed = 50```</span>)
        #[allow(non_upper_case_globals)]
        pub const UltraCondensed: crate::q_font::Stretch = crate::q_font::Stretch(50);
        /// 62 (C++ enum variant: <span style='color: green;'>```ExtraCondensed = 62```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExtraCondensed: crate::q_font::Stretch = crate::q_font::Stretch(62);
        /// 75 (C++ enum variant: <span style='color: green;'>```Condensed = 75```</span>)
        #[allow(non_upper_case_globals)]
        pub const Condensed: crate::q_font::Stretch = crate::q_font::Stretch(75);
        /// 87 (C++ enum variant: <span style='color: green;'>```SemiCondensed = 87```</span>)
        #[allow(non_upper_case_globals)]
        pub const SemiCondensed: crate::q_font::Stretch = crate::q_font::Stretch(87);
        /// 100 (C++ enum variant: <span style='color: green;'>```Unstretched = 100```</span>)
        #[allow(non_upper_case_globals)]
        pub const Unstretched: crate::q_font::Stretch = crate::q_font::Stretch(100);
        /// 112 (C++ enum variant: <span style='color: green;'>```SemiExpanded = 112```</span>)
        #[allow(non_upper_case_globals)]
        pub const SemiExpanded: crate::q_font::Stretch = crate::q_font::Stretch(112);
        /// 125 (C++ enum variant: <span style='color: green;'>```Expanded = 125```</span>)
        #[allow(non_upper_case_globals)]
        pub const Expanded: crate::q_font::Stretch = crate::q_font::Stretch(125);
        /// 150 (C++ enum variant: <span style='color: green;'>```ExtraExpanded = 150```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExtraExpanded: crate::q_font::Stretch = crate::q_font::Stretch(150);
        /// 200 (C++ enum variant: <span style='color: green;'>```UltraExpanded = 200```</span>)
        #[allow(non_upper_case_globals)]
        pub const UltraExpanded: crate::q_font::Stretch = crate::q_font::Stretch(200);
    }

    /// <p>Rendering option for text this font applies to.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFont::Capitalization```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#Capitalization-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rendering option for text this font applies to.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.4.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Capitalization(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Capitalization {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Capitalization(value)
        }
    }

    impl From<Capitalization> for ::std::os::raw::c_int {
        fn from(value: Capitalization) -> Self {
            value.0
        }
    }

    impl Capitalization {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Capitalization {
        /// This is the normal text rendering option where no capitalization change is applied. (C++ enum variant: <span style='color: green;'>```MixedCase = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const MixedCase: crate::q_font::Capitalization = crate::q_font::Capitalization(0);
        /// This alters the text to be rendered in all uppercase type. (C++ enum variant: <span style='color: green;'>```AllUppercase = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AllUppercase: crate::q_font::Capitalization = crate::q_font::Capitalization(1);
        /// This alters the text to be rendered in all lowercase type. (C++ enum variant: <span style='color: green;'>```AllLowercase = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const AllLowercase: crate::q_font::Capitalization = crate::q_font::Capitalization(2);
        /// This alters the text to be rendered in small-caps type. (C++ enum variant: <span style='color: green;'>```SmallCaps = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const SmallCaps: crate::q_font::Capitalization = crate::q_font::Capitalization(3);
        /// This alters the text to be rendered with the first character of each word as an uppercase character. (C++ enum variant: <span style='color: green;'>```Capitalize = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Capitalize: crate::q_font::Capitalization = crate::q_font::Capitalization(4);
    }

    /// <p>This enum was introduced or modified in  Qt 4.4.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFont::SpacingType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#SpacingType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum was introduced or modified in  Qt 4.4.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SpacingType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SpacingType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SpacingType(value)
        }
    }

    impl From<SpacingType> for ::std::os::raw::c_int {
        fn from(value: SpacingType) -> Self {
            value.0
        }
    }

    impl SpacingType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SpacingType {
        /// A value of 100 will keep the spacing unchanged; a value of 200 will enlarge the spacing after a character by the width of the character itself. (C++ enum variant: <span style='color: green;'>```PercentageSpacing = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const PercentageSpacing: crate::q_font::SpacingType = crate::q_font::SpacingType(0);
        /// A positive value increases the letter spacing by the corresponding pixels; a negative value decreases the spacing. (C++ enum variant: <span style='color: green;'>```AbsoluteSpacing = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AbsoluteSpacing: crate::q_font::SpacingType = crate::q_font::SpacingType(1);
    }

    /// C++ enum: <span style='color: green;'>```QFont::ResolveProperties```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ResolveProperties(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ResolveProperties {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ResolveProperties(value)
        }
    }

    impl From<ResolveProperties> for ::std::os::raw::c_int {
        fn from(value: ResolveProperties) -> Self {
            value.0
        }
    }

    impl ResolveProperties {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ResolveProperties {
        /// C++ enum variant: <span style='color: green;'>```FamilyResolved = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const FamilyResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(1);
        /// C++ enum variant: <span style='color: green;'>```SizeResolved = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const SizeResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(2);
        /// C++ enum variant: <span style='color: green;'>```StyleHintResolved = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const StyleHintResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(4);
        /// C++ enum variant: <span style='color: green;'>```StyleStrategyResolved = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const StyleStrategyResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(8);
        /// C++ enum variant: <span style='color: green;'>```WeightResolved = 16```</span>
        #[allow(non_upper_case_globals)]
        pub const WeightResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(16);
        /// C++ enum variant: <span style='color: green;'>```StyleResolved = 32```</span>
        #[allow(non_upper_case_globals)]
        pub const StyleResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(32);
        /// C++ enum variant: <span style='color: green;'>```UnderlineResolved = 64```</span>
        #[allow(non_upper_case_globals)]
        pub const UnderlineResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(64);
        /// C++ enum variant: <span style='color: green;'>```OverlineResolved = 128```</span>
        #[allow(non_upper_case_globals)]
        pub const OverlineResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(128);
        /// C++ enum variant: <span style='color: green;'>```StrikeOutResolved = 256```</span>
        #[allow(non_upper_case_globals)]
        pub const StrikeOutResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(256);
        /// C++ enum variant: <span style='color: green;'>```FixedPitchResolved = 512```</span>
        #[allow(non_upper_case_globals)]
        pub const FixedPitchResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(512);
        /// C++ enum variant: <span style='color: green;'>```StretchResolved = 1024```</span>
        #[allow(non_upper_case_globals)]
        pub const StretchResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(1024);
        /// C++ enum variant: <span style='color: green;'>```KerningResolved = 2048```</span>
        #[allow(non_upper_case_globals)]
        pub const KerningResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(2048);
        /// C++ enum variant: <span style='color: green;'>```CapitalizationResolved = 4096```</span>
        #[allow(non_upper_case_globals)]
        pub const CapitalizationResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(4096);
        /// C++ enum variant: <span style='color: green;'>```LetterSpacingResolved = 8192```</span>
        #[allow(non_upper_case_globals)]
        pub const LetterSpacingResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(8192);
        /// C++ enum variant: <span style='color: green;'>```WordSpacingResolved = 16384```</span>
        #[allow(non_upper_case_globals)]
        pub const WordSpacingResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(16384);
        /// C++ enum variant: <span style='color: green;'>```HintingPreferenceResolved = 32768```</span>
        #[allow(non_upper_case_globals)]
        pub const HintingPreferenceResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(32768);
        /// C++ enum variant: <span style='color: green;'>```StyleNameResolved = 65536```</span>
        #[allow(non_upper_case_globals)]
        pub const StyleNameResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(65536);
        /// C++ enum variant: <span style='color: green;'>```AllPropertiesResolved = 131071```</span>
        #[allow(non_upper_case_globals)]
        pub const AllPropertiesResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(131071);
        /// C++ enum variant: <span style='color: green;'>```FamiliesResolved = 131072```</span>
        #[allow(non_upper_case_globals)]
        pub const FamiliesResolved: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(131072);
        /// C++ enum variant: <span style='color: green;'>```AllPropertiesResolved = 262143```</span>
        #[allow(non_upper_case_globals)]
        pub const AllPropertiesResolved2: crate::q_font::ResolveProperties =
            crate::q_font::ResolveProperties(262143);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> class specifies a font used for drawing text.</p>
///
/// C++ class: <span style='color: green;'>```QFont```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfont.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> class specifies a font used for drawing text.</p>
/// <p>When you create a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> object you specify various attributes that you want the font to have. Qt will use the font with the specified attributes, or if no matching font exists, Qt will use the closest matching installed font. The attributes of the font that is actually used are retrievable from a <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> object. If the window system provides an exact match <a href="http://doc.qt.io/qt-5/qfont.html#exactMatch">exactMatch</a>() returns <code>true</code>. Use <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a> to get measurements, e.g. the pixel length of a string using <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">QFontMetrics::width</a>().</p>
/// <p>Note that a <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> instance must exist before a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> can be used. You can set the application's default font with <a href="http://doc.qt.io/qt-5/qguiapplication.html#setFont">QGuiApplication::setFont</a>().</p>
/// <p>If a chosen font does not include all the characters that need to be displayed, <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> will try to find the characters in the nearest equivalent fonts. When a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws a character from a font the <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> will report whether or not it has the character; if it does not, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> will draw an unfilled square.</p>
/// <p>Create QFonts like this:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html#QFont">QFont</a></span> serifFont(<span class="string">"Times"</span><span class="operator">,</span> <span class="number">10</span><span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html#QFont">QFont</a></span><span class="operator">::</span>Bold);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html#QFont">QFont</a></span> sansFont(<span class="string">"Helvetica [Cronyx]"</span><span class="operator">,</span> <span class="number">12</span>);
///
/// </pre>
/// <p>The attributes set in the constructor can also be set later, e.g. <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setPointSizeF">setPointSizeF</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setWeight">setWeight</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#setItalic">setItalic</a>(). The remaining attributes must be set after contstruction, e.g. <a href="http://doc.qt.io/qt-5/qfont.html#setBold">setBold</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setUnderline">setUnderline</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setOverline">setOverline</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setStrikeOut">setStrikeOut</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#setFixedPitch">setFixedPitch</a>(). <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> objects should be created <i>after</i> the font's attributes have been set. A <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> object will not change, even if you change the font's attributes. The corresponding "get" functions, e.g. <a href="http://doc.qt.io/qt-5/qfont.html#family">family</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#pointSize">pointSize</a>(), etc., return the values that were set, even though the values used may differ. The actual values are available from a <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> object.</p>
/// <p>If the requested font family is unavailable you can influence the <a href="http://doc.qt.io/qt-5/qfont.html#fontmatching">font matching algorithm</a> by choosing a particular <a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">QFont::StyleHint</a> and <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">QFont::StyleStrategy</a> with <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(). The default family (corresponding to the current style hint) is returned by <a href="http://doc.qt.io/qt-5/qfont.html#defaultFamily">defaultFamily</a>().</p>
/// <p>The font-matching algorithm has a <a href="http://doc.qt.io/qt-5/qfont.html#lastResortFamily">lastResortFamily</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#lastResortFont">lastResortFont</a>() in cases where a suitable match cannot be found. You can provide substitutions for font family names using <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitution">insertSubstitution</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitutions">insertSubstitutions</a>(). Substitutions can be removed with <a href="http://doc.qt.io/qt-5/qfont.html#removeSubstitutions">removeSubstitutions</a>(). Use <a href="http://doc.qt.io/qt-5/qfont.html#substitute">substitute</a>() to retrieve a family's first substitute, or the family name itself if it has no substitutes. Use <a href="http://doc.qt.io/qt-5/qfont.html#substitutes">substitutes</a>() to retrieve a list of a family's substitutes (which may be empty).</p>
/// <p>Every <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> has a <a href="http://doc.qt.io/qt-5/qfont.html#key">key</a>() which you can use, for example, as the key in a cache or dictionary. If you want to store a user's font preferences you could use <a href="http://doc.qt.io/qt-5/qsettings.html">QSettings</a>, writing the font information with <a href="http://doc.qt.io/qt-5/qfont.html#toString">toString</a>() and reading it back with <a href="http://doc.qt.io/qt-5/qfont.html#fromString">fromString</a>(). The operator&lt;&lt;() and operator&gt;&gt;() functions are also available, but they work on a data stream.</p>
/// <p>It is possible to set the height of characters shown on the screen to a specified number of pixels with <a href="http://doc.qt.io/qt-5/qfont.html#setPixelSize">setPixelSize</a>(); however using <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>() has a similar effect and provides device independence.</p>
/// <p>Loading fonts can be expensive, especially on X11. <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> contains extensive optimizations to make the copying of <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> objects fast, and to cache the results of the slow window system functions it depends upon.</p>
/// <a name="fontmatching"></a><p>The font matching algorithm works as follows:</p>
/// <ol class="1" type="1"><li>The specified font family is searched for.</li>
/// <li>If not found, the <a href="http://doc.qt.io/qt-5/qfont.html#styleHint">styleHint</a>() is used to select a replacement family.</li>
/// <li>Each replacement font family is searched for.</li>
/// <li>If none of these are found or there was no <a href="http://doc.qt.io/qt-5/qfont.html#styleHint">styleHint</a>(), "helvetica" will be searched for.</li>
/// <li>If "helvetica" isn't found Qt will try the <a href="http://doc.qt.io/qt-5/qfont.html#lastResortFamily">lastResortFamily</a>().</li>
/// <li>If the <a href="http://doc.qt.io/qt-5/qfont.html#lastResortFamily">lastResortFamily</a>() isn't found Qt will try the <a href="http://doc.qt.io/qt-5/qfont.html#lastResortFont">lastResortFont</a>() which will always return a name of some kind.</li>
/// </ol>
/// <p>Note that the actual font matching algorithm varies from platform to platform.</p>
/// <p>In Windows a request for the "Courier" font is automatically changed to "Courier New", an improved version of Courier that allows for smooth scaling. The older "Courier" bitmap font can be selected by setting the <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">PreferBitmap</a> style strategy (see <a href="http://doc.qt.io/qt-5/qfont.html#setStyleStrategy">setStyleStrategy</a>()).</p>
/// <p>Once a font is found, the remaining attributes are matched in order of priority:</p>
/// <ol class="1" type="1"><li><a href="http://doc.qt.io/qt-5/qfont.html#fixedPitch">fixedPitch</a>()</li>
/// <li><a href="http://doc.qt.io/qt-5/qfont.html#pointSize">pointSize</a>() (see below)</li>
/// <li><a href="http://doc.qt.io/qt-5/qfont.html#weight">weight</a>()</li>
/// <li><a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>()</li>
/// </ol>
/// <p>If you have a font which matches on family, even if none of the other attributes match, this font will be chosen in preference to a font which doesn't match on family but which does match on the other attributes. This is because font family is the dominant search criteria.</p>
/// <p>The point size is defined to match if it is within 20% of the requested point size. When several fonts match and are only distinguished by point size, the font with the closest point size to the one requested will be chosen.</p>
/// <p>The actual family, font size, weight and other font attributes used for drawing text will depend on what's available for the chosen family under the window system. A <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> object can be used to determine the actual values used for drawing the text.</p>
/// <p>Examples:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html#QFont">QFont</a></span> f(<span class="string">"Helvetica"</span>);
///
/// </pre>
/// <p>If you had both an Adobe and a Cronyx Helvetica, you might get either.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html#QFont">QFont</a></span> f(<span class="string">"Helvetica [Cronyx]"</span>);
///
/// </pre>
/// <p>You can specify the foundry you want in the family name. The font f in the above example will be set to "Helvetica [Cronyx]".</p>
/// <p>To determine the attributes of the font actually used in the window system, use a <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> object, e.g.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a></span> info(f1);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> family <span class="operator">=</span> info<span class="operator">.</span>family();
///
/// </pre>
/// <p>To find out font metrics use a <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a> object, e.g.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a></span> fm(f1);
///   <span class="type">int</span> textWidthInPixels <span class="operator">=</span> fm<span class="operator">.</span>width(<span class="string">"How many pixels wide is this text?"</span>);
///   <span class="type">int</span> textHeightInPixels <span class="operator">=</span> fm<span class="operator">.</span>height();
///
/// </pre>
/// <p>For more general information on fonts, see the <a href="http://nwalsh.com/comp.fonts/FAQ/">comp.fonts FAQ</a>. Information on encodings can be found from <a href="http://czyborra.com/">Roman Czyborra's</a> page.</p></div>
#[repr(C)]
pub struct QFont {
    _unused: u8,
}
impl QFont {
    /// <p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qfont.html#weight">weight</a>() is a value greater than <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Medium</a>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::bold() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#bold">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qfont.html#weight">weight</a>() is a value greater than <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Medium</a>; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#weight">weight</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setBold">setBold</a>(), and <a href="http://doc.qt.io/qt-5/qfontinfo.html#bold">QFontInfo::bold</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bold(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_bold(self as *const crate::QFont)
    }

    /// Calls C++ function: <span style='color: green;'>```static void QFont::cacheStatistics()```</span>.
    #[inline(always)]
    pub unsafe fn cache_statistics() {
        crate::__ffi::ctr_qt_gui_ffi_QFont_cacheStatistics()
    }

    /// <p>Returns the current capitalization type of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::Capitalization QFont::capitalization() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#capitalization">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current capitalization type of the font.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setCapitalization">setCapitalization</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capitalization(&self) -> crate::q_font::Capitalization {
        crate::__ffi::ctr_qt_gui_ffi_QFont_capitalization(self as *const crate::QFont)
    }

    /// Calls C++ function: <span style='color: green;'>```static void QFont::cleanup()```</span>.
    #[inline(always)]
    pub unsafe fn cleanup() {
        crate::__ffi::ctr_qt_gui_ffi_QFont_cleanup()
    }

    /// <p>Assigns <i>font</i> to this font and returns a reference to it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont& QFont::operator=(const QFont& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>font</i> to this font and returns a reference to it.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::MutRef<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_operator_(
            self as *mut crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the family name that corresponds to the current style hint.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFont::defaultFamily() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#defaultFamily">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the family name that corresponds to the current style hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">StyleHint</a>, <a href="http://doc.qt.io/qt-5/qfont.html#styleHint">styleHint</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn default_family(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFont_defaultFamily(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if a window system font exactly matching the settings of this font is available.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::exactMatch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#exactMatch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if a window system font exactly matching the settings of this font is available.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn exact_match(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_exactMatch(self as *const crate::QFont)
    }

    /// <p>Returns the requested font family names, i.e. the names set in the last <a href="http://doc.qt.io/qt-5/qfont.html#setFamilies">setFamilies</a>() call or via the constructor. Otherwise it returns an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QFont::families() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#families">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the requested font family names, i.e. the names set in the last <a href="http://doc.qt.io/qt-5/qfont.html#setFamilies">setFamilies</a>() call or via the constructor. Otherwise it returns an empty list.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setFamilies">setFamilies</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#family">family</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#substitutes">substitutes</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#substitute">substitute</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn families(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_families(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the requested font family name, i.e. the name set in the constructor or the last setFont() call.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFont::family() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#family">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the requested font family name, i.e. the name set in the constructor or the last setFont() call.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#substitutes">substitutes</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#substitute">substitute</a>().</p></div>
    #[inline(always)]
    pub unsafe fn family(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_family(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if fixed pitch has been set; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::fixedPitch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#fixedPitch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if fixed pitch has been set; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setFixedPitch">setFixedPitch</a>() and <a href="http://doc.qt.io/qt-5/qfontinfo.html#fixedPitch">QFontInfo::fixedPitch</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fixed_pitch(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_fixedPitch(self as *const crate::QFont)
    }

    /// <p>Sets this font to match the description <i>descrip</i>. The description is a comma-separated list of the font attributes, as returned by <a href="http://doc.qt.io/qt-5/qfont.html#toString">toString</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::fromString(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#fromString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets this font to match the description <i>descrip</i>. The description is a comma-separated list of the font attributes, as returned by <a href="http://doc.qt.io/qt-5/qfont.html#toString">toString</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#toString">toString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_string(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_fromString(
            self as *mut crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the currently preferred hinting level for glyphs rendered with this font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::HintingPreference QFont::hintingPreference() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#hintingPreference">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently preferred hinting level for glyphs rendered with this font.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setHintingPreference">setHintingPreference</a>().</p></div>
    #[inline(always)]
    pub unsafe fn hinting_preference(&self) -> crate::q_font::HintingPreference {
        crate::__ffi::ctr_qt_gui_ffi_QFont_hintingPreference(self as *const crate::QFont)
    }

    /// Calls C++ function: <span style='color: green;'>```static void QFont::initialize()```</span>.
    #[inline(always)]
    pub unsafe fn initialize() {
        crate::__ffi::ctr_qt_gui_ffi_QFont_initialize()
    }

    /// <p>Inserts <i>substituteName</i> into the substitution table for the family <i>familyName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QFont::insertSubstitution(const QString& arg1, const QString& arg2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitution">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>substituteName</i> into the substitution table for the family <i>familyName</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitutions">insertSubstitutions</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#removeSubstitutions">removeSubstitutions</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#substitutions">substitutions</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#substitute">substitute</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#substitutes">substitutes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_substitution(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_insertSubstitution(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg2)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts the list of families <i>substituteNames</i> into the substitution list for <i>familyName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QFont::insertSubstitutions(const QString& arg1, const QStringList& arg2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitutions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts the list of families <i>substituteNames</i> into the substitution list for <i>familyName</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitution">insertSubstitution</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#removeSubstitutions">removeSubstitutions</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#substitutions">substitutions</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#substitute">substitute</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_substitutions(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_insertSubstitutions(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(arg2)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if this font and <i>f</i> are copies of each other, i.e. one of them was created as a copy of the other and neither has been modified since. This is much stricter than equality.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::isCopyOf(const QFont& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#isCopyOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this font and <i>f</i> are copies of each other, i.e. one of them was created as a copy of the other and neither has been modified since. This is much stricter than equality.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#operator-eq">operator=</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#operator-eq-eq">operator==</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_copy_of(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_isCopyOf(
            self as *const crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>() of the font is not <a href="http://doc.qt.io/qt-5/qfont.html#Style-enum">QFont::StyleNormal</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::italic() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#italic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>() of the font is not <a href="http://doc.qt.io/qt-5/qfont.html#Style-enum">QFont::StyleNormal</a></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setItalic">setItalic</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>().</p></div>
    #[inline(always)]
    pub unsafe fn italic(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_italic(self as *const crate::QFont)
    }

    /// <p>Returns <code>true</code> if kerning should be used when drawing text with this font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::kerning() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#kerning">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if kerning should be used when drawing text with this font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setKerning">setKerning</a>().</p></div>
    #[inline(always)]
    pub unsafe fn kerning(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_kerning(self as *const crate::QFont)
    }

    /// <p>Returns the font's key, a textual representation of a font. It is typically used as the key for a cache or dictionary of fonts.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFont::key() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#key">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font's key, a textual representation of a font. It is typically used as the key for a cache or dictionary of fonts.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmap.html">QMap</a>.</p></div>
    #[inline(always)]
    pub unsafe fn key(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_key(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the "last resort" font family name.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFont::lastResortFamily() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#lastResortFamily">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the "last resort" font family name.</p>
    /// <p>The current implementation tries a wide variety of common fonts, returning the first one it finds. Is is possible that no family is found in which case an empty string is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#lastResortFont">lastResortFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_resort_family(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFont_lastResortFamily(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a "last resort" font name for the font matching algorithm. This is used if the last resort family is not available. It will always return a name, if necessary returning something like "fixed" or "system".</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFont::lastResortFont() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#lastResortFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a "last resort" font name for the font matching algorithm. This is used if the last resort family is not available. It will always return a name, if necessary returning something like "fixed" or "system".</p>
    /// <p>The current implementation tries a wide variety of common fonts, returning the first one it finds. The implementation may change at any time, but this function will always return a string containing something.</p>
    /// <p>It is theoretically possible that there really isn't a lastResortFont() in which case Qt will abort with an error message. We have not been able to identify a case where this happens. Please <a href="http://doc.qt.io/qt-5/bughowto.html">report it as a bug</a> if it does, preferably with a list of the fonts you have installed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#lastResortFamily">lastResortFamily</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_resort_font(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFont_lastResortFont(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the letter spacing for the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFont::letterSpacing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#letterSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the letter spacing for the font.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setLetterSpacing">setLetterSpacing</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#letterSpacingType">letterSpacingType</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setWordSpacing">setWordSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn letter_spacing(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFont_letterSpacing(self as *const crate::QFont)
    }

    /// <p>Returns the spacing type used for letter spacing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::SpacingType QFont::letterSpacingType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#letterSpacingType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the spacing type used for letter spacing.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#letterSpacing">letterSpacing</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setLetterSpacing">setLetterSpacing</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setWordSpacing">setWordSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn letter_spacing_type(&self) -> crate::q_font::SpacingType {
        crate::__ffi::ctr_qt_gui_ffi_QFont_letterSpacingType(self as *const crate::QFont)
    }

    /// <p>Constructs a font object that uses the application's default font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFont::QFont()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#QFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font object that uses the application's default font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setFont">QGuiApplication::setFont</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#font">QGuiApplication::font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_QFont();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font object with the specified <i>family</i>, <i>pointSize</i>, <i>weight</i> and <i>italic</i> settings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFont::QFont(const QString& family, int pointSize = …, int weight = …, bool italic = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#QFont-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font object with the specified <i>family</i>, <i>pointSize</i>, <i>weight</i> and <i>italic</i> settings.</p>
    /// <p>If <i>pointSize</i> is zero or negative, the point size of the font is set to a system-dependent default value. Generally, this is 12 points.</p>
    /// <p>The <i>family</i> name may optionally also include a foundry name, e.g. "Helvetica [Cronyx]". If the <i>family</i> is available from more than one foundry and the foundry isn't specified, an arbitrary foundry is chosen. If the family isn't available a family will be set using the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">Weight</a>, <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setWeight">setWeight</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setItalic">setItalic</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#font">QGuiApplication::font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string2_int_bool(
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        point_size: ::std::os::raw::c_int,
        weight: ::std::os::raw::c_int,
        italic: bool,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_QFont1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            point_size,
            weight,
            italic,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font from <i>font</i> for use on the paint device <i>pd</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFont::QFont(const QFont& arg1, QPaintDevice* pd)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#QFont-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font from <i>font</i> for use on the paint device <i>pd</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_font_q_paint_device(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        pd: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_QFont2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(pd)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font object with the specified <i>family</i>, <i>pointSize</i>, <i>weight</i> and <i>italic</i> settings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFont::QFont(const QString& family, int pointSize = …, int weight = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#QFont-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font object with the specified <i>family</i>, <i>pointSize</i>, <i>weight</i> and <i>italic</i> settings.</p>
    /// <p>If <i>pointSize</i> is zero or negative, the point size of the font is set to a system-dependent default value. Generally, this is 12 points.</p>
    /// <p>The <i>family</i> name may optionally also include a foundry name, e.g. "Helvetica [Cronyx]". If the <i>family</i> is available from more than one foundry and the foundry isn't specified, an arbitrary foundry is chosen. If the family isn't available a family will be set using the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">Weight</a>, <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setWeight">setWeight</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setItalic">setItalic</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#font">QGuiApplication::font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string2_int(
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        point_size: ::std::os::raw::c_int,
        weight: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_QFont4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            point_size,
            weight,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font object with the specified <i>family</i>, <i>pointSize</i>, <i>weight</i> and <i>italic</i> settings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFont::QFont(const QString& family, int pointSize = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#QFont-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font object with the specified <i>family</i>, <i>pointSize</i>, <i>weight</i> and <i>italic</i> settings.</p>
    /// <p>If <i>pointSize</i> is zero or negative, the point size of the font is set to a system-dependent default value. Generally, this is 12 points.</p>
    /// <p>The <i>family</i> name may optionally also include a foundry name, e.g. "Helvetica [Cronyx]". If the <i>family</i> is available from more than one foundry and the foundry isn't specified, an arbitrary foundry is chosen. If the family isn't available a family will be set using the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">Weight</a>, <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setWeight">setWeight</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setItalic">setItalic</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#font">QGuiApplication::font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_int(
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        point_size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_QFont5(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            point_size,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font object with the specified <i>family</i>, <i>pointSize</i>, <i>weight</i> and <i>italic</i> settings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFont::QFont(const QString& family)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#QFont-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font object with the specified <i>family</i>, <i>pointSize</i>, <i>weight</i> and <i>italic</i> settings.</p>
    /// <p>If <i>pointSize</i> is zero or negative, the point size of the font is set to a system-dependent default value. Generally, this is 12 points.</p>
    /// <p>The <i>family</i> name may optionally also include a foundry name, e.g. "Helvetica [Cronyx]". If the <i>family</i> is available from more than one foundry and the foundry isn't specified, an arbitrary foundry is chosen. If the family isn't available a family will be set using the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">Weight</a>, <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setWeight">setWeight</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setItalic">setItalic</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#font">QGuiApplication::font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_QFont6(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font from <i>font</i> for use on the paint device <i>pd</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFont::QFont(const QFont& font, const QPaintDevice* pd)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#QFont-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font from <i>font</i> for use on the paint device <i>pd</i>.</p>
    /// <p>This function was introduced in  Qt 5.13.</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn from_q_font_q_paint_device2(
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        pd: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_QFont14(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(pd)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font that is a copy of <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFont::QFont(const QFont& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#QFont-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font that is a copy of <i>font</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_QFont3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if overline has been set; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::overline() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#overline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if overline has been set; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setOverline">setOverline</a>().</p></div>
    #[inline(always)]
    pub unsafe fn overline(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_overline(self as *const crate::QFont)
    }

    /// <p>Returns the pixel size of the font if it was set with <a href="http://doc.qt.io/qt-5/qfont.html#setPixelSize">setPixelSize</a>(). Returns -1 if the size was set with <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>() or <a href="http://doc.qt.io/qt-5/qfont.html#setPointSizeF">setPointSizeF</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFont::pixelSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#pixelSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixel size of the font if it was set with <a href="http://doc.qt.io/qt-5/qfont.html#setPixelSize">setPixelSize</a>(). Returns -1 if the size was set with <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>() or <a href="http://doc.qt.io/qt-5/qfont.html#setPointSizeF">setPointSizeF</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setPixelSize">setPixelSize</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#pointSize">pointSize</a>(), <a href="http://doc.qt.io/qt-5/qfontinfo.html#pointSize">QFontInfo::pointSize</a>(), and <a href="http://doc.qt.io/qt-5/qfontinfo.html#pixelSize">QFontInfo::pixelSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixel_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFont_pixelSize(self as *const crate::QFont)
    }

    /// <p>Returns the point size of the font. Returns -1 if the font size was specified in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFont::pointSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#pointSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the point size of the font. Returns -1 if the font size was specified in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#pointSizeF">pointSizeF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn point_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFont_pointSize(self as *const crate::QFont)
    }

    /// <p>Returns the point size of the font. Returns -1 if the font size was specified in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFont::pointSizeF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#pointSizeF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the point size of the font. Returns -1 if the font size was specified in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#pointSize">pointSize</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setPointSizeF">setPointSizeF</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#pixelSize">pixelSize</a>(), <a href="http://doc.qt.io/qt-5/qfontinfo.html#pointSize">QFontInfo::pointSize</a>(), and <a href="http://doc.qt.io/qt-5/qfontinfo.html#pixelSize">QFontInfo::pixelSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn point_size_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFont_pointSizeF(self as *const crate::QFont)
    }

    /// <p>Returns <code>true</code> if raw mode is used for font name matching; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::rawMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont-obsolete.html#rawMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if raw mode is used for font name matching; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont-obsolete.html#setRawMode">setRawMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn raw_mode(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_rawMode(self as *const crate::QFont)
    }

    /// <p>Returns the name of the font within the underlying window system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFont::rawName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont-obsolete.html#rawName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the font within the underlying window system.</p>
    /// <p>On X11, this function will return an empty string.</p>
    /// <p>Using the return value of this function is usually <i>not</i> <i>portable</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont-obsolete.html#setRawName">setRawName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn raw_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_rawName(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all the substitutions for <i>familyName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QFont::removeSubstitutions(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#removeSubstitutions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the substitutions for <i>familyName</i>.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitutions">insertSubstitutions</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitution">insertSubstitution</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#substitutions">substitutions</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#substitute">substitute</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_substitutions(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_removeSubstitutions(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> that has attributes copied from <i>other</i> that have not been previously set on this font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont QFont::resolve(const QFont& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#resolve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> that has attributes copied from <i>other</i> that have not been previously set on this font.</p></div>
    #[inline(always)]
    pub unsafe fn resolve_1a(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_resolve(
            self as *const crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> that has attributes copied from <i>other</i> that have not been previously set on this font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QFont::resolve() const```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#resolve">C++ documentation</a> for <span style='color: green;'>```QFont QFont::resolve(const QFont &other) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> that has attributes copied from <i>other</i> that have not been previously set on this font.</p></div>
    #[inline(always)]
    pub unsafe fn resolve_0a(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QFont_resolve1(self as *const crate::QFont)
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> that has attributes copied from <i>other</i> that have not been previously set on this font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::resolve(unsigned int mask)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#resolve">C++ documentation</a> for <span style='color: green;'>```QFont QFont::resolve(const QFont &other) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> that has attributes copied from <i>other</i> that have not been previously set on this font.</p></div>
    #[inline(always)]
    pub unsafe fn resolve_1a_mut(&mut self, mask: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_resolve2(self as *mut crate::QFont, mask)
    }

    /// <p>If <i>enable</i> is true sets the font's weight to <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Bold</a>; otherwise sets the weight to <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Normal</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setBold(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setBold">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enable</i> is true sets the font's weight to <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Bold</a>; otherwise sets the weight to <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Normal</a>.</p>
    /// <p>For finer boldness control use <a href="http://doc.qt.io/qt-5/qfont.html#setWeight">setWeight</a>().</p>
    /// <p><b>Note: </b>If <a href="http://doc.qt.io/qt-5/qfont.html#styleName">styleName</a>() is set, this value may be ignored, or if supported on the platform, the font artificially embolded.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#bold">bold</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#setWeight">setWeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bold(&mut self, arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setBold(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the capitalization of the text in this font to <i>caps</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setCapitalization(QFont::Capitalization arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setCapitalization">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the capitalization of the text in this font to <i>caps</i>.</p>
    /// <p>A font's capitalization makes the text appear in the selected capitalization mode.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#capitalization">capitalization</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_capitalization(&mut self, arg1: crate::q_font::Capitalization) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setCapitalization(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the list of family names for the font. The names are case insensitive and may include a foundry name. The first family in <i>families</i> will be set as the main family for the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setFamilies(const QStringList& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setFamilies">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the list of family names for the font. The names are case insensitive and may include a foundry name. The first family in <i>families</i> will be set as the main family for the font.</p>
    /// <p>Each family name entry in <i>families</i> may optionally also include a foundry name, e.g. "Helvetica [Cronyx]". If the family is available from more than one foundry and the foundry isn't specified, an arbitrary foundry is chosen. If the family isn't available a family will be set using the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#family">family</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#families">families</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(), and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_families(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setFamilies(
            self as *mut crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the family name of the font. The name is case insensitive and may include a foundry name.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setFamily(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the family name of the font. The name is case insensitive and may include a foundry name.</p>
    /// <p>The <i>family</i> name may optionally also include a foundry name, e.g. "Helvetica [Cronyx]". If the <i>family</i> is available from more than one foundry and the foundry isn't specified, an arbitrary foundry is chosen. If the family isn't available a family will be set using the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#family">family</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(), and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_family(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setFamily(
            self as *mut crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>If <i>enable</i> is true, sets fixed pitch on; otherwise sets fixed pitch off.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setFixedPitch(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setFixedPitch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enable</i> is true, sets fixed pitch on; otherwise sets fixed pitch off.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#fixedPitch">fixedPitch</a>() and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_fixed_pitch(&mut self, arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setFixedPitch(self as *mut crate::QFont, arg1)
    }

    /// <p>Set the preference for the hinting level of the glyphs to <i>hintingPreference</i>. This is a hint to the underlying font rendering system to use a certain level of hinting, and has varying support across platforms. See the table in the documentation for <a href="http://doc.qt.io/qt-5/qfont.html#HintingPreference-enum">QFont::HintingPreference</a> for more details.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setHintingPreference(QFont::HintingPreference hintingPreference)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setHintingPreference">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the preference for the hinting level of the glyphs to <i>hintingPreference</i>. This is a hint to the underlying font rendering system to use a certain level of hinting, and has varying support across platforms. See the table in the documentation for <a href="http://doc.qt.io/qt-5/qfont.html#HintingPreference-enum">QFont::HintingPreference</a> for more details.</p>
    /// <p>The default hinting preference is <a href="http://doc.qt.io/qt-5/qfont.html#HintingPreference-enum">QFont::PreferDefaultHinting</a>.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#hintingPreference">hintingPreference</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_hinting_preference(
        &mut self,
        hinting_preference: crate::q_font::HintingPreference,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setHintingPreference(
            self as *mut crate::QFont,
            hinting_preference,
        )
    }

    /// <p>Sets the <a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>() of the font to <a href="http://doc.qt.io/qt-5/qfont.html#Style-enum">QFont::StyleItalic</a> if <i>enable</i> is true; otherwise the style is set to <a href="http://doc.qt.io/qt-5/qfont.html#Style-enum">QFont::StyleNormal</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setItalic(bool b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setItalic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>() of the font to <a href="http://doc.qt.io/qt-5/qfont.html#Style-enum">QFont::StyleItalic</a> if <i>enable</i> is true; otherwise the style is set to <a href="http://doc.qt.io/qt-5/qfont.html#Style-enum">QFont::StyleNormal</a>.</p>
    /// <p><b>Note: </b>If <a href="http://doc.qt.io/qt-5/qfont.html#styleName">styleName</a>() is set, this value may be ignored, or if supported on the platform, the font may be rendered tilted instead of picking a designed italic font-variant.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#italic">italic</a>() and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_italic(&mut self, b: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setItalic(self as *mut crate::QFont, b)
    }

    /// <p>Enables kerning for this font if <i>enable</i> is true; otherwise disables it. By default, kerning is enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setKerning(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setKerning">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables kerning for this font if <i>enable</i> is true; otherwise disables it. By default, kerning is enabled.</p>
    /// <p>When kerning is enabled, glyph metrics do not add up anymore, even for Latin text. In other words, the assumption that width('a') + width('b') is equal to width("ab") is not necessarily true.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#kerning">kerning</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_kerning(&mut self, arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setKerning(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the letter spacing for the font to <i>spacing</i> and the type of spacing to <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setLetterSpacing(QFont::SpacingType type, double spacing)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setLetterSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the letter spacing for the font to <i>spacing</i> and the type of spacing to <i>type</i>.</p>
    /// <p>Letter spacing changes the default spacing between individual letters in the font. The spacing between the letters can be made smaller as well as larger either in percentage of the character width or in pixels, depending on the selected spacing type.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#letterSpacing">letterSpacing</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#letterSpacingType">letterSpacingType</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setWordSpacing">setWordSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_letter_spacing(
        &mut self,
        type_: crate::q_font::SpacingType,
        spacing: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setLetterSpacing(
            self as *mut crate::QFont,
            type_,
            spacing,
        )
    }

    /// <p>If <i>enable</i> is true, sets overline on; otherwise sets overline off.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setOverline(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setOverline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enable</i> is true, sets overline on; otherwise sets overline off.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#overline">overline</a>() and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_overline(&mut self, arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setOverline(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the font size to <i>pixelSize</i> pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setPixelSize(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setPixelSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the font size to <i>pixelSize</i> pixels.</p>
    /// <p>Using this function makes the font device dependent. Use <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>() or <a href="http://doc.qt.io/qt-5/qfont.html#setPointSizeF">setPointSizeF</a>() to set the size of the font in a device independent manner.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#pixelSize">pixelSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pixel_size(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setPixelSize(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the point size to <i>pointSize</i>. The point size must be greater than zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setPointSize(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the point size to <i>pointSize</i>. The point size must be greater than zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#pointSize">pointSize</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#setPointSizeF">setPointSizeF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_point_size(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setPointSize(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the point size to <i>pointSize</i>. The point size must be greater than zero. The requested precision may not be achieved on all platforms.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setPointSizeF(double arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setPointSizeF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the point size to <i>pointSize</i>. The point size must be greater than zero. The requested precision may not be achieved on all platforms.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#pointSizeF">pointSizeF</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setPointSize">setPointSize</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setPixelSize">setPixelSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_point_size_f(&mut self, arg1: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setPointSizeF(self as *mut crate::QFont, arg1)
    }

    /// <p>If <i>enable</i> is true, turns raw mode on; otherwise turns raw mode off. This function only has an effect under X11.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setRawMode(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont-obsolete.html#setRawMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enable</i> is true, turns raw mode on; otherwise turns raw mode off. This function only has an effect under X11.</p>
    /// <p>If raw mode is enabled, Qt will search for an X font with a complete font name matching the family name, ignoring all other values set for the <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a>. If the font name matches several fonts, Qt will use the first font returned by X. <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> <i>cannot</i> be used to fetch information about a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> using raw mode (it will return the values set in the <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> for all parameters, including the family name).</p>
    /// <p><b>Warning:</b> Enabling raw mode has no effect since Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont-obsolete.html#rawMode">rawMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_raw_mode(&mut self, arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setRawMode(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets a font by its system specific name.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setRawName(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont-obsolete.html#setRawName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a font by its system specific name.</p>
    /// <p>A font set with setRawName() is still a full-featured <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a>. It can be queried (for example with <a href="http://doc.qt.io/qt-5/qfont.html#italic">italic</a>()) or modified (for example with <a href="http://doc.qt.io/qt-5/qfont.html#setItalic">setItalic</a>()) and is therefore also suitable for rendering rich text.</p>
    /// <p>If Qt's internal font database cannot resolve the raw name, the font becomes a raw font with <i>name</i> as its family.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont-obsolete.html#rawName">rawName</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_raw_name(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setRawName(
            self as *mut crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the stretch factor for the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setStretch(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setStretch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the stretch factor for the font.</p>
    /// <p>The stretch factor matches a condensed or expanded version of the font or applies a stretch transform that changes the width of all characters in the font by <i>factor</i> percent. For example, setting <i>factor</i> to 150 results in all characters in the font being 1.5 times (ie. 150%) wider. The minimum stretch factor is 1, and the maximum stretch factor is 4000. The default stretch factor is <code>AnyStretch</code>, which will accept any stretch factor and not apply any transform on the font.</p>
    /// <p>The stretch factor is only applied to outline fonts. The stretch factor is ignored for bitmap fonts.</p>
    /// <p><b>Note: </b>When matching a font with a native non-default stretch factor, requesting a stretch of 100 will stretch it back to a medium width font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#stretch">stretch</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#Stretch-enum">QFont::Stretch</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_stretch(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setStretch(self as *mut crate::QFont, arg1)
    }

    /// <p>If <i>enable</i> is true, sets strikeout on; otherwise sets strikeout off.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setStrikeOut(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setStrikeOut">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enable</i> is true, sets strikeout on; otherwise sets strikeout off.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#strikeOut">strikeOut</a>() and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_strike_out(&mut self, arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setStrikeOut(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the style of the font to <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setStyle(QFont::Style style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the style of the font to <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#italic">italic</a>(), and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_style(&mut self, style: crate::q_font::Style) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setStyle(self as *mut crate::QFont, style)
    }

    /// <p>Sets the style hint and strategy to <i>hint</i> and <i>strategy</i>, respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setStyleHint(QFont::StyleHint arg1, QFont::StyleStrategy arg2 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the style hint and strategy to <i>hint</i> and <i>strategy</i>, respectively.</p>
    /// <p>If these aren't set explicitly the style hint will default to <code>AnyStyle</code> and the style strategy to <code>PreferDefault</code>.</p>
    /// <p>Qt does not support style hints on X11 since this information is not provided by the window system.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">StyleHint</a>, <a href="http://doc.qt.io/qt-5/qfont.html#styleHint">styleHint</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">StyleStrategy</a>, <a href="http://doc.qt.io/qt-5/qfont.html#styleStrategy">styleStrategy</a>(), and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_style_hint_2a(
        &mut self,
        arg1: crate::q_font::StyleHint,
        arg2: crate::q_font::StyleStrategy,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setStyleHint(self as *mut crate::QFont, arg1, arg2)
    }

    /// <p>Sets the style hint and strategy to <i>hint</i> and <i>strategy</i>, respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setStyleHint(QFont::StyleHint arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the style hint and strategy to <i>hint</i> and <i>strategy</i>, respectively.</p>
    /// <p>If these aren't set explicitly the style hint will default to <code>AnyStyle</code> and the style strategy to <code>PreferDefault</code>.</p>
    /// <p>Qt does not support style hints on X11 since this information is not provided by the window system.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">StyleHint</a>, <a href="http://doc.qt.io/qt-5/qfont.html#styleHint">styleHint</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">StyleStrategy</a>, <a href="http://doc.qt.io/qt-5/qfont.html#styleStrategy">styleStrategy</a>(), and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_style_hint_1a(&mut self, arg1: crate::q_font::StyleHint) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setStyleHint1(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the style name of the font to <i>styleName</i>. When set, other style properties like <a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#weight">weight</a>() will be ignored for font matching, though they may be simulated afterwards if supported by the platform's font engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setStyleName(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setStyleName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the style name of the font to <i>styleName</i>. When set, other style properties like <a href="http://doc.qt.io/qt-5/qfont.html#style">style</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#weight">weight</a>() will be ignored for font matching, though they may be simulated afterwards if supported by the platform's font engine.</p>
    /// <p>Due to the lower quality of artificially simulated styles, and the lack of full cross platform support, it is not recommended to use matching by style name together with matching by style properties</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#styleName">styleName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_style_name(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setStyleName(
            self as *mut crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the style strategy for the font to <i>s</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setStyleStrategy(QFont::StyleStrategy s)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setStyleStrategy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the style strategy for the font to <i>s</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#styleStrategy">styleStrategy</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">QFont::StyleStrategy</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_style_strategy(&mut self, s: crate::q_font::StyleStrategy) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setStyleStrategy(self as *mut crate::QFont, s)
    }

    /// <p>If <i>enable</i> is true, sets underline on; otherwise sets underline off.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setUnderline(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setUnderline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enable</i> is true, sets underline on; otherwise sets underline off.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#underline">underline</a>() and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_underline(&mut self, arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setUnderline(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the weight of the font to <i>weight</i>, using the scale defined by <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Weight</a> enumeration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setWeight(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setWeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the weight of the font to <i>weight</i>, using the scale defined by <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Weight</a> enumeration.</p>
    /// <p><b>Note: </b>If <a href="http://doc.qt.io/qt-5/qfont.html#styleName">styleName</a>() is set, this value may be ignored for font selection.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#weight">weight</a>() and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_weight(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setWeight(self as *mut crate::QFont, arg1)
    }

    /// <p>Sets the word spacing for the font to <i>spacing</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::setWordSpacing(double spacing)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#setWordSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the word spacing for the font to <i>spacing</i>.</p>
    /// <p>Word spacing changes the default spacing between individual words. A positive value increases the word spacing by a corresponding amount of pixels, while a negative value decreases the inter-word spacing accordingly.</p>
    /// <p>Word spacing will not apply to writing systems, where indiviaul words are not separated by white space.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#wordSpacing">wordSpacing</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#setLetterSpacing">setLetterSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_word_spacing(&mut self, spacing: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_setWordSpacing(self as *mut crate::QFont, spacing)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the stretch factor for the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFont::stretch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#stretch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the stretch factor for the font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setStretch">setStretch</a>().</p></div>
    #[inline(always)]
    pub unsafe fn stretch(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFont_stretch(self as *const crate::QFont)
    }

    /// <p>Returns <code>true</code> if strikeout has been set; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::strikeOut() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#strikeOut">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if strikeout has been set; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setStrikeOut">setStrikeOut</a>().</p></div>
    #[inline(always)]
    pub unsafe fn strike_out(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_strikeOut(self as *const crate::QFont)
    }

    /// <p>Returns the style of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::Style QFont::style() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#style">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the style of the font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn style(&self) -> crate::q_font::Style {
        crate::__ffi::ctr_qt_gui_ffi_QFont_style(self as *const crate::QFont)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">StyleHint</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::StyleHint QFont::styleHint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#styleHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">StyleHint</a>.</p>
    /// <p>The style hint affects the font matching algorithm. See <a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">QFont::StyleHint</a> for the list of available hints.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">QFont::StyleStrategy</a>, and <a href="http://doc.qt.io/qt-5/qfontinfo.html#styleHint">QFontInfo::styleHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn style_hint(&self) -> crate::q_font::StyleHint {
        crate::__ffi::ctr_qt_gui_ffi_QFont_styleHint(self as *const crate::QFont)
    }

    /// <p>Returns the requested font style name. This can be used to match the font with irregular styles (that can't be normalized in other style properties).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFont::styleName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#styleName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the requested font style name. This can be used to match the font with irregular styles (that can't be normalized in other style properties).</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setStyleName">setStyleName</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn style_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_styleName(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">StyleStrategy</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::StyleStrategy QFont::styleStrategy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#styleStrategy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">StyleStrategy</a>.</p>
    /// <p>The style strategy affects the <a href="http://doc.qt.io/qt-5/qfont.html">font matching</a> algorithm. See <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">QFont::StyleStrategy</a> for the list of available strategies.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setStyleStrategy">setStyleStrategy</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">setStyleHint</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">QFont::StyleHint</a>.</p></div>
    #[inline(always)]
    pub unsafe fn style_strategy(&self) -> crate::q_font::StyleStrategy {
        crate::__ffi::ctr_qt_gui_ffi_QFont_styleStrategy(self as *const crate::QFont)
    }

    /// <p>Returns the first family name to be used whenever <i>familyName</i> is specified. The lookup is case insensitive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QFont::substitute(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#substitute">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first family name to be used whenever <i>familyName</i> is specified. The lookup is case insensitive.</p>
    /// <p>If there is no substitution for <i>familyName</i>, <i>familyName</i> is returned.</p>
    /// <p>To obtain a list of substitutions use <a href="http://doc.qt.io/qt-5/qfont.html#substitutes">substitutes</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setFamily">setFamily</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitutions">insertSubstitutions</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitution">insertSubstitution</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#removeSubstitutions">removeSubstitutions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn substitute(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_substitute(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of family names to be used whenever <i>familyName</i> is specified. The lookup is case insensitive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QFont::substitutes(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#substitutes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of family names to be used whenever <i>familyName</i> is specified. The lookup is case insensitive.</p>
    /// <p>If there is no substitution for <i>familyName</i>, an empty list is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#substitute">substitute</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitutions">insertSubstitutions</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitution">insertSubstitution</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#removeSubstitutions">removeSubstitutions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn substitutes(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_substitutes(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sorted list of substituted family names.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QFont::substitutions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#substitutions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sorted list of substituted family names.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#insertSubstitution">insertSubstitution</a>(), <a href="http://doc.qt.io/qt-5/qfont-obsolete.html#removeSubstitution">removeSubstitution</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#substitute">substitute</a>().</p></div>
    #[inline(always)]
    pub unsafe fn substitutions() -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_substitutions();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this font instance with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFont::swap(QFont& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this font instance with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_swap(
            self as *mut crate::QFont,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFont>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the font as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QFont::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFont_operator_QVariant(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a description of the font. The description is a comma-separated list of the attributes, perfectly suited for use in <a href="http://doc.qt.io/qt-5/qsettings.html">QSettings</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFont::toString() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#toString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a description of the font. The description is a comma-separated list of the attributes, perfectly suited for use in <a href="http://doc.qt.io/qt-5/qsettings.html">QSettings</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#fromString">fromString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_string(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFont_toString(self as *const crate::QFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if underline has been set; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::underline() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#underline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if underline has been set; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setUnderline">setUnderline</a>().</p></div>
    #[inline(always)]
    pub unsafe fn underline(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_underline(self as *const crate::QFont)
    }

    /// <p>Returns the weight of the font, using the same scale as the <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Weight</a> enumeration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFont::weight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#weight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the weight of the font, using the same scale as the <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Weight</a> enumeration.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setWeight">setWeight</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">Weight</a>, and <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>.</p></div>
    #[inline(always)]
    pub unsafe fn weight(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFont_weight(self as *const crate::QFont)
    }

    /// <p>Returns the word spacing for the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFont::wordSpacing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#wordSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the word spacing for the font.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#setWordSpacing">setWordSpacing</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#setLetterSpacing">setLetterSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn word_spacing(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFont_wordSpacing(self as *const crate::QFont)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> class provides a vector of points using integer precision.</p>
///
/// C++ class: <span style='color: green;'>```QPolygon```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpolygon.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> class provides a vector of points using integer precision.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> object is a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;<a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>&gt;. The easiest way to add points to a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> is to use <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s streaming operator, as illustrated below:</p>
/// <pre class="cpp">
///
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon">QPolygon</a></span> polygon;
/// &#32;   &#32;     polygon <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span>(<span class="number">10</span><span class="operator">,</span> <span class="number">20</span>) <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span>(<span class="number">20</span><span class="operator">,</span> <span class="number">30</span>);
///
/// </pre>
/// <p>In addition to the functions provided by <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> provides some point-specific functions.</p>
/// <p>Each point in a polygon can be retrieved by passing its index to the <a href="http://doc.qt.io/qt-5/qpolygon.html#point">point</a>() function. To populate the polygon, <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> provides the <a href="http://doc.qt.io/qt-5/qpolygon.html#setPoint">setPoint</a>() function to set the point at a given index, the <a href="http://doc.qt.io/qt-5/qpolygon.html#setPoints">setPoints</a>() function to set all the points in the polygon (resizing it to the given number of points), and the <a href="http://doc.qt.io/qt-5/qpolygon.html#putPoints">putPoints</a>() function which copies a number of given points into the polygon from a specified index (resizing the polygon if necessary).</p>
/// <p><a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> provides the <a href="http://doc.qt.io/qt-5/qpolygon.html#boundingRect">boundingRect</a>() and <a href="http://doc.qt.io/qt-5/qpolygon.html#translate">translate</a>() functions for geometry functions. Use the <a href="http://doc.qt.io/qt-5/qmatrix.html#map">QMatrix::map</a>() function for more general transformations of QPolygons.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> class is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>.</p></div>
#[repr(C)]
pub struct QPolygon {
    _unused: u8,
}
impl QPolygon {
    /// <p>Returns the bounding rectangle of the polygon, or <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(0, 0, 0, 0) if the polygon is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPolygon::boundingRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of the polygon, or <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(0, 0, 0, 0) if the polygon is empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">QVector::isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPolygon_boundingRect(self as *const crate::QPolygon);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the given <i>point</i> is inside the polygon according to the specified <i>fillRule</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPolygon::containsPoint(const QPoint& pt, Qt::FillRule fillRule) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#containsPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the given <i>point</i> is inside the polygon according to the specified <i>fillRule</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn contains_point(
        &self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        fill_rule: ::qt_core::FillRule,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_containsPoint(
            self as *const crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pt).as_raw_ptr(),
            fill_rule,
        )
    }

    /// <p>Copy-assignment operator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon& QPolygon::operator=(const QPolygon& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy-assignment operator.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::MutRef<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_operator_1(
            self as *mut crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a polygon which is the intersection of this polygon and <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QPolygon::intersected(const QPolygon& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#intersected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a polygon which is the intersection of this polygon and <i>r</i>.</p>
    /// <p>Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn intersected(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_intersected(
            self as *const crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the current polygon intersects at any point the given polygon <i>p</i>. Also returns <code>true</code> if the current polygon contains or is contained by any part of <i>p</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPolygon::intersects(const QPolygon& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#intersects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the current polygon intersects at any point the given polygon <i>p</i>. Also returns <code>true</code> if the current polygon contains or is contained by any part of <i>p</i>.</p>
    /// <p>Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#intersected">intersected</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn intersects(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_intersects(
            self as *const crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Constructs a polygon with no points.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygon::QPolygon()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon with no points.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">QVector::isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_QPolygon();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a polygon of the given <i>size</i>. Creates an empty polygon if <i>size</i> == 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygon::QPolygon(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon of the given <i>size</i>. Creates an empty polygon if <i>size</i> == 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">QVector::isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_int(size: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_QPolygon1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a polygon containing the specified <i>points</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygon::QPolygon(const QVector<QPoint>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon containing the specified <i>points</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#setPoints">setPoints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_of_q_point(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPoint>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_QPolygon2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPoint>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a polygon from the given <i>rectangle</i>. If <i>closed</i> is false, the polygon just contains the four points of the rectangle ordered clockwise, otherwise the polygon's fifth point is set to <i>rectangle</i>.topLeft().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygon::QPolygon(const QRect& r, bool closed = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon from the given <i>rectangle</i>. If <i>closed</i> is false, the polygon just contains the four points of the rectangle ordered clockwise, otherwise the polygon's fifth point is set to <i>rectangle</i>.topLeft().</p>
    /// <p>Note that the bottom-right corner of the rectangle is located at (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#setPoints">setPoints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_rect_bool(
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        closed: bool,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_QPolygon4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            closed,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygon::QPolygon(int nPoints, const int* points)```</span>.
    #[inline(always)]
    pub unsafe fn from_int_int(
        n_points: ::std::os::raw::c_int,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_QPolygon5(
            n_points,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_int>>::cast_into(points)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a polygon from the given <i>rectangle</i>. If <i>closed</i> is false, the polygon just contains the four points of the rectangle ordered clockwise, otherwise the polygon's fifth point is set to <i>rectangle</i>.topLeft().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygon::QPolygon(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon from the given <i>rectangle</i>. If <i>closed</i> is false, the polygon just contains the four points of the rectangle ordered clockwise, otherwise the polygon's fifth point is set to <i>rectangle</i>.topLeft().</p>
    /// <p>Note that the bottom-right corner of the rectangle is located at (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#setPoints">setPoints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_rect(
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_QPolygon8(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of the given <i>polygon</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygon::QPolygon(const QPolygon& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of the given <i>polygon</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#setPoints">setPoints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_QPolygon6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Extracts the coordinates of the point at the given <i>index</i> to *<i>x</i> and *<i>y</i> (if they are valid pointers).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::point(int i, int* x, int* y) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#point">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Extracts the coordinates of the point at the given <i>index</i> to *<i>x</i> and *<i>y</i> (if they are valid pointers).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#setPoint">setPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn point_3a(
        &self,
        i: ::std::os::raw::c_int,
        x: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_point(
            self as *const crate::QPolygon,
            i,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(x)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(y)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QPolygon::point(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#point-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the point at the given <i>index</i>.</p></div>
    #[inline(always)]
    pub unsafe fn point_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPolygon_point1(self as *const crate::QPolygon, i);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```void QPolygon::putPoints(int index, int nPoints, const int* points)```</span>.
    #[inline(always)]
    pub unsafe fn put_points_2_int_int(
        &mut self,
        index: ::std::os::raw::c_int,
        n_points: ::std::os::raw::c_int,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_putPoints(
            self as *mut crate::QPolygon,
            index,
            n_points,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_int>>::cast_into(points)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::putPoints(int index, int nPoints, const QPolygon& from, int fromIndex = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#putPoints-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Copies <i>nPoints</i> points from the given <i>fromIndex</i> ( 0 by default) in <i>fromPolygon</i> into this polygon, starting at the specified <i>index</i>. For example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon">QPolygon</a></span> polygon1;
    /// &#32;   &#32;     polygon1<span class="operator">.</span>putPoints(<span class="number">0</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span><span class="number">2</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span><span class="number">0</span><span class="operator">,</span> <span class="number">5</span><span class="operator">,</span><span class="number">6</span>);
    /// &#32;   &#32;     <span class="comment">// polygon1 is now the three-point polygon(1,2, 0,0, 5,6);</span>
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon">QPolygon</a></span> polygon2;
    /// &#32;   &#32;     polygon2<span class="operator">.</span>putPoints(<span class="number">0</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">4</span><span class="operator">,</span><span class="number">4</span><span class="operator">,</span> <span class="number">5</span><span class="operator">,</span><span class="number">5</span><span class="operator">,</span> <span class="number">6</span><span class="operator">,</span><span class="number">6</span>);
    /// &#32;   &#32;     <span class="comment">// polygon2 is now (4,4, 5,5, 6,6);</span>
    ///
    /// &#32;   &#32;     polygon1<span class="operator">.</span>putPoints(<span class="number">2</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> polygon2);
    /// &#32;   &#32;     <span class="comment">// polygon1 is now the five-point polygon(1,2, 0,0, 4,4, 5,5, 6,6);</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn put_points_2_int_q_polygon_int(
        &mut self,
        index: ::std::os::raw::c_int,
        n_points: ::std::os::raw::c_int,
        from: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
        from_index: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_putPoints2(
            self as *mut crate::QPolygon,
            index,
            n_points,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(from).as_raw_ptr(),
            from_index,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::putPoints(int index, int nPoints, const QPolygon& from)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#putPoints-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Copies <i>nPoints</i> points from the given <i>fromIndex</i> ( 0 by default) in <i>fromPolygon</i> into this polygon, starting at the specified <i>index</i>. For example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon">QPolygon</a></span> polygon1;
    /// &#32;   &#32;     polygon1<span class="operator">.</span>putPoints(<span class="number">0</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span><span class="number">2</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span><span class="number">0</span><span class="operator">,</span> <span class="number">5</span><span class="operator">,</span><span class="number">6</span>);
    /// &#32;   &#32;     <span class="comment">// polygon1 is now the three-point polygon(1,2, 0,0, 5,6);</span>
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon">QPolygon</a></span> polygon2;
    /// &#32;   &#32;     polygon2<span class="operator">.</span>putPoints(<span class="number">0</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">4</span><span class="operator">,</span><span class="number">4</span><span class="operator">,</span> <span class="number">5</span><span class="operator">,</span><span class="number">5</span><span class="operator">,</span> <span class="number">6</span><span class="operator">,</span><span class="number">6</span>);
    /// &#32;   &#32;     <span class="comment">// polygon2 is now (4,4, 5,5, 6,6);</span>
    ///
    /// &#32;   &#32;     polygon1<span class="operator">.</span>putPoints(<span class="number">2</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> polygon2);
    /// &#32;   &#32;     <span class="comment">// polygon1 is now the five-point polygon(1,2, 0,0, 4,4, 5,5, 6,6);</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn put_points_2_int_q_polygon(
        &mut self,
        index: ::std::os::raw::c_int,
        n_points: ::std::os::raw::c_int,
        from: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_putPoints3(
            self as *mut crate::QPolygon,
            index,
            n_points,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(from).as_raw_ptr(),
        )
    }

    /// <p>Sets the point at the given <i>index</i> to the point specified by (<i>x</i>, <i>y</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::setPoint(int index, int x, int y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#setPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the point at the given <i>index</i> to the point specified by (<i>x</i>, <i>y</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#point">point</a>(), <a href="http://doc.qt.io/qt-5/qpolygon.html#putPoints">putPoints</a>(), and <a href="http://doc.qt.io/qt-5/qpolygon.html#setPoints">setPoints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_point_3a(
        &mut self,
        index: ::std::os::raw::c_int,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_setPoint(self as *mut crate::QPolygon, index, x, y)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::setPoint(int index, const QPoint& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#setPoint-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the point at the given <i>index</i> to the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_point_2a(
        &mut self,
        index: ::std::os::raw::c_int,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_setPoint1(
            self as *mut crate::QPolygon,
            index,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>Resizes the polygon to <i>nPoints</i> and populates it with the given <i>points</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::setPoints(int nPoints, const int* points)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#setPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resizes the polygon to <i>nPoints</i> and populates it with the given <i>points</i>.</p>
    /// <p>The example code creates a polygon with two points (10, 20) and (30, 40):</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="keyword">static</span> <span class="keyword">const</span> <span class="type">int</span> points<span class="operator">[</span><span class="operator">]</span> <span class="operator">=</span> { <span class="number">10</span><span class="operator">,</span> <span class="number">20</span><span class="operator">,</span> <span class="number">30</span><span class="operator">,</span> <span class="number">40</span> };
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpolygon.html#QPolygon">QPolygon</a></span> polygon;
    /// &#32;   &#32;     polygon<span class="operator">.</span>setPoints(<span class="number">2</span><span class="operator">,</span> points);
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#setPoint">setPoint</a>() and <a href="http://doc.qt.io/qt-5/qpolygon.html#putPoints">putPoints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_points(
        &mut self,
        n_points: ::std::os::raw::c_int,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_setPoints(
            self as *mut crate::QPolygon,
            n_points,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_int>>::cast_into(points)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a polygon which is <i>r</i> subtracted from this polygon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QPolygon::subtracted(const QPolygon& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#subtracted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a polygon which is <i>r</i> subtracted from this polygon.</p>
    /// <p>Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn subtracted(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_subtracted(
            self as *const crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps polygon <i>other</i> with this polygon. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::swap(QPolygon& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps polygon <i>other</i> with this polygon. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPolygon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_swap(
            self as *mut crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPolygon>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the polygon as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QPolygon::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the polygon as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPolygon_operator_QVariant(self as *const crate::QPolygon);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Translates all points in the polygon by (<i>dx</i>, <i>dy</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::translate(int dx, int dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates all points in the polygon by (<i>dx</i>, <i>dy</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#translated">translated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_2a(&mut self, dx: ::std::os::raw::c_int, dy: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_translate(self as *mut crate::QPolygon, dx, dy)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygon::translate(const QPoint& offset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#translate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Translates all points in the polygon by the given <i>offset</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#translated">translated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_1a(
        &mut self,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_translate1(
            self as *mut crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(offset)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a copy of the polygon that is translated by (<i>dx</i>, <i>dy</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QPolygon::translated(int dx, int dy) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#translated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the polygon that is translated by (<i>dx</i>, <i>dy</i>).</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translated_2a(
        &self,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_translated(
            self as *const crate::QPolygon,
            dx,
            dy,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QPolygon::translated(const QPoint& offset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#translated-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the polygon that is translated by the given <i>offset</i>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translated_1a(
        &self,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_translated1(
            self as *const crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(offset)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a polygon which is the union of this polygon and <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QPolygon::united(const QPolygon& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#united">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a polygon which is the union of this polygon and <i>r</i>.</p>
    /// <p>Set operations on polygons, will treat the polygons as areas, and implicitly close the polygon.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygon.html#intersected">intersected</a>() and <a href="http://doc.qt.io/qt-5/qpolygon.html#subtracted">subtracted</a>().</p></div>
    #[inline(always)]
    pub unsafe fn united(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygon_united(
            self as *const crate::QPolygon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> class provides a vector of points using floating point precision.</p>
///
/// C++ class: <span style='color: green;'>```QPolygonF```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpolygonf.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> class provides a vector of points using floating point precision.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> is a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;<a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a>&gt;. The easiest way to add points to a <a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> is to use its streaming operator, as illustrated below:</p>
/// <pre class="cpp">
///
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpolygonf.html#QPolygonF">QPolygonF</a></span> polygon;
/// &#32;   &#32;     polygon <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">10.4</span><span class="operator">,</span> <span class="number">20.5</span>) <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">20.2</span><span class="operator">,</span> <span class="number">30.2</span>);
///
/// </pre>
/// <p>In addition to the functions provided by <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, <a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> provides the <a href="http://doc.qt.io/qt-5/qpolygonf.html#boundingRect">boundingRect</a>() and <a href="http://doc.qt.io/qt-5/qpolygonf.html#translate">translate</a>() functions for geometry operations. Use the <a href="http://doc.qt.io/qt-5/qmatrix.html#map">QMatrix::map</a>() function for more general transformations of QPolygonFs.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> also provides the <a href="http://doc.qt.io/qt-5/qpolygonf.html#isClosed">isClosed</a>() function to determine whether a polygon's start and end points are the same, and the <a href="http://doc.qt.io/qt-5/qpolygonf.html#toPolygon">toPolygon</a>() function returning an integer precision copy of this polygon.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> class is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>.</p></div>
#[repr(C)]
pub struct QPolygonF {
    _unused: u8,
}
impl QPolygonF {
    /// <p>Returns the bounding rectangle of the polygon, or <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a>(0,0,0,0) if the polygon is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPolygonF::boundingRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of the polygon, or <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a>(0,0,0,0) if the polygon is empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">QVector::isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPolygonF_boundingRect(self as *const crate::QPolygonF);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the given <i>point</i> is inside the polygon according to the specified <i>fillRule</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPolygonF::containsPoint(const QPointF& pt, Qt::FillRule fillRule) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#containsPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the given <i>point</i> is inside the polygon according to the specified <i>fillRule</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn contains_point(
        &self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        fill_rule: ::qt_core::FillRule,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPolygonF_containsPoint(
            self as *const crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pt).as_raw_ptr(),
            fill_rule,
        )
    }

    /// <p>Copy-assignment operator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF& QPolygonF::operator=(const QPolygonF& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy-assignment operator.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::MutRef<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_operator_1(
            self as *mut crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a polygon which is the intersection of this polygon and <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QPolygonF::intersected(const QPolygonF& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#intersected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a polygon which is the intersection of this polygon and <i>r</i>.</p>
    /// <p>Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn intersected(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_intersected(
            self as *const crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the current polygon intersects at any point the given polygon <i>p</i>. Also returns <code>true</code> if the current polygon contains or is contained by any part of <i>p</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPolygonF::intersects(const QPolygonF& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#intersects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the current polygon intersects at any point the given polygon <i>p</i>. Also returns <code>true</code> if the current polygon contains or is contained by any part of <i>p</i>.</p>
    /// <p>Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygonf.html#intersected">intersected</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn intersects(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPolygonF_intersects(
            self as *const crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the polygon is closed; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPolygonF::isClosed() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#isClosed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the polygon is closed; otherwise returns <code>false</code>.</p>
    /// <p>A polygon is said to be closed if its start point and end point are equal.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">QVector::first</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">QVector::last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_closed(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPolygonF_isClosed(self as *const crate::QPolygonF)
    }

    /// <p>Constructs a polygon with no points.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygonF::QPolygonF()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#QPolygonF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon with no points.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">QVector::isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_QPolygonF();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a polygon of the given <i>size</i>. Creates an empty polygon if <i>size</i> == 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygonF::QPolygonF(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#QPolygonF-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon of the given <i>size</i>. Creates an empty polygon if <i>size</i> == 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">QVector::isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_int(size: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_QPolygonF1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a polygon containing the specified <i>points</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygonF::QPolygonF(const QVector<QPointF>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#QPolygonF-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a polygon containing the specified <i>points</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_of_q_point_f(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfQPointF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_QPolygonF2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfQPointF>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a closed polygon from the specified <i>rectangle</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygonF::QPolygonF(const QRectF& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#QPolygonF-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a closed polygon from the specified <i>rectangle</i>.</p>
    /// <p>The polygon contains the four vertices of the rectangle in clockwise order starting and ending with the top-left vertex.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygonf.html#isClosed">isClosed</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_rect_f(
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_QPolygonF4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a float based polygon from the specified integer based <i>polygon</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygonF::QPolygonF(const QPolygon& a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#QPolygonF-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a float based polygon from the specified integer based <i>polygon</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygonf.html#toPolygon">toPolygon</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_polygon(
        a: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_QPolygonF5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(a).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of the given <i>polygon</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPolygonF::QPolygonF(const QPolygonF& a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#QPolygonF-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of the given <i>polygon</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        a: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_QPolygonF6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(a).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a polygon which is <i>r</i> subtracted from this polygon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QPolygonF::subtracted(const QPolygonF& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#subtracted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a polygon which is <i>r</i> subtracted from this polygon.</p>
    /// <p>Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn subtracted(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_subtracted(
            self as *const crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps polygon <i>other</i> with this polygon. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygonF::swap(QPolygonF& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps polygon <i>other</i> with this polygon. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygonF_swap(
            self as *mut crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPolygonF>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> by converting each <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> to a <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QPolygonF::toPolygon() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#toPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> by converting each <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> to a <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpointf.html#toPoint">QPointF::toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_polygon(&self) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPolygonF_toPolygon(self as *const crate::QPolygonF);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the polygon as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QPolygonF::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the polygon as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_operator_QVariant(
            self as *const crate::QPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygonF::translate(double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#translate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Translates all points in the polygon by (<i>dx</i>, <i>dy</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygonf.html#translated">translated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_2a(
        &mut self,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygonF_translate(self as *mut crate::QPolygonF, dx, dy)
    }

    /// <p>Translate all points in the polygon by the given <i>offset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPolygonF::translate(const QPointF& offset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translate all points in the polygon by the given <i>offset</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygonf.html#translated">translated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_1a(
        &mut self,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygonF_translate1(
            self as *mut crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(offset)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QPolygonF::translated(double dx, double dy) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#translated-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the polygon that is translated by (<i>dx</i>, <i>dy</i>).</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygonf.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translated_2a(
        &self,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_translated(
            self as *const crate::QPolygonF,
            dx,
            dy,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the polygon that is translated by the given <i>offset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QPolygonF::translated(const QPointF& offset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#translated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the polygon that is translated by the given <i>offset</i>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygonf.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translated_1a(
        &self,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_translated1(
            self as *const crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(offset)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a polygon which is the union of this polygon and <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QPolygonF::united(const QPolygonF& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#united">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a polygon which is the union of this polygon and <i>r</i>.</p>
    /// <p>Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpolygonf.html#intersected">intersected</a>() and <a href="http://doc.qt.io/qt-5/qpolygonf.html#subtracted">subtracted</a>().</p></div>
    #[inline(always)]
    pub unsafe fn united(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPolygonF_united(
            self as *const crate::QPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> class specifies 2D transformations of a coordinate system.</p>
///
/// C++ class: <span style='color: green;'>```QMatrix```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qmatrix.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> class specifies 2D transformations of a coordinate system.</p>
/// <p>A matrix specifies how to translate, scale, shear or rotate the coordinate system, and is typically used when rendering graphics. <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a>, in contrast to <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a>, does not allow perspective transformations. <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> is the recommended transformation class in Qt.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> object can be built using the <a href="http://doc.qt.io/qt-5/qmatrix.html#setMatrix">setMatrix</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#shear">shear</a>() functions. Alternatively, it can be built by applying <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">basic matrix operations</a>. The matrix can also be defined when constructed, and it can be reset to the identity matrix (the default) using the <a href="http://doc.qt.io/qt-5/qmatrix.html#reset">reset</a>() function.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> class supports mapping of graphic primitives: A given point, line, polygon, region, or painter path can be mapped to the coordinate system defined by <i>this</i> matrix using the <a href="http://doc.qt.io/qt-5/qmatrix.html#map">map</a>() function. In case of a rectangle, its coordinates can be transformed using the <a href="http://doc.qt.io/qt-5/qmatrix.html#mapRect">mapRect</a>() function. A rectangle can also be transformed into a <i>polygon</i> (mapped to the coordinate system defined by <i>this</i> matrix), using the <a href="http://doc.qt.io/qt-5/qmatrix.html#mapToPolygon">mapToPolygon</a>() function.</p>
/// <p><a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> provides the <a href="http://doc.qt.io/qt-5/qmatrix.html#isIdentity">isIdentity</a>() function which returns <code>true</code> if the matrix is the identity matrix, and the <a href="http://doc.qt.io/qt-5/qmatrix.html#isInvertible">isInvertible</a>() function which returns <code>true</code> if the matrix is non-singular (i.e. AB = BA = I). The <a href="http://doc.qt.io/qt-5/qmatrix.html#inverted">inverted</a>() function returns an inverted copy of <i>this</i> matrix if it is invertible (otherwise it returns the identity matrix). In addition, <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> provides the <a href="http://doc.qt.io/qt-5/qmatrix.html#determinant">determinant</a>() function returning the matrix's determinant.</p>
/// <p>Finally, the <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> class supports matrix multiplication, and objects of the class can be streamed as well as compared.</p>
/// <a name="rendering-graphics"></a></div>
#[repr(C)]
pub struct QMatrix {
    _unused: u8,
}
impl QMatrix {
    /// <p>Assigns the given <i>matrix</i>'s values to this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix& QMatrix::operator=(const QMatrix& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the given <i>matrix</i>'s values to this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::MutRef<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_operator_1(
            self as *mut crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the matrix's determinant.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QMatrix::determinant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#determinant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix's determinant.</p>
    /// <p>This function was introduced in  Qt 4.6.</p></div>
    #[inline(always)]
    pub unsafe fn determinant(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_determinant(self as *const crate::QMatrix)
    }

    /// <p>Returns the horizontal translation factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QMatrix::dx() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#dx">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal translation factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn dx(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_dx(self as *const crate::QMatrix)
    }

    /// <p>Returns the vertical translation factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QMatrix::dy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#dy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical translation factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn dy(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_dy(self as *const crate::QMatrix)
    }

    /// <p>Returns an inverted copy of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix QMatrix::inverted(bool* invertible = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#inverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an inverted copy of this matrix.</p>
    /// <p>If the matrix is singular (not invertible), the returned matrix is the identity matrix. If <i>invertible</i> is valid (i.e. not 0), its value is set to true if the matrix is invertible, otherwise it is set to false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#isInvertible">isInvertible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn inverted_1a(
        &self,
        invertible: impl ::cpp_core::CastInto<::cpp_core::MutPtr<bool>>,
    ) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_inverted(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<bool>>::cast_into(invertible)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns an inverted copy of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix QMatrix::inverted() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#inverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an inverted copy of this matrix.</p>
    /// <p>If the matrix is singular (not invertible), the returned matrix is the identity matrix. If <i>invertible</i> is valid (i.e. not 0), its value is set to true if the matrix is invertible, otherwise it is set to false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#isInvertible">isInvertible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn inverted_0a(&self) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_inverted1(self as *const crate::QMatrix);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the matrix is the identity matrix, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QMatrix::isIdentity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#isIdentity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matrix is the identity matrix, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#reset">reset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_identity(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_isIdentity(self as *const crate::QMatrix)
    }

    /// <p>Returns <code>true</code> if the matrix is invertible, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QMatrix::isInvertible() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#isInvertible">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matrix is invertible, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#inverted">inverted</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_invertible(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_isInvertible(self as *const crate::QMatrix)
    }

    /// <p>Returns the horizontal scaling factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QMatrix::m11() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#m11">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal scaling factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m11(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_m11(self as *const crate::QMatrix)
    }

    /// <p>Returns the vertical shearing factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QMatrix::m12() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#m12">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical shearing factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#shear">shear</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m12(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_m12(self as *const crate::QMatrix)
    }

    /// <p>Returns the horizontal shearing factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QMatrix::m21() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#m21">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal shearing factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#shear">shear</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m21(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_m21(self as *const crate::QMatrix)
    }

    /// <p>Returns the vertical scaling factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QMatrix::m22() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#m22">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical scaling factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m22(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_m22(self as *const crate::QMatrix)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix::map(int x, int y, int* tx, int* ty) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Maps the given coordinates <i>x</i> and <i>y</i> into the coordinate system defined by this matrix. The resulting values are put in *<i>tx</i> and *<i>ty</i>, respectively. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_2_int2_int(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        tx: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        ty: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_map(
            self as *const crate::QMatrix,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(tx)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(ty)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Maps the given coordinates <i>x</i> and <i>y</i> into the coordinate system defined by this matrix. The resulting values are put in *<i>tx</i> and *<i>ty</i>, respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix::map(double x, double y, double* tx, double* ty) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps the given coordinates <i>x</i> and <i>y</i> into the coordinate system defined by this matrix. The resulting values are put in *<i>tx</i> and *<i>ty</i>, respectively.</p>
    /// <p>The coordinates are transformed using the following formulas:</p>
    /// <pre class="cpp">
    ///
    ///   x<span class="char">' = m11*x + m21*y + dx
    ///   y'</span> <span class="operator">=</span> m22<span class="operator">*</span>y <span class="operator">+</span> m12<span class="operator">*</span>x <span class="operator">+</span> dy
    ///
    /// </pre>
    /// <p>The point (x, y) is the original point, and (x', y') is the transformed point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn map_2_double2_double(
        &self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        tx: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        ty: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_map1(
            self as *const crate::QMatrix,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(tx)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(ty)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QMatrix::map(const QPoint& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a> object that is a copy of the given <i>point</i>, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_point(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_map2(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QMatrix::map(const QPointF& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> object that is a copy of the given <i>point</i>, mapped into the coordinate system defined by this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_point_f(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_map3(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine QMatrix::map(const QLine& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qline.html">QLine</a> object that is a copy of the given <i>line</i>, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_line(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::cpp_core::CppBox<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_map4(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(l).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF QMatrix::map(const QLineF& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qlinef.html">QLineF</a> object that is a copy of the given <i>line</i>, mapped into the coordinate system defined by this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_line_f(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_map5(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(l).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QMatrix::map(const QPolygonF& a) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> object that is a copy of the given <i>polygon</i>, mapped into the coordinate system defined by this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_polygon_f(
        &self,
        a: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_map6(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(a).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QMatrix::map(const QPolygon& a) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> object that is a copy of the given <i>polygon</i>, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_polygon(
        &self,
        a: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_map7(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(a).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QMatrix::map(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> object that is a copy of the given <i>region</i>, mapped into the coordinate system defined by this matrix.</p>
    /// <p>Calling this method can be rather expensive if rotations or shearing are used.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_region(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_map8(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QMatrix::map(const QPainterPath& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#map-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object that is a copy of the given <i>path</i>, mapped into the coordinate system defined by this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_painter_path(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_map9(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(p).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QMatrix::mapRect(const QRect& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#mapRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> object that is a copy of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_rect_q_rect(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_mapRect(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a> object that is a copy of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QMatrix::mapRect(const QRectF& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#mapRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a> object that is a copy of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix.</p>
    /// <p>The rectangle's coordinates are transformed using the following formulas:</p>
    /// <pre class="cpp">
    ///
    ///   x<span class="char">' = m11*x + m21*y + dx
    ///   y'</span> <span class="operator">=</span> m22<span class="operator">*</span>y <span class="operator">+</span> m12<span class="operator">*</span>x <span class="operator">+</span> dy
    ///
    /// </pre>
    /// <p>If rotation or shearing has been specified, this function returns the <i>bounding</i> rectangle. To retrieve the exact region the given <i>rectangle</i> maps to, use the <a href="http://doc.qt.io/qt-5/qmatrix.html#mapToPolygon">mapToPolygon</a>() function instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#mapToPolygon">mapToPolygon</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn map_rect_q_rect_f(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_mapRect1(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> representation of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QMatrix::mapToPolygon(const QRect& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#mapToPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> representation of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix.</p>
    /// <p>The rectangle's coordinates are transformed using the following formulas:</p>
    /// <pre class="cpp">
    ///
    ///   x<span class="char">' = m11*x + m21*y + dx
    ///   y'</span> <span class="operator">=</span> m22<span class="operator">*</span>y <span class="operator">+</span> m12<span class="operator">*</span>x <span class="operator">+</span> dy
    ///
    /// </pre>
    /// <p>Polygons and rectangles behave slightly differently when transformed (due to integer rounding), so <code>matrix.map(QPolygon(rectangle))</code> is not always the same as <code>matrix.mapToPolygon(rectangle)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#mapRect">mapRect</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn map_to_polygon(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_mapToPolygon(
            self as *const crate::QMatrix,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an identity matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix::QMatrix()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#QMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an identity matrix.</p>
    /// <p>All elements are set to zero except <code>m11</code> and <code>m22</code> (specifying the scale), which are set to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#reset">reset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_QMatrix1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a matrix with the elements, <i>m11</i>, <i>m12</i>, <i>m21</i>, <i>m22</i>, <i>dx</i> and <i>dy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix::QMatrix(double m11, double m12, double m21, double m22, double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#QMatrix-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a matrix with the elements, <i>m11</i>, <i>m12</i>, <i>m21</i>, <i>m22</i>, <i>dx</i> and <i>dy</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_6a(
        m11: ::std::os::raw::c_double,
        m12: ::std::os::raw::c_double,
        m21: ::std::os::raw::c_double,
        m22: ::std::os::raw::c_double,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_QMatrix2(m11, m12, m21, m22, dx, dy);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a matrix that is a copy of the given <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix::QMatrix(const QMatrix& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#QMatrix-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a matrix that is a copy of the given <i>matrix</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix_QMatrix4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Resets the matrix to an identity matrix, i.e. all elements are set to zero, except <code>m11</code> and <code>m22</code> (specifying the scale) which are set to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix::reset()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#reset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resets the matrix to an identity matrix, i.e. all elements are set to zero, except <code>m11</code> and <code>m22</code> (specifying the scale) which are set to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#QMatrix">QMatrix</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#isIdentity">isIdentity</a>(), and <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn reset(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_reset(self as *mut crate::QMatrix)
    }

    /// <p>Rotates the coordinate system the given <i>degrees</i> counterclockwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix& QMatrix::rotate(double a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#rotate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates the coordinate system the given <i>degrees</i> counterclockwise.</p>
    /// <p>Note that if you apply a <a href="http://doc.qt.io/qt-5/qmatrix.html" class="obsolete">QMatrix</a> to a point defined in widget coordinates, the direction of the rotation will be clockwise because the y-axis points downwards.</p>
    /// <p>Returns a reference to the matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotate(
        &mut self,
        a: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_rotate(self as *mut crate::QMatrix, a);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Scales the coordinate system by <i>sx</i> horizontally and <i>sy</i> vertically, and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix& QMatrix::scale(double sx, double sy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#scale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scales the coordinate system by <i>sx</i> horizontally and <i>sy</i> vertically, and returns a reference to the matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scale(
        &mut self,
        sx: ::std::os::raw::c_double,
        sy: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_scale(self as *mut crate::QMatrix, sx, sy);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Sets the matrix elements to the specified values, <i>m11</i>, <i>m12</i>, <i>m21</i>, <i>m22</i>, <i>dx</i> and <i>dy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix::setMatrix(double m11, double m12, double m21, double m22, double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#setMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the matrix elements to the specified values, <i>m11</i>, <i>m12</i>, <i>m21</i>, <i>m22</i>, <i>dx</i> and <i>dy</i>.</p>
    /// <p>Note that this function replaces the previous values. <a href="http://doc.qt.io/qt-5/qmatrix.html" class="obsolete">QMatrix</a> provide the <a href="http://doc.qt.io/qt-5/qmatrix.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#shear">shear</a>() convenience functions to manipulate the various matrix elements based on the currently defined coordinate system.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#QMatrix">QMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_matrix(
        &mut self,
        m11: ::std::os::raw::c_double,
        m12: ::std::os::raw::c_double,
        m21: ::std::os::raw::c_double,
        m22: ::std::os::raw::c_double,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_setMatrix(
            self as *mut crate::QMatrix,
            m11,
            m12,
            m21,
            m22,
            dx,
            dy,
        )
    }

    /// <p>Shears the coordinate system by <i>sh</i> horizontally and <i>sv</i> vertically, and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix& QMatrix::shear(double sh, double sv)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#shear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shears the coordinate system by <i>sh</i> horizontally and <i>sv</i> vertically, and returns a reference to the matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn shear(
        &mut self,
        sh: ::std::os::raw::c_double,
        sv: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_shear(self as *mut crate::QMatrix, sh, sv);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the matrix as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QMatrix::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_operator_QVariant(self as *const crate::QMatrix);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the coordinate system <i>dx</i> along the x axis and <i>dy</i> along the y axis, and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix& QMatrix::translate(double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the coordinate system <i>dx</i> along the x axis and <i>dy</i> along the y axis, and returns a reference to the matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate(
        &mut self,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_translate(self as *mut crate::QMatrix, dx, dy);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

pub mod q_painter_path {
    //! C++ type: <span style='color: green;'>```QPainterPath```</span>

    /// <p>This enum describes the types of elements used to connect vertices in subpaths.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPainterPath::ElementType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the types of elements used to connect vertices in subpaths.</p>
    /// <p>Note that elements added as closed subpaths using the <a href="http://doc.qt.io/qt-5/qpainterpath.html#addEllipse">addEllipse</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#addPath">addPath</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#addPolygon">addPolygon</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRect">addRect</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRegion">addRegion</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#addText">addText</a>() convenience functions, is actually added to the path as a collection of separate elements using the <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#lineTo">lineTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#cubicTo">cubicTo</a>() functions.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#elementAt">elementAt</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#elementCount">elementCount</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ElementType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ElementType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ElementType(value)
        }
    }

    impl From<ElementType> for ::std::os::raw::c_int {
        fn from(value: ElementType) -> Self {
            value.0
        }
    }

    impl ElementType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ElementType {
        /// A new subpath. See also <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>(). (C++ enum variant: <span style='color: green;'>```MoveToElement = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveToElement: crate::q_painter_path::ElementType =
            crate::q_painter_path::ElementType(0);
        /// A line. See also <a href="http://doc.qt.io/qt-5/qpainterpath.html#lineTo">lineTo</a>(). (C++ enum variant: <span style='color: green;'>```LineToElement = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const LineToElement: crate::q_painter_path::ElementType =
            crate::q_painter_path::ElementType(1);
        /// A curve. See also <a href="http://doc.qt.io/qt-5/qpainterpath.html#cubicTo">cubicTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#quadTo">quadTo</a>(). (C++ enum variant: <span style='color: green;'>```CurveToElement = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const CurveToElement: crate::q_painter_path::ElementType =
            crate::q_painter_path::ElementType(2);
        /// The extra data required to describe a curve in a CurveToElement element. (C++ enum variant: <span style='color: green;'>```CurveToDataElement = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const CurveToDataElement: crate::q_painter_path::ElementType =
            crate::q_painter_path::ElementType(3);
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
    ///
    /// C++ class: <span style='color: green;'>```QPainterPath::Element```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
    /// <p>Once a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is constructed, subpaths like lines and curves can be added to the path (creating <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::LineToElement</a> and <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::CurveToElement</a> components).</p>
    /// <p>The lines and curves stretch from the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() to the position passed as argument. The <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() of the <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is always the end position of the last subpath that was added (or the initial start point). The <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>() function can be used to move the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() without adding a line or curve, creating a <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::MoveToElement</a> component.</p></div>
    #[repr(C)]
    pub struct Element {
        _unused: u8,
    }
    impl Element {
        /// <p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPainterPath::Element& QPainterPath::Element::operator=(const QPainterPath::Element& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
        /// <p>Once a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is constructed, subpaths like lines and curves can be added to the path (creating <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::LineToElement</a> and <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::CurveToElement</a> components).</p>
        /// <p>The lines and curves stretch from the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() to the position passed as argument. The <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() of the <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is always the end position of the last subpath that was added (or the initial start point). The <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>() function can be used to move the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() without adding a line or curve, creating a <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::MoveToElement</a> component.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_painter_path::Element>>,
        ) -> ::cpp_core::MutRef<crate::q_painter_path::Element> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_operator_(
                self as *mut crate::q_painter_path::Element,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_painter_path::Element>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns <code>true</code> if the element is a curve, otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::Element::isCurveTo() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html#isCurveTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the element is a curve, otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath-element.html#type-var">type</a> and <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::CurveToElement</a>.</p></div>
        #[inline(always)]
        pub unsafe fn is_curve_to(&self) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_isCurveTo(
                self as *const crate::q_painter_path::Element,
            )
        }

        /// <p>Returns <code>true</code> if the element is a line, otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::Element::isLineTo() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html#isLineTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the element is a line, otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath-element.html#type-var">type</a> and <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::LineToElement</a>.</p></div>
        #[inline(always)]
        pub unsafe fn is_line_to(&self) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_isLineTo(
                self as *const crate::q_painter_path::Element,
            )
        }

        /// <p>Returns <code>true</code> if the element is moving the current position, otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::Element::isMoveTo() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html#isMoveTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the element is moving the current position, otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath-element.html#type-var">type</a> and <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::MoveToElement</a>.</p></div>
        #[inline(always)]
        pub unsafe fn is_move_to(&self) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_isMoveTo(
                self as *const crate::q_painter_path::Element,
            )
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainterPath::Element::Element()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
        /// <p>Once a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is constructed, subpaths like lines and curves can be added to the path (creating <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::LineToElement</a> and <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::CurveToElement</a> components).</p>
        /// <p>The lines and curves stretch from the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() to the position passed as argument. The <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() of the <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is always the end position of the last subpath that was added (or the initial start point). The <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>() function can be used to move the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() without adding a line or curve, creating a <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::MoveToElement</a> component.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_painter_path::Element> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_Element();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainterPath::Element::Element(const QPainterPath::Element& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
        /// <p>Once a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is constructed, subpaths like lines and curves can be added to the path (creating <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::LineToElement</a> and <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::CurveToElement</a> components).</p>
        /// <p>The lines and curves stretch from the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() to the position passed as argument. The <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() of the <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is always the end position of the last subpath that was added (or the initial start point). The <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>() function can be used to move the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() without adding a line or curve, creating a <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::MoveToElement</a> component.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_painter_path::Element>>,
        ) -> ::cpp_core::CppBox<crate::q_painter_path::Element> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_Element1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_painter_path::Element>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Sets the value of the <span style='color: green;'>```type```</span> field.
        #[inline(always)]
        pub unsafe fn set_type(&mut self, value: crate::q_painter_path::ElementType) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainterPath_Element_type(
                self as *mut crate::q_painter_path::Element,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```x```</span> field.
        #[inline(always)]
        pub unsafe fn set_x(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainterPath_Element_x(
                self as *mut crate::q_painter_path::Element,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```y```</span> field.
        #[inline(always)]
        pub unsafe fn set_y(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainterPath_Element_y(
                self as *mut crate::q_painter_path::Element,
                value,
            )
        }

        /// <p>Returns the element's position.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPointF QPainterPath::Element::operator QPointF() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html#operator-QPointF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the element's position.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath-element.html#x-var">x</a> and <a href="http://doc.qt.io/qt-5/qpainterpath-element.html#y-var">y</a>.</p></div>
        #[inline(always)]
        pub unsafe fn to_q_point_f(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_operator_QPointF(
                self as *const crate::q_painter_path::Element,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Returns the value of the <span style='color: green;'>```type```</span> field.
        #[inline(always)]
        pub unsafe fn type_(&self) -> crate::q_painter_path::ElementType {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_type(
                self as *const crate::q_painter_path::Element,
            )
        }

        /// Returns the value of the <span style='color: green;'>```x```</span> field.
        #[inline(always)]
        pub unsafe fn x(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_x(
                self as *const crate::q_painter_path::Element,
            )
        }

        /// Returns the value of the <span style='color: green;'>```y```</span> field.
        #[inline(always)]
        pub unsafe fn y(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_y(
                self as *const crate::q_painter_path::Element,
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_painter_path::Element>>
        for crate::q_painter_path::Element
    {
        /// <p>Returns <code>true</code> if this element is equal to <i>other</i>; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::Element::operator==(const QPainterPath::Element& e) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this element is equal to <i>other</i>; otherwise returns <code>false</code>.</p>
        /// <p>This function was introduced in  Qt 4.2.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath-element.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, e: &::cpp_core::Ref<crate::q_painter_path::Element>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_operator__(
                    self as *const crate::q_painter_path::Element,
                    e.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_painter_path::Element {
        /// <p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QPainterPath::Element::~Element()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpainterpath-element.html">QPainterPath::Element</a> class specifies the position and type of a subpath.</p>
        /// <p>Once a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is constructed, subpaths like lines and curves can be added to the path (creating <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::LineToElement</a> and <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::CurveToElement</a> components).</p>
        /// <p>The lines and curves stretch from the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() to the position passed as argument. The <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() of the <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object is always the end position of the last subpath that was added (or the initial start point). The <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>() function can be used to move the <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">currentPosition</a>() without adding a line or curve, creating a <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">QPainterPath::MoveToElement</a> component.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_Element_dElement(
                self as *mut crate::q_painter_path::Element,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> class provides a container for painting operations, enabling graphical shapes to be constructed and reused.</p>
///
/// C++ class: <span style='color: green;'>```QPainterPath```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpainterpath.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> class provides a container for painting operations, enabling graphical shapes to be constructed and reused.</p>
/// <p>A painter path is an object composed of a number of graphical building blocks, such as rectangles, ellipses, lines, and curves. Building blocks can be joined in closed subpaths, for example as a rectangle or an ellipse. A closed path has coinciding start and end points. Or they can exist independently as unclosed subpaths, such as lines and curves.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object can be used for filling, outlining, and clipping. To generate fillable outlines for a given painter path, use the <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html">QPainterPathStroker</a> class. The main advantage of painter paths over normal drawing operations is that complex shapes only need to be created once; then they can be drawn many times using only calls to the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPath">QPainter::drawPath</a>() function.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> provides a collection of functions that can be used to obtain information about the path and its elements. In addition it is possible to reverse the order of the elements using the <a href="http://doc.qt.io/qt-5/qpainterpath.html#toReversed">toReversed</a>() function. There are also several functions to convert this painter path object into a polygon representation.</p>
/// <a name="composing-a-qpainterpath"></a></div>
#[repr(C)]
pub struct QPainterPath {
    _unused: u8,
}
impl QPainterPath {
    /// <p>Creates an ellipse within the specified <i>boundingRectangle</i> and adds it to the painter path as a closed subpath.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addEllipse(const QRectF& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addEllipse">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates an ellipse within the specified <i>boundingRectangle</i> and adds it to the painter path as a closed subpath.</p>
    /// <p>The ellipse is composed of a clockwise curve, starting and finishing at zero degrees (the 3 o'clock position).</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainterpath-addellipse.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> myGradient;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> myPen;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> boundingRectangle;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath">QPainterPath</a></span> myPath;
    ///   myPath<span class="operator">.</span>addEllipse(boundingRectangle);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>setBrush(myGradient);
    ///   painter<span class="operator">.</span>setPen(myPen);
    ///   painter<span class="operator">.</span>drawPath(myPath);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#arcTo">arcTo</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawEllipse">QPainter::drawEllipse</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn add_ellipse_1a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addEllipse(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addEllipse(double x, double y, double w, double h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addEllipse-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates an ellipse within the bounding rectangle defined by its top-left corner at (<i>x</i>, <i>y</i>), <i>width</i> and <i>height</i>, and adds it to the painter path as a closed subpath.</p></div>
    #[inline(always)]
    pub unsafe fn add_ellipse_4a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        w: ::std::os::raw::c_double,
        h: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addEllipse1(
            self as *mut crate::QPainterPath,
            x,
            y,
            w,
            h,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addEllipse(const QPointF& center, double rx, double ry)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addEllipse-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates an ellipse positioned at <i>center</i> with radii <i>rx</i> and <i>ry</i>, and adds it to the painter path as a closed subpath.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn add_ellipse_3a(
        &mut self,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        rx: ::std::os::raw::c_double,
        ry: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addEllipse2(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(center)
                .as_raw_ptr(),
            rx,
            ry,
        )
    }

    /// <p>Adds the given <i>path</i> to <i>this</i> path as a closed subpath.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addPath(const QPainterPath& path)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>path</i> to <i>this</i> path as a closed subpath.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#connectPath">connectPath</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn add_path(
        &mut self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addPath(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
        )
    }

    /// <p>Adds the given <i>polygon</i> to the path as an (unclosed) subpath.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addPolygon(const QPolygonF& polygon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>polygon</i> to the path as an (unclosed) subpath.</p>
    /// <p>Note that the current position after the polygon has been added, is the last point in <i>polygon</i>. To draw a line back to the first point, use the <a href="http://doc.qt.io/qt-5/qpainterpath.html#closeSubpath">closeSubpath</a>() function.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainterpath-addpolygon.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> myGradient;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> myPen;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a></span> myPolygon;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath">QPainterPath</a></span> myPath;
    ///   myPath<span class="operator">.</span>addPolygon(myPolygon);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>setBrush(myGradient);
    ///   painter<span class="operator">.</span>setPen(myPen);
    ///   painter<span class="operator">.</span>drawPath(myPath);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#lineTo">lineTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn add_polygon(
        &mut self,
        polygon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addPolygon(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(polygon)
                .as_raw_ptr(),
        )
    }

    /// <p>Adds the given <i>rectangle</i> to this path as a closed subpath.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRect(const QRectF& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>rectangle</i> to this path as a closed subpath.</p>
    /// <p>The <i>rectangle</i> is added as a clockwise set of lines. The painter path's current position after the <i>rectangle</i> has been added is at the top-left corner of the rectangle.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainterpath-addrectangle.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> myGradient;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> myPen;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> myRectangle;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath">QPainterPath</a></span> myPath;
    ///   myPath<span class="operator">.</span>addRect(myRectangle);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>setBrush(myGradient);
    ///   painter<span class="operator">.</span>setPen(myPen);
    ///   painter<span class="operator">.</span>drawPath(myPath);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addRegion">addRegion</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#lineTo">lineTo</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn add_rect_1a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRect(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRect(double x, double y, double w, double h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds a rectangle at position (<i>x</i>, <i>y</i>), with the given <i>width</i> and <i>height</i>, as a closed subpath.</p></div>
    #[inline(always)]
    pub unsafe fn add_rect_4a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        w: ::std::os::raw::c_double,
        h: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRect1(
            self as *mut crate::QPainterPath,
            x,
            y,
            w,
            h,
        )
    }

    /// <p>Adds the given <i>region</i> to the path by adding each rectangle in the region as a separate closed subpath.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRegion(const QRegion& region)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRegion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>region</i> to the path by adding each rectangle in the region as a separate closed subpath.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addRect">addRect</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn add_region(
        &mut self,
        region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRegion(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(region).as_raw_ptr(),
        )
    }

    /// <p>Adds a rectangle <i>r</i> with rounded corners to the path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRoundRect(const QRectF& rect, int xRnd, int yRnd)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath-obsolete.html#addRoundRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a rectangle <i>r</i> with rounded corners to the path.</p>
    /// <p>The <i>xRnd</i> and <i>yRnd</i> arguments specify how rounded the corners should be. 0 is angled corners, 99 is maximum roundedness.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addRoundedRect">addRoundedRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_round_rect_3a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        x_rnd: ::std::os::raw::c_int,
        y_rnd: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRoundRect(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            x_rnd,
            y_rnd,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRoundRect(double x, double y, double w, double h, int xRnd, int yRnd)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath-obsolete.html#addRoundRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds a rectangle with rounded corners to the path. The rectangle is constructed from <i>x</i>, <i>y</i>, and the width and height <i>w</i> and <i>h</i>.</p>
    /// <p>The <i>xRnd</i> and <i>yRnd</i> arguments specify how rounded the corners should be. 0 is angled corners, 99 is maximum roundedness.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addRoundedRect">addRoundedRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_round_rect_6a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        w: ::std::os::raw::c_double,
        h: ::std::os::raw::c_double,
        x_rnd: ::std::os::raw::c_int,
        y_rnd: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRoundRect1(
            self as *mut crate::QPainterPath,
            x,
            y,
            w,
            h,
            x_rnd,
            y_rnd,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRoundRect(const QRectF& rect, int roundness)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath-obsolete.html#addRoundRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds a rounded rectangle, <i>rect</i>, to the path.</p>
    /// <p>The <i>roundness</i> argument specifies uniform roundness for the rectangle. Vertical and horizontal roundness factors will be adjusted accordingly to act uniformly around both axes. Use this method if you want a rectangle equally rounded across both the X and Y axis.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addRoundedRect">addRoundedRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_round_rect_2a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        roundness: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRoundRect2(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            roundness,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRoundRect(double x, double y, double w, double h, int roundness)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath-obsolete.html#addRoundRect-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds a rounded rectangle to the path, defined by the coordinates <i>x</i> and <i>y</i> with the specified <i>width</i> and <i>height</i>.</p>
    /// <p>The <i>roundness</i> argument specifies uniform roundness for the rectangle. Vertical and horizontal roundness factors will be adjusted accordingly to act uniformly around both axes. Use this method if you want a rectangle equally rounded across both the X and Y axis.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addRoundedRect">addRoundedRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_round_rect_5a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        w: ::std::os::raw::c_double,
        h: ::std::os::raw::c_double,
        roundness: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRoundRect3(
            self as *mut crate::QPainterPath,
            x,
            y,
            w,
            h,
            roundness,
        )
    }

    /// <p>Adds the given rectangle <i>rect</i> with rounded corners to the path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRoundedRect(const QRectF& rect, double xRadius, double yRadius, Qt::SizeMode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRoundedRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given rectangle <i>rect</i> with rounded corners to the path.</p>
    /// <p>The <i>xRadius</i> and <i>yRadius</i> arguments specify the radii of the ellipses defining the corners of the rounded rectangle. When <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#SizeMode-enum">Qt::RelativeSize</a>, <i>xRadius</i> and <i>yRadius</i> are specified in percentage of half the rectangle's width and height respectively, and should be in the range 0.0 to 100.0.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addRect">addRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_rounded_rect_4a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
        mode: ::qt_core::SizeMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRoundedRect(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            x_radius,
            y_radius,
            mode,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRoundedRect(double x, double y, double w, double h, double xRadius, double yRadius, Qt::SizeMode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRoundedRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds the given rectangle <i>x</i>, <i>y</i>, <i>w</i>, <i>h</i> with rounded corners to the path.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn add_rounded_rect_7a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        w: ::std::os::raw::c_double,
        h: ::std::os::raw::c_double,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
        mode: ::qt_core::SizeMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRoundedRect1(
            self as *mut crate::QPainterPath,
            x,
            y,
            w,
            h,
            x_radius,
            y_radius,
            mode,
        )
    }

    /// <p>Adds the given rectangle <i>rect</i> with rounded corners to the path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRoundedRect(const QRectF& rect, double xRadius, double yRadius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRoundedRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given rectangle <i>rect</i> with rounded corners to the path.</p>
    /// <p>The <i>xRadius</i> and <i>yRadius</i> arguments specify the radii of the ellipses defining the corners of the rounded rectangle. When <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#SizeMode-enum">Qt::RelativeSize</a>, <i>xRadius</i> and <i>yRadius</i> are specified in percentage of half the rectangle's width and height respectively, and should be in the range 0.0 to 100.0.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addRect">addRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_rounded_rect_3a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRoundedRect2(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            x_radius,
            y_radius,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addRoundedRect(double x, double y, double w, double h, double xRadius, double yRadius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRoundedRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds the given rectangle <i>x</i>, <i>y</i>, <i>w</i>, <i>h</i> with rounded corners to the path.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn add_rounded_rect_6a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        w: ::std::os::raw::c_double,
        h: ::std::os::raw::c_double,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addRoundedRect3(
            self as *mut crate::QPainterPath,
            x,
            y,
            w,
            h,
            x_radius,
            y_radius,
        )
    }

    /// <p>Adds the given <i>text</i> to this path as a set of closed subpaths created from the <i>font</i> supplied. The subpaths are positioned so that the left end of the text's baseline lies at the specified <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addText(const QPointF& point, const QFont& f, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>text</i> to this path as a set of closed subpaths created from the <i>font</i> supplied. The subpaths are positioned so that the left end of the text's baseline lies at the specified <i>point</i>.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainterpath-addtext.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> myGradient;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> myPen;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> myFont;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span> baseline(x<span class="operator">,</span> y);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath">QPainterPath</a></span> myPath;
    ///   myPath<span class="operator">.</span>addText(baseline<span class="operator">,</span> myFont<span class="operator">,</span> tr(<span class="string">"Qt"</span>));
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>setBrush(myGradient);
    ///   painter<span class="operator">.</span>setPen(myPen);
    ///   painter<span class="operator">.</span>drawPath(myPath);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawText">QPainter::drawText</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn add_text_3a(
        &mut self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        f: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addText(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(f).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::addText(double x, double y, const QFont& f, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#addText-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds the given <i>text</i> to this path as a set of closed subpaths created from the <i>font</i> supplied. The subpaths are positioned so that the left end of the text's baseline lies at the point specified by (<i>x</i>, <i>y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn add_text_4a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        f: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_addText1(
            self as *mut crate::QPainterPath,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(f).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the angle of the path tangent at the percentage <i>t</i>. The argument <i>t</i> has to be between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainterPath::angleAtPercent(double t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#angleAtPercent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the angle of the path tangent at the percentage <i>t</i>. The argument <i>t</i> has to be between 0 and 1.</p>
    /// <p>Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.</p>
    /// <p>Note that similarly to the other percent methods, the percentage measurement is not linear with regards to the length if curves are present in the path. When curves are present the percentage argument is mapped to the t parameter of the Bezier equations.</p></div>
    #[inline(always)]
    pub unsafe fn angle_at_percent(&self, t: ::std::os::raw::c_double) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_angleAtPercent(
            self as *const crate::QPainterPath,
            t,
        )
    }

    /// <p>Creates a move to that lies on the arc that occupies the given <i>rectangle</i> at <i>angle</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::arcMoveTo(const QRectF& rect, double angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#arcMoveTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a move to that lies on the arc that occupies the given <i>rectangle</i> at <i>angle</i>.</p>
    /// <p>Angles are specified in degrees. Clockwise arcs can be specified using negative angles.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#arcTo">arcTo</a>().</p></div>
    #[inline(always)]
    pub unsafe fn arc_move_to_2a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        angle: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_arcMoveTo(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            angle,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::arcMoveTo(double x, double y, double w, double h, double angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#arcMoveTo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates a move to that lies on the arc that occupies the <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>) at <i>angle</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn arc_move_to_5a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        w: ::std::os::raw::c_double,
        h: ::std::os::raw::c_double,
        angle: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_arcMoveTo1(
            self as *mut crate::QPainterPath,
            x,
            y,
            w,
            h,
            angle,
        )
    }

    /// <p>Creates an arc that occupies the given <i>rectangle</i>, beginning at the specified <i>startAngle</i> and extending <i>sweepLength</i> degrees counter-clockwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::arcTo(const QRectF& rect, double startAngle, double arcLength)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#arcTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates an arc that occupies the given <i>rectangle</i>, beginning at the specified <i>startAngle</i> and extending <i>sweepLength</i> degrees counter-clockwise.</p>
    /// <p>Angles are specified in degrees. Clockwise arcs can be specified using negative angles.</p>
    /// <p>Note that this function connects the starting point of the arc to the current position if they are not already connected. After the arc has been added, the current position is the last point in arc. To draw a line back to the first point, use the <a href="http://doc.qt.io/qt-5/qpainterpath.html#closeSubpath">closeSubpath</a>() function.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainterpath-arcto.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> myGradient;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> myPen;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span> center<span class="operator">,</span> startPoint;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath">QPainterPath</a></span> myPath;
    ///   myPath<span class="operator">.</span>moveTo(center);
    ///   myPath<span class="operator">.</span>arcTo(boundingRect<span class="operator">,</span> startAngle<span class="operator">,</span>
    /// &#32;   &#32;   &#32;      sweepLength);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>setBrush(myGradient);
    ///   painter<span class="operator">.</span>setPen(myPen);
    ///   painter<span class="operator">.</span>drawPath(myPath);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#arcMoveTo">arcMoveTo</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#addEllipse">addEllipse</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawArc">QPainter::drawArc</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawPie">QPainter::drawPie</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn arc_to_3a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        start_angle: ::std::os::raw::c_double,
        arc_length: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_arcTo(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            start_angle,
            arc_length,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::arcTo(double x, double y, double w, double h, double startAngle, double arcLength)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#arcTo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates an arc that occupies the rectangle <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>), beginning at the specified <i>startAngle</i> and extending <i>sweepLength</i> degrees counter-clockwise.</p></div>
    #[inline(always)]
    pub unsafe fn arc_to_6a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        w: ::std::os::raw::c_double,
        h: ::std::os::raw::c_double,
        start_angle: ::std::os::raw::c_double,
        arc_length: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_arcTo1(
            self as *mut crate::QPainterPath,
            x,
            y,
            w,
            h,
            start_angle,
            arc_length,
        )
    }

    /// <p>Returns the bounding rectangle of this painter path as a rectangle with floating point precision.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPainterPath::boundingRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of this painter path as a rectangle with floating point precision.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#controlPointRect">controlPointRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_boundingRect(
            self as *const crate::QPainterPath,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of elements allocated by the <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPainterPath::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of elements allocated by the <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a>.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#clear">clear</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#reserve">reserve</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_capacity(self as *const crate::QPainterPath)
    }

    /// <p>Clears the path elements stored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the path elements stored.</p>
    /// <p>This allows the path to reuse previous memory allocations.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#capacity">capacity</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_clear(self as *mut crate::QPainterPath)
    }

    /// <p>Closes the current subpath by drawing a line to the beginning of the subpath, automatically starting a new path. The current point of the new path is (0, 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::closeSubpath()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#closeSubpath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Closes the current subpath by drawing a line to the beginning of the subpath, automatically starting a new path. The current point of the new path is (0, 0).</p>
    /// <p>If the subpath does not contain any elements, this function does nothing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn close_subpath(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_closeSubpath(self as *mut crate::QPainterPath)
    }

    /// <p>Connects the given <i>path</i> to <i>this</i> path by adding a line from the last element of this path to the first element of the given path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::connectPath(const QPainterPath& path)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#connectPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Connects the given <i>path</i> to <i>this</i> path by adding a line from the last element of this path to the first element of the given path.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addPath">addPath</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn connect_path(
        &mut self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_connectPath(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the given <i>point</i> is inside the path, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::contains(const QPointF& pt) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the given <i>point</i> is inside the path, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#intersects">intersects</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains_q_point_f(
        &self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_contains(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pt).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the given <i>rectangle</i> is inside the path, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::contains(const QRectF& rect) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#contains-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the given <i>rectangle</i> is inside the path, otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn contains_q_rect_f(
        &self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_contains1(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the given path <i>p</i> is contained within the current path. Returns <code>false</code> if any edges of the current path and <i>p</i> intersect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::contains(const QPainterPath& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#contains-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the given path <i>p</i> is contained within the current path. Returns <code>false</code> if any edges of the current path and <i>p</i> intersect.</p>
    /// <p>Set operations on paths will treat the paths as areas. Non-closed paths will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#intersects">intersects</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains_q_painter_path(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_contains2(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>Returns the rectangle containing all the points and control points in this path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPainterPath::controlPointRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#controlPointRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rectangle containing all the points and control points in this path.</p>
    /// <p>This function is significantly faster to compute than the exact <a href="http://doc.qt.io/qt-5/qpainterpath.html#boundingRect">boundingRect</a>(), and the returned rectangle is always a superset of the rectangle returned by <a href="http://doc.qt.io/qt-5/qpainterpath.html#boundingRect">boundingRect</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn control_point_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_controlPointRect(
            self as *const crate::QPainterPath,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns the given <i>path</i> to this painter path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath& QPainterPath::operator=(const QPainterPath& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the given <i>path</i> to this painter path.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath">QPainterPath</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::MutRef<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator_(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Adds a cubic Bezier curve between the current position and the given <i>endPoint</i> using the control points specified by <i>c1</i>, and <i>c2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::cubicTo(const QPointF& ctrlPt1, const QPointF& ctrlPt2, const QPointF& endPt)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#cubicTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a cubic Bezier curve between the current position and the given <i>endPoint</i> using the control points specified by <i>c1</i>, and <i>c2</i>.</p>
    /// <p>After the curve is added, the current position is updated to be at the end point of the curve.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainterpath-cubicto.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> myGradient;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> myPen;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath">QPainterPath</a></span> myPath;
    ///   myPath<span class="operator">.</span>cubicTo(c1<span class="operator">,</span> c2<span class="operator">,</span> endPoint);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>setBrush(myGradient);
    ///   painter<span class="operator">.</span>setPen(myPen);
    ///   painter<span class="operator">.</span>drawPath(myPath);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#quadTo">quadTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn cubic_to_3a(
        &mut self,
        ctrl_pt1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ctrl_pt2: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        end_pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_cubicTo(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(ctrl_pt1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(ctrl_pt2)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(end_pt)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::cubicTo(double ctrlPt1x, double ctrlPt1y, double ctrlPt2x, double ctrlPt2y, double endPtx, double endPty)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#cubicTo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds a cubic Bezier curve between the current position and the end point (<i>endPointX</i>, <i>endPointY</i>) with control points specified by (<i>c1X</i>, <i>c1Y</i>) and (<i>c2X</i>, <i>c2Y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn cubic_to_6a(
        &mut self,
        ctrl_pt_1x: ::std::os::raw::c_double,
        ctrl_pt_1y: ::std::os::raw::c_double,
        ctrl_pt_2x: ::std::os::raw::c_double,
        ctrl_pt_2y: ::std::os::raw::c_double,
        end_ptx: ::std::os::raw::c_double,
        end_pty: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_cubicTo1(
            self as *mut crate::QPainterPath,
            ctrl_pt_1x,
            ctrl_pt_1y,
            ctrl_pt_2x,
            ctrl_pt_2y,
            end_ptx,
            end_pty,
        )
    }

    /// <p>Returns the current position of the path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QPainterPath::currentPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#currentPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current position of the path.</p></div>
    #[inline(always)]
    pub unsafe fn current_position(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_currentPosition(
            self as *const crate::QPainterPath,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the element at the given <i>index</i> in the painter path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath::Element QPainterPath::elementAt(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#elementAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the element at the given <i>index</i> in the painter path.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">ElementType</a>, <a href="http://doc.qt.io/qt-5/qpainterpath.html#elementCount">elementCount</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn element_at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_painter_path::Element> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_elementAt(
            self as *const crate::QPainterPath,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of path elements in the painter path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPainterPath::elementCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#elementCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of path elements in the painter path.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">ElementType</a>, <a href="http://doc.qt.io/qt-5/qpainterpath.html#elementAt">elementAt</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn element_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_elementCount(self as *const crate::QPainterPath)
    }

    /// <p>Returns the painter path's currently set fill rule.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::FillRule QPainterPath::fillRule() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#fillRule">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the painter path's currently set fill rule.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#setFillRule">setFillRule</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_rule(&self) -> ::qt_core::FillRule {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_fillRule(self as *const crate::QPainterPath)
    }

    /// <p>Returns a path which is the intersection of this path's fill area and <i>p</i>'s fill area. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::intersected(const QPainterPath& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#intersected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a path which is the intersection of this path's fill area and <i>p</i>'s fill area. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn intersected(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_intersected(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if any point in the given <i>rectangle</i> intersects the path; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::intersects(const QRectF& rect) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#intersects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if any point in the given <i>rectangle</i> intersects the path; otherwise returns <code>false</code>.</p>
    /// <p>There is an intersection if any of the lines making up the rectangle crosses a part of the path or if any part of the rectangle overlaps with any area enclosed by the path. This function respects the current <a href="http://doc.qt.io/qt-5/qpainterpath.html#fillRule">fillRule</a> to determine what is considered inside the path.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn intersects_q_rect_f(
        &self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_intersects(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the current path intersects at any point the given path <i>p</i>. Also returns <code>true</code> if the current path contains or is contained by any part of <i>p</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::intersects(const QPainterPath& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#intersects-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the current path intersects at any point the given path <i>p</i>. Also returns <code>true</code> if the current path contains or is contained by any part of <i>p</i>.</p>
    /// <p>Set operations on paths will treat the paths as areas. Non-closed paths will be treated as implicitly closed.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn intersects_q_painter_path(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_intersects1(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if either there are no elements in this path, or if the only element is a <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">MoveToElement</a>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if either there are no elements in this path, or if the only element is a <a href="http://doc.qt.io/qt-5/qpainterpath.html#ElementType-enum">MoveToElement</a>; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#elementCount">elementCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_isEmpty(self as *const crate::QPainterPath)
    }

    /// <p>Returns the length of the current path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainterPath::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the length of the current path.</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_length(self as *const crate::QPainterPath)
    }

    /// <p>Adds a straight line from the current position to the given <i>endPoint</i>. After the line is drawn, the current position is updated to be at the end point of the line.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::lineTo(const QPointF& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#lineTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a straight line from the current position to the given <i>endPoint</i>. After the line is drawn, the current position is updated to be at the end point of the line.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#addPolygon">addPolygon</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#addRect">addRect</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn line_to_1a(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_lineTo(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::lineTo(double x, double y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#lineTo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a line from the current position to the point (<i>x</i>, <i>y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn line_to_2a(&mut self, x: ::std::os::raw::c_double, y: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_lineTo1(self as *mut crate::QPainterPath, x, y)
    }

    /// <p>Moves the current point to the given <i>point</i>, implicitly starting a new subpath and closing the previous one.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::moveTo(const QPointF& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the current point to the given <i>point</i>, implicitly starting a new subpath and closing the previous one.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#closeSubpath">closeSubpath</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn move_to_1a(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_moveTo(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::moveTo(double x, double y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Moves the current position to (<i>x</i>, <i>y</i>) and starts a new subpath, implicitly closing the previous path.</p></div>
    #[inline(always)]
    pub unsafe fn move_to_2a(&mut self, x: ::std::os::raw::c_double, y: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_moveTo1(self as *mut crate::QPainterPath, x, y)
    }

    /// <p>Constructs an empty <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainterPath::QPainterPath()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_QPainterPath();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object with the given <i>startPoint</i> as its current position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainterPath::QPainterPath(const QPointF& startPoint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object with the given <i>startPoint</i> as its current position.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        start_point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_QPainterPath1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(start_point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object that is a copy of the given <i>path</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainterPath::QPainterPath(const QPainterPath& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#QPainterPath-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object that is a copy of the given <i>path</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_QPainterPath2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns percentage of the whole path at the specified length <i>len</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainterPath::percentAtLength(double t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#percentAtLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns percentage of the whole path at the specified length <i>len</i>.</p>
    /// <p>Note that similarly to other percent methods, the percentage measurement is not linear with regards to the length, if curves are present in the path. When curves are present the percentage argument is mapped to the t parameter of the Bezier equations.</p></div>
    #[inline(always)]
    pub unsafe fn percent_at_length(
        &self,
        t: ::std::os::raw::c_double,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_percentAtLength(
            self as *const crate::QPainterPath,
            t,
        )
    }

    /// <p>Returns the point at at the percentage <i>t</i> of the current path. The argument <i>t</i> has to be between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QPainterPath::pointAtPercent(double t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#pointAtPercent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the point at at the percentage <i>t</i> of the current path. The argument <i>t</i> has to be between 0 and 1.</p>
    /// <p>Note that similarly to other percent methods, the percentage measurement is not linear with regards to the length, if curves are present in the path. When curves are present the percentage argument is mapped to the t parameter of the Bezier equations.</p></div>
    #[inline(always)]
    pub unsafe fn point_at_percent(
        &self,
        t: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_pointAtPercent(
            self as *const crate::QPainterPath,
            t,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Adds a quadratic Bezier curve between the current position and the given <i>endPoint</i> with the control point specified by <i>c</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::quadTo(const QPointF& ctrlPt, const QPointF& endPt)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#quadTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a quadratic Bezier curve between the current position and the given <i>endPoint</i> with the control point specified by <i>c</i>.</p>
    /// <p>After the curve is added, the current point is updated to be at the end point of the curve.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#cubicTo">cubicTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#composing-a-qpainterpath">Composing a QPainterPath</a>.</p></div>
    #[inline(always)]
    pub unsafe fn quad_to_2a(
        &mut self,
        ctrl_pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        end_pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_quadTo(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(ctrl_pt)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(end_pt)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::quadTo(double ctrlPtx, double ctrlPty, double endPtx, double endPty)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#quadTo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Adds a quadratic Bezier curve between the current point and the endpoint (<i>endPointX</i>, <i>endPointY</i>) with the control point specified by (<i>cx</i>, <i>cy</i>).</p></div>
    #[inline(always)]
    pub unsafe fn quad_to_4a(
        &mut self,
        ctrl_ptx: ::std::os::raw::c_double,
        ctrl_pty: ::std::os::raw::c_double,
        end_ptx: ::std::os::raw::c_double,
        end_pty: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_quadTo1(
            self as *mut crate::QPainterPath,
            ctrl_ptx,
            ctrl_pty,
            end_ptx,
            end_pty,
        )
    }

    /// <p>Reserves a given amount of elements in <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a>'s internal memory.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserves a given amount of elements in <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a>'s internal memory.</p>
    /// <p>Attempts to allocate memory for at least <i>size</i> elements.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#clear">clear</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#capacity">capacity</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#reserve">QVector::reserve</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_reserve(self as *mut crate::QPainterPath, size)
    }

    /// <p>Sets the x and y coordinate of the element at index <i>index</i> to <i>x</i> and <i>y</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::setElementPositionAt(int i, double x, double y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#setElementPositionAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the x and y coordinate of the element at index <i>index</i> to <i>x</i> and <i>y</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn set_element_position_at(
        &mut self,
        i: ::std::os::raw::c_int,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_setElementPositionAt(
            self as *mut crate::QPainterPath,
            i,
            x,
            y,
        )
    }

    /// <p>Sets the fill rule of the painter path to the given <i>fillRule</i>. Qt provides two methods for filling paths:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::setFillRule(Qt::FillRule fillRule)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#setFillRule">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the fill rule of the painter path to the given <i>fillRule</i>. Qt provides two methods for filling paths:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th><a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::OddEvenFill</a> (default)</th><th><a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::WindingFill</a></th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qt-fillrule-oddeven.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qt-fillrule-winding.png" alt=""></td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#fillRule">fillRule</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_fill_rule(&mut self, fill_rule: ::qt_core::FillRule) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_setFillRule(
            self as *mut crate::QPainterPath,
            fill_rule,
        )
    }

    /// <p>Returns a simplified version of this path. This implies merging all subpaths that intersect, and returning a path containing no intersecting edges. Consecutive parallel lines will also be merged. The simplified path will always use the default fill rule, <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::OddEvenFill</a>. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::simplified() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#simplified">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a simplified version of this path. This implies merging all subpaths that intersect, and returning a path containing no intersecting edges. Consecutive parallel lines will also be merged. The simplified path will always use the default fill rule, <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::OddEvenFill</a>. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn simplified(&self) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_simplified(
            self as *const crate::QPainterPath,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the slope of the path at the percentage <i>t</i>. The argument <i>t</i> has to be between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainterPath::slopeAtPercent(double t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#slopeAtPercent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the slope of the path at the percentage <i>t</i>. The argument <i>t</i> has to be between 0 and 1.</p>
    /// <p>Note that similarly to other percent methods, the percentage measurement is not linear with regards to the length, if curves are present in the path. When curves are present the percentage argument is mapped to the t parameter of the Bezier equations.</p></div>
    #[inline(always)]
    pub unsafe fn slope_at_percent(&self, t: ::std::os::raw::c_double) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_slopeAtPercent(
            self as *const crate::QPainterPath,
            t,
        )
    }

    /// <p>Returns a path which is <i>p</i>'s fill area subtracted from this path's fill area.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::subtracted(const QPainterPath& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#subtracted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a path which is <i>p</i>'s fill area subtracted from this path's fill area.</p>
    /// <p>Set operations on paths will treat the paths as areas. Non-closed paths will be treated as implicitly closed. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn subtracted(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_subtracted(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainterpath.html#subtracted">subtracted</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::subtractedInverted(const QPainterPath& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath-obsolete.html#subtractedInverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainterpath.html#subtracted">subtracted</a>() instead.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#subtracted">subtracted</a>().</p></div>
    #[inline(always)]
    pub unsafe fn subtracted_inverted(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_subtractedInverted(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps painter path <i>other</i> with this painter path. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::swap(QPainterPath& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps painter path <i>other</i> with this painter path. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPainterPath>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_swap(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPainterPath>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QPainterPath::toFillPolygon(const QMatrix& matrix = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygon-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn to_fill_polygon_q_matrix(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toFillPolygon(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Converts the path into a polygon using the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> <i>matrix</i>, and returns the polygon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QPainterPath::toFillPolygon(const QTransform& matrix) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the path into a polygon using the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> <i>matrix</i>, and returns the polygon.</p>
    /// <p>The polygon is created by first converting all subpaths to polygons, then using a rewinding technique to make sure that overlapping subpaths can be filled using the correct fill rule.</p>
    /// <p>Note that rewinding inserts addition lines in the polygon so the outline of the fill polygon does not match the outline of the path.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#toSubpathPolygons">toSubpathPolygons</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygons">toFillPolygons</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#qpainterpath-conversion">QPainterPath Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_fill_polygon_q_transform(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toFillPolygon1(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QPainterPath::toFillPolygon() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygon-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn to_fill_polygon(&self) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toFillPolygon2(
            self as *const crate::QPainterPath,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QPainterPath::toFillPolygons(const QMatrix& matrix = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygons-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn to_fill_polygons_q_matrix(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toFillPolygons(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Converts the path into a list of polygons using the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> <i>matrix</i>, and returns the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QPainterPath::toFillPolygons(const QTransform& matrix) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygons">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the path into a list of polygons using the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> <i>matrix</i>, and returns the list.</p>
    /// <p>The function differs from the <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygon">toFillPolygon</a>() function in that it creates several polygons. It is provided because it is usually faster to draw several small polygons than to draw one large polygon, even though the total number of points drawn is the same.</p>
    /// <p>The toFillPolygons() function differs from the <a href="http://doc.qt.io/qt-5/qpainterpath.html#toSubpathPolygons">toSubpathPolygons</a>() function in that it create only polygon for subpaths that have overlapping bounding rectangles.</p>
    /// <p>Like the <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygon">toFillPolygon</a>() function, this function uses a rewinding technique to make sure that overlapping subpaths can be filled using the correct fill rule. Note that rewinding inserts addition lines in the polygons so the outline of the fill polygon does not match the outline of the path.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#toSubpathPolygons">toSubpathPolygons</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygon">toFillPolygon</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#qpainterpath-conversion">QPainterPath Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_fill_polygons_q_transform(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toFillPolygons1(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QPainterPath::toFillPolygons() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygons-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn to_fill_polygons(&self) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toFillPolygons2(
            self as *const crate::QPainterPath,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a reversed copy of the path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::toReversed() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toReversed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a reversed copy of the path.</p>
    /// <p>It is the order of the elements that is reversed: If a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> is composed by calling the <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#lineTo">lineTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#cubicTo">cubicTo</a>() functions in the specified order, the reversed copy is composed by calling <a href="http://doc.qt.io/qt-5/qpainterpath.html#cubicTo">cubicTo</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#lineTo">lineTo</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#moveTo">moveTo</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_reversed(&self) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toReversed(
            self as *const crate::QPainterPath,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QPainterPath::toSubpathPolygons(const QMatrix& matrix = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toSubpathPolygons-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn to_subpath_polygons_q_matrix(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toSubpathPolygons(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Converts the path into a list of polygons using the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> <i>matrix</i>, and returns the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QPainterPath::toSubpathPolygons(const QTransform& matrix) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toSubpathPolygons">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the path into a list of polygons using the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> <i>matrix</i>, and returns the list.</p>
    /// <p>This function creates one polygon for each subpath regardless of intersecting subpaths (i.e. overlapping bounding rectangles). To make sure that such overlapping subpaths are filled correctly, use the <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygons">toFillPolygons</a>() function instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygons">toFillPolygons</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#toFillPolygon">toFillPolygon</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#qpainterpath-conversion">QPainterPath Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_subpath_polygons_q_transform(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toSubpathPolygons1(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QPainterPath::toSubpathPolygons() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#toSubpathPolygons-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn to_subpath_polygons(&self) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_toSubpathPolygons2(
            self as *const crate::QPainterPath,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Translates all elements in the path by (<i>dx</i>, <i>dy</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::translate(double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates all elements in the path by (<i>dx</i>, <i>dy</i>).</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#translated">translated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_2a(
        &mut self,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_translate(
            self as *mut crate::QPainterPath,
            dx,
            dy,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPath::translate(const QPointF& offset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#translate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Translates all elements in the path by the given <i>offset</i>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#translated">translated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_1a(
        &mut self,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_translate1(
            self as *mut crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(offset)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a copy of the path that is translated by (<i>dx</i>, <i>dy</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::translated(double dx, double dy) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#translated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the path that is translated by (<i>dx</i>, <i>dy</i>).</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translated_2a(
        &self,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_translated(
            self as *const crate::QPainterPath,
            dx,
            dy,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::translated(const QPointF& offset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#translated-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the path that is translated by the given <i>offset</i>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translated_1a(
        &self,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_translated1(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(offset)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a path which is the union of this path's fill area and <i>p</i>'s fill area.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::united(const QPainterPath& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#united">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a path which is the union of this path's fill area and <i>p</i>'s fill area.</p>
    /// <p>Set operations on paths will treat the paths as areas. Non-closed paths will be treated as implicitly closed. Bezier curves may be flattened to line segments due to numerical instability of doing bezier curve intersections.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#intersected">intersected</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#subtracted">subtracted</a>().</p></div>
    #[inline(always)]
    pub unsafe fn united(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPath_united(
            self as *const crate::QPainterPath,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html">QPainterPathStroker</a> class is used to generate fillable outlines for a given painter path.</p>
///
/// C++ class: <span style='color: green;'>```QPainterPathStroker```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html">QPainterPathStroker</a> class is used to generate fillable outlines for a given painter path.</p>
/// <p>By calling the <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#createStroke">createStroke</a>() function, passing a given <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> as argument, a new painter path representing the outline of the given path is created. The newly created painter path can then be filled to draw the original painter path's outline.</p>
/// <p>You can control the various design aspects (width, cap styles, join styles and dash pattern) of the outlining using the following functions:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setWidth">setWidth</a>()</li>
/// <li><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setCapStyle">setCapStyle</a>()</li>
/// <li><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setJoinStyle">setJoinStyle</a>()</li>
/// <li><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setDashPattern">setDashPattern</a>()</li>
/// </ul>
/// <p>The <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setDashPattern">setDashPattern</a>() function accepts both a <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::PenStyle</a> object and a vector representation of the pattern as argument.</p>
/// <p>In addition you can specify a curve's threshold, controlling the granularity with which a curve is drawn, using the <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setCurveThreshold">setCurveThreshold</a>() function. The default threshold is a well adjusted value (0.25), and normally you should not need to modify it. However, you can make the curve's appearance smoother by decreasing its value.</p>
/// <p>You can also control the miter limit for the generated outline using the <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setMiterLimit">setMiterLimit</a>() function. The miter limit describes how far from each join the miter join can extend. The limit is specified in the units of width so the pixelwise miter limit will be <code>miterlimit * width</code>. This value is only used if the join style is <a href="http://doc.qt.io/qt-5/qt.html#PenJoinStyle-enum">Qt::MiterJoin</a>.</p>
/// <p>The painter path generated by the <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#createStroke">createStroke</a>() function should only be used for outlining the given painter path. Otherwise it may cause unexpected behavior. Generated outlines also require the <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::WindingFill</a> rule which is set by default.</p></div>
#[repr(C)]
pub struct QPainterPathStroker {
    _unused: u8,
}
impl QPainterPathStroker {
    /// <p>Returns the cap style of the generated outlines.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::PenCapStyle QPainterPathStroker::capStyle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#capStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cap style of the generated outlines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setCapStyle">setCapStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cap_style(&self) -> ::qt_core::PenCapStyle {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_capStyle(
            self as *const crate::QPainterPathStroker,
        )
    }

    /// <p>Generates a new path that is a fillable area representing the outline of the given <i>path</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPathStroker::createStroke(const QPainterPath& path) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#createStroke">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Generates a new path that is a fillable area representing the outline of the given <i>path</i>.</p>
    /// <p>The various design aspects of the outline are based on the stroker's properties: <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#capStyle">capStyle</a>(), <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#joinStyle">joinStyle</a>(), <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#dashPattern">dashPattern</a>(), <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#curveThreshold">curveThreshold</a>() and <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#miterLimit">miterLimit</a>().</p>
    /// <p>The generated path should only be used for outlining the given painter path. Otherwise it may cause unexpected behavior. Generated outlines also require the <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::WindingFill</a> rule which is set by default.</p></div>
    #[inline(always)]
    pub unsafe fn create_stroke(
        &self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_createStroke(
            self as *const crate::QPainterPathStroker,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the curve flattening threshold for the generated outlines.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainterPathStroker::curveThreshold() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#curveThreshold">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the curve flattening threshold for the generated outlines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setCurveThreshold">setCurveThreshold</a>().</p></div>
    #[inline(always)]
    pub unsafe fn curve_threshold(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_curveThreshold(
            self as *const crate::QPainterPathStroker,
        )
    }

    /// <p>Returns the dash offset for the generated outlines.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainterPathStroker::dashOffset() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#dashOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dash offset for the generated outlines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setDashOffset">setDashOffset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn dash_offset(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_dashOffset(
            self as *const crate::QPainterPathStroker,
        )
    }

    /// <p>Returns the dash pattern for the generated outlines.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double> QPainterPathStroker::dashPattern() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#dashPattern">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dash pattern for the generated outlines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setDashPattern">setDashPattern</a>().</p></div>
    #[inline(always)]
    pub unsafe fn dash_pattern(&self) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_dashPattern(
            self as *const crate::QPainterPathStroker,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the join style of the generated outlines.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::PenJoinStyle QPainterPathStroker::joinStyle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#joinStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the join style of the generated outlines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setJoinStyle">setJoinStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn join_style(&self) -> ::qt_core::PenJoinStyle {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_joinStyle(
            self as *const crate::QPainterPathStroker,
        )
    }

    /// <p>Returns the miter limit for the generated outlines.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainterPathStroker::miterLimit() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#miterLimit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the miter limit for the generated outlines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setMiterLimit">setMiterLimit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn miter_limit(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_miterLimit(
            self as *const crate::QPainterPathStroker,
        )
    }

    /// <p>Creates a new stroker.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainterPathStroker::QPainterPathStroker()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#QPainterPathStroker">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new stroker.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPainterPathStroker> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_QPainterPathStroker();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a new stroker based on <i>pen</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainterPathStroker::QPainterPathStroker(const QPen& pen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#QPainterPathStroker-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new stroker based on <i>pen</i>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        pen: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPen>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPathStroker> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_QPainterPathStroker1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPen>>::cast_into(pen).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the cap style of the generated outlines to <i>style</i>. If a dash pattern is set, each segment of the pattern is subject to the cap <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPathStroker::setCapStyle(Qt::PenCapStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setCapStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the cap style of the generated outlines to <i>style</i>. If a dash pattern is set, each segment of the pattern is subject to the cap <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#capStyle">capStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cap_style(&mut self, style: ::qt_core::PenCapStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_setCapStyle(
            self as *mut crate::QPainterPathStroker,
            style,
        )
    }

    /// <p>Specifies the curve flattening <i>threshold</i>, controlling the granularity with which the generated outlines' curve is drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPathStroker::setCurveThreshold(double threshold)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setCurveThreshold">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the curve flattening <i>threshold</i>, controlling the granularity with which the generated outlines' curve is drawn.</p>
    /// <p>The default threshold is a well adjusted value (0.25), and normally you should not need to modify it. However, you can make the curve's appearance smoother by decreasing its value.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#curveThreshold">curveThreshold</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_curve_threshold(&mut self, threshold: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_setCurveThreshold(
            self as *mut crate::QPainterPathStroker,
            threshold,
        )
    }

    /// <p>Sets the dash offset for the generated outlines to <i>offset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPathStroker::setDashOffset(double offset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setDashOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the dash offset for the generated outlines to <i>offset</i>.</p>
    /// <p>See the documentation for <a href="http://doc.qt.io/qt-5/qpen.html#setDashOffset">QPen::setDashOffset</a>() for a description of the dash offset.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#dashOffset">dashOffset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_dash_offset(&mut self, offset: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_setDashOffset(
            self as *mut crate::QPainterPathStroker,
            offset,
        )
    }

    /// <p>Sets the dash pattern for the generated outlines to <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPathStroker::setDashPattern(Qt::PenStyle arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setDashPattern">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the dash pattern for the generated outlines to <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#dashPattern">dashPattern</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_dash_pattern_pen_style(&mut self, arg1: ::qt_core::PenStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_setDashPattern(
            self as *mut crate::QPainterPathStroker,
            arg1,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPathStroker::setDashPattern(const QVector<double>& dashPattern)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setDashPattern-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the dash pattern for the generated outlines to <i>dashPattern</i>. This function makes it possible to specify custom dash patterns.</p>
    /// <p>Each element in the vector contains the lengths of the dashes and spaces in the stroke, beginning with the first dash in the first element, the first space in the second element, and alternating between dashes and spaces for each following pair of elements.</p>
    /// <p>The vector can contain an odd number of elements, in which case the last element will be extended by the length of the first element when the pattern repeats.</p></div>
    #[inline(always)]
    pub unsafe fn set_dash_pattern_q_vector_of_double(
        &mut self,
        dash_pattern: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_setDashPattern1(
            self as *mut crate::QPainterPathStroker,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(
                dash_pattern,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Sets the join style of the generated outlines to <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPathStroker::setJoinStyle(Qt::PenJoinStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setJoinStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the join style of the generated outlines to <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#joinStyle">joinStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_join_style(&mut self, style: ::qt_core::PenJoinStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_setJoinStyle(
            self as *mut crate::QPainterPathStroker,
            style,
        )
    }

    /// <p>Sets the miter limit of the generated outlines to <i>limit</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPathStroker::setMiterLimit(double length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setMiterLimit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the miter limit of the generated outlines to <i>limit</i>.</p>
    /// <p>The miter limit describes how far from each join the miter join can extend. The limit is specified in units of the currently set width. So the pixelwise miter limit will be <code>miterlimit * width</code>.</p>
    /// <p>This value is only used if the join style is <a href="http://doc.qt.io/qt-5/qt.html#PenJoinStyle-enum">Qt::MiterJoin</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#miterLimit">miterLimit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_miter_limit(&mut self, length: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_setMiterLimit(
            self as *mut crate::QPainterPathStroker,
            length,
        )
    }

    /// <p>Sets the width of the generated outline painter path to <i>width</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainterPathStroker::setWidth(double width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the width of the generated outline painter path to <i>width</i>.</p>
    /// <p>The generated outlines will extend approximately 50% of <i>width</i> to each side of the given input path's original outline.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width(&mut self, width: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_setWidth(
            self as *mut crate::QPainterPathStroker,
            width,
        )
    }

    /// <p>Returns the width of the generated outlines.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainterPathStroker::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the generated outlines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#setWidth">setWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_width(
            self as *const crate::QPainterPathStroker,
        )
    }
}

pub mod q_transform {
    //! C++ type: <span style='color: green;'>```QTransform```</span>

    /// C++ enum: <span style='color: green;'>```QTransform::TransformationType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#TransformationType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct TransformationType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for TransformationType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            TransformationType(value)
        }
    }

    impl From<TransformationType> for ::std::os::raw::c_int {
        fn from(value: TransformationType) -> Self {
            value.0
        }
    }

    impl TransformationType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl TransformationType {
        /// C++ enum variant: <span style='color: green;'>```TxNone = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const TxNone: crate::q_transform::TransformationType =
            crate::q_transform::TransformationType(0);
        /// C++ enum variant: <span style='color: green;'>```TxTranslate = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const TxTranslate: crate::q_transform::TransformationType =
            crate::q_transform::TransformationType(1);
        /// C++ enum variant: <span style='color: green;'>```TxScale = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const TxScale: crate::q_transform::TransformationType =
            crate::q_transform::TransformationType(2);
        /// C++ enum variant: <span style='color: green;'>```TxRotate = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const TxRotate: crate::q_transform::TransformationType =
            crate::q_transform::TransformationType(4);
        /// C++ enum variant: <span style='color: green;'>```TxShear = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const TxShear: crate::q_transform::TransformationType =
            crate::q_transform::TransformationType(8);
        /// C++ enum variant: <span style='color: green;'>```TxProject = 16```</span>
        #[allow(non_upper_case_globals)]
        pub const TxProject: crate::q_transform::TransformationType =
            crate::q_transform::TransformationType(16);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> class specifies 2D transformations of a coordinate system.</p>
///
/// C++ class: <span style='color: green;'>```QTransform```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtransform.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> class specifies 2D transformations of a coordinate system.</p>
/// <p>A transformation specifies how to translate, scale, shear, rotate or project the coordinate system, and is typically used when rendering graphics.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> differs from QMatrix in that it is a true 3x3 matrix, allowing perspective transformations. <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a>'s <a href="http://doc.qt.io/qt-5/qtransform.html#toAffine">toAffine</a>() method allows casting <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> to QMatrix. If a perspective transformation has been specified on the matrix, then the conversion will cause loss of data.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> is the recommended transformation class in Qt.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> object can be built using the <a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#shear">shear</a>() functions. Alternatively, it can be built by applying <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">basic matrix operations</a>. The matrix can also be defined when constructed, and it can be reset to the identity matrix (the default) using the <a href="http://doc.qt.io/qt-5/qtransform.html#reset">reset</a>() function.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> class supports mapping of graphic primitives: A given point, line, polygon, region, or painter path can be mapped to the coordinate system defined by <i>this</i> matrix using the <a href="http://doc.qt.io/qt-5/qtransform.html#map">map</a>() function. In case of a rectangle, its coordinates can be transformed using the <a href="http://doc.qt.io/qt-5/qtransform.html#mapRect">mapRect</a>() function. A rectangle can also be transformed into a <i>polygon</i> (mapped to the coordinate system defined by <i>this</i> matrix), using the <a href="http://doc.qt.io/qt-5/qtransform.html#mapToPolygon">mapToPolygon</a>() function.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> provides the <a href="http://doc.qt.io/qt-5/qtransform.html#isIdentity">isIdentity</a>() function which returns <code>true</code> if the matrix is the identity matrix, and the <a href="http://doc.qt.io/qt-5/qtransform.html#isInvertible">isInvertible</a>() function which returns <code>true</code> if the matrix is non-singular (i.e. AB = BA = I). The <a href="http://doc.qt.io/qt-5/qtransform.html#inverted">inverted</a>() function returns an inverted copy of <i>this</i> matrix if it is invertible (otherwise it returns the identity matrix), and <a href="http://doc.qt.io/qt-5/qtransform.html#adjoint">adjoint</a>() returns the matrix's classical adjoint. In addition, <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> provides the <a href="http://doc.qt.io/qt-5/qtransform.html#determinant">determinant</a>() function which returns the matrix's determinant.</p>
/// <p>Finally, the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> class supports matrix multiplication, addition and subtraction, and objects of the class can be streamed as well as compared.</p>
/// <a name="rendering-graphics"></a></div>
#[repr(C)]
pub struct QTransform {
    _unused: u8,
}
impl QTransform {
    /// <p>Returns the adjoint of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QTransform::adjoint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#adjoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the adjoint of this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn adjoint(&self) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_adjoint(self as *const crate::QTransform);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns the given <i>matrix</i>'s values to this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::operator=(const QTransform& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the given <i>matrix</i>'s values to this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::MutRef<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_operator_1(
            self as *mut crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the matrix's determinant. Use <a href="http://doc.qt.io/qt-5/qtransform.html#determinant">determinant</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::det() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform-obsolete.html#det">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix's determinant. Use <a href="http://doc.qt.io/qt-5/qtransform.html#determinant">determinant</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn det(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_det(self as *const crate::QTransform)
    }

    /// <p>Returns the matrix's determinant.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::determinant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#determinant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix's determinant.</p></div>
    #[inline(always)]
    pub unsafe fn determinant(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_determinant(self as *const crate::QTransform)
    }

    /// <p>Returns the horizontal translation factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::dx() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#dx">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal translation factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#m31">m31</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>(), and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn dx(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_dx(self as *const crate::QTransform)
    }

    /// <p>Returns the vertical translation factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::dy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#dy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical translation factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn dy(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_dy(self as *const crate::QTransform)
    }

    /// <p>Creates a matrix which corresponds to a scaling of <i>sx</i> horizontally and <i>sy</i> vertically. This is the same as <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform">QTransform</a>().scale(sx, sy) but slightly faster.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QTransform QTransform::fromScale(double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#fromScale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a matrix which corresponds to a scaling of <i>sx</i> horizontally and <i>sy</i> vertically. This is the same as <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform">QTransform</a>().scale(sx, sy) but slightly faster.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn from_scale(
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_fromScale(dx, dy);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a matrix which corresponds to a translation of <i>dx</i> along the x axis and <i>dy</i> along the y axis. This is the same as <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform">QTransform</a>().translate(dx, dy) but slightly faster.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QTransform QTransform::fromTranslate(double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#fromTranslate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a matrix which corresponds to a translation of <i>dx</i> along the x axis and <i>dy</i> along the y axis. This is the same as <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform">QTransform</a>().translate(dx, dy) but slightly faster.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn from_translate(
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_fromTranslate(dx, dy);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns an inverted copy of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QTransform::inverted(bool* invertible = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#inverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an inverted copy of this matrix.</p>
    /// <p>If the matrix is singular (not invertible), the returned matrix is the identity matrix. If <i>invertible</i> is valid (i.e. not 0), its value is set to true if the matrix is invertible, otherwise it is set to false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#isInvertible">isInvertible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn inverted_1a(
        &self,
        invertible: impl ::cpp_core::CastInto<::cpp_core::MutPtr<bool>>,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_inverted(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<bool>>::cast_into(invertible)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns an inverted copy of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QTransform::inverted() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#inverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an inverted copy of this matrix.</p>
    /// <p>If the matrix is singular (not invertible), the returned matrix is the identity matrix. If <i>invertible</i> is valid (i.e. not 0), its value is set to true if the matrix is invertible, otherwise it is set to false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#isInvertible">isInvertible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn inverted_0a(&self) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_inverted1(self as *const crate::QTransform);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the matrix represent an affine transformation, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTransform::isAffine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#isAffine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matrix represent an affine transformation, otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_affine(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_isAffine(self as *const crate::QTransform)
    }

    /// <p>Returns <code>true</code> if the matrix is the identity matrix, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTransform::isIdentity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#isIdentity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matrix is the identity matrix, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#reset">reset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_identity(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_isIdentity(self as *const crate::QTransform)
    }

    /// <p>Returns <code>true</code> if the matrix is invertible, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTransform::isInvertible() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#isInvertible">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matrix is invertible, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#inverted">inverted</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_invertible(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_isInvertible(self as *const crate::QTransform)
    }

    /// <p>Returns <code>true</code> if the matrix represents some kind of a rotating transformation, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTransform::isRotating() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#isRotating">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matrix represents some kind of a rotating transformation, otherwise returns <code>false</code>.</p>
    /// <p><b>Note: </b>A rotation transformation of 180 degrees and/or 360 degrees is treated as a scaling transformation.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#reset">reset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_rotating(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_isRotating(self as *const crate::QTransform)
    }

    /// <p>Returns <code>true</code> if the matrix represents a scaling transformation, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTransform::isScaling() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#isScaling">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matrix represents a scaling transformation, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#reset">reset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_scaling(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_isScaling(self as *const crate::QTransform)
    }

    /// <p>Returns <code>true</code> if the matrix represents a translating transformation, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTransform::isTranslating() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#isTranslating">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matrix represents a translating transformation, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#reset">reset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_translating(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_isTranslating(self as *const crate::QTransform)
    }

    /// <p>Returns the horizontal scaling factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m11() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m11">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal scaling factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m11(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m11(self as *const crate::QTransform)
    }

    /// <p>Returns the vertical shearing factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m12() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m12">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical shearing factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#shear">shear</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m12(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m12(self as *const crate::QTransform)
    }

    /// <p>Returns the horizontal projection factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m13() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m13">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal projection factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m13(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m13(self as *const crate::QTransform)
    }

    /// <p>Returns the horizontal shearing factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m21() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m21">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal shearing factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#shear">shear</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m21(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m21(self as *const crate::QTransform)
    }

    /// <p>Returns the vertical scaling factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m22() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m22">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical scaling factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m22(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m22(self as *const crate::QTransform)
    }

    /// <p>Returns the vertical projection factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m23() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m23">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical projection factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m23(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m23(self as *const crate::QTransform)
    }

    /// <p>Returns the horizontal translation factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m31() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m31">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal translation factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#dx">dx</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>(), and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m31(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m31(self as *const crate::QTransform)
    }

    /// <p>Returns the vertical translation factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m32() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m32">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical translation factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#dy">dy</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>(), and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m32(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m32(self as *const crate::QTransform)
    }

    /// <p>Returns the division factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTransform::m33() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#m33">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the division factor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn m33(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_m33(self as *const crate::QTransform)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QTransform::map(const QPoint& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a> object that is a copy of the given <i>point</i>, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_point(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_map(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QTransform::map(const QPointF& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> object that is a copy of the given point, <i>p</i>, mapped into the coordinate system defined by this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_point_f(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_map1(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine QTransform::map(const QLine& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qlinef.html">QLineF</a> object that is a copy of the given line, <i>l</i>, mapped into the coordinate system defined by this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_line(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::cpp_core::CppBox<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_map2(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(l).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF QTransform::map(const QLineF& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qline.html">QLine</a> object that is a copy of the given <i>line</i>, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_line_f(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_map3(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(l).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QTransform::map(const QPolygonF& a) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygonf.html">QPolygonF</a> object that is a copy of the given <i>polygon</i>, mapped into the coordinate system defined by this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_polygon_f(
        &self,
        a: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_map4(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(a).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QTransform::map(const QPolygon& a) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> object that is a copy of the given <i>polygon</i>, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_polygon(
        &self,
        a: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_map5(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(a).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QTransform::map(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> object that is a copy of the given <i>region</i>, mapped into the coordinate system defined by this matrix.</p>
    /// <p>Calling this method can be rather expensive if rotations or shearing are used.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_region(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_map6(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QTransform::map(const QPainterPath& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object that is a copy of the given <i>path</i>, mapped into the coordinate system defined by this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn map_q_painter_path(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_map7(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(p).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTransform::map(int x, int y, int* tx, int* ty) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Maps the given coordinates <i>x</i> and <i>y</i> into the coordinate system defined by this matrix. The resulting values are put in *<i>tx</i> and *<i>ty</i>, respectively. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_2_int2_int(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        tx: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        ty: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_map8(
            self as *const crate::QTransform,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(tx)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(ty)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Maps the given coordinates <i>x</i> and <i>y</i> into the coordinate system defined by this matrix. The resulting values are put in *<i>tx</i> and *<i>ty</i>, respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTransform::map(double x, double y, double* tx, double* ty) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#map">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps the given coordinates <i>x</i> and <i>y</i> into the coordinate system defined by this matrix. The resulting values are put in *<i>tx</i> and *<i>ty</i>, respectively.</p>
    /// <p>The coordinates are transformed using the following formulas:</p>
    /// <pre class="cpp">
    ///
    ///   x' <span class="operator">=</span> m11<span class="operator">*</span>x <span class="operator">+</span> m21<span class="operator">*</span>y <span class="operator">+</span> dx
    ///   y<span class="char">' = m22*y + m12*x + dy
    ///   if (is not affine) {
    /// &#32;     w'</span> <span class="operator">=</span> m13<span class="operator">*</span>x <span class="operator">+</span> m23<span class="operator">*</span>y <span class="operator">+</span> m33
    /// &#32;     x<span class="char">' /= w'</span>
    /// &#32;     y<span class="char">' /= w'</span>
    ///   }
    ///
    /// </pre>
    /// <p>The point (x, y) is the original point, and (x', y') is the transformed point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn map_2_double2_double(
        &self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
        tx: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
        ty: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_map9(
            self as *const crate::QTransform,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(tx)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(ty)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QTransform::mapRect(const QRect& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#mapRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> object that is a copy of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix. Note that the transformed coordinates are rounded to the nearest integer.</p></div>
    #[inline(always)]
    pub unsafe fn map_rect_q_rect(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_mapRect(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a> object that is a copy of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QTransform::mapRect(const QRectF& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#mapRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a> object that is a copy of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix.</p>
    /// <p>The rectangle's coordinates are transformed using the following formulas:</p>
    /// <pre class="cpp">
    ///
    ///   x<span class="char">' = m11*x + m21*y + dx
    ///   y'</span> <span class="operator">=</span> m22<span class="operator">*</span>y <span class="operator">+</span> m12<span class="operator">*</span>x <span class="operator">+</span> dy
    ///   <span class="keyword">if</span> (is <span class="keyword">not</span> affine) {
    /// &#32;     w<span class="char">' = m13*x + m23*y + m33
    /// &#32;     x'</span> <span class="operator">/</span><span class="operator">=</span> w<span class="char">'
    /// &#32;     y'</span> <span class="operator">/</span><span class="operator">=</span> w<span class="char">'
    ///   }
    ///
    /// </span></pre>
    /// <p>If rotation or shearing has been specified, this function returns the <i>bounding</i> rectangle. To retrieve the exact region the given <i>rectangle</i> maps to, use the <a href="http://doc.qt.io/qt-5/qtransform.html#mapToPolygon">mapToPolygon</a>() function instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#mapToPolygon">mapToPolygon</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn map_rect_q_rect_f(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_mapRect1(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> representation of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygon QTransform::mapToPolygon(const QRect& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#mapToPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qpolygon.html">QPolygon</a> representation of the given <i>rectangle</i>, mapped into the coordinate system defined by this matrix.</p>
    /// <p>The rectangle's coordinates are transformed using the following formulas:</p>
    /// <pre class="cpp">
    ///
    ///   x' <span class="operator">=</span> m11<span class="operator">*</span>x <span class="operator">+</span> m21<span class="operator">*</span>y <span class="operator">+</span> dx
    ///   y<span class="char">' = m22*y + m12*x + dy
    ///   if (is not affine) {
    /// &#32;     w'</span> <span class="operator">=</span> m13<span class="operator">*</span>x <span class="operator">+</span> m23<span class="operator">*</span>y <span class="operator">+</span> m33
    /// &#32;     x<span class="char">' /= w'</span>
    /// &#32;     y<span class="char">' /= w'</span>
    ///   }
    ///
    /// </pre>
    /// <p>Polygons and rectangles behave slightly differently when transformed (due to integer rounding), so <code>matrix.map(QPolygon(rectangle))</code> is not always the same as <code>matrix.mapToPolygon(rectangle)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#mapRect">mapRect</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn map_to_polygon(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_mapToPolygon(
            self as *const crate::QTransform,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an identity matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTransform::QTransform()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an identity matrix.</p>
    /// <p>All elements are set to zero except <code>m11</code> and <code>m22</code> (specifying the scale) and <code>m33</code> which are set to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#reset">reset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_QTransform1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a matrix with the elements, <i>m11</i>, <i>m12</i>, <i>m13</i>, <i>m21</i>, <i>m22</i>, <i>m23</i>, <i>m31</i>, <i>m32</i>, <i>m33</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTransform::QTransform(double h11, double h12, double h13, double h21, double h22, double h23, double h31, double h32, double h33 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a matrix with the elements, <i>m11</i>, <i>m12</i>, <i>m13</i>, <i>m21</i>, <i>m22</i>, <i>m23</i>, <i>m31</i>, <i>m32</i>, <i>m33</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_9a(
        h11: ::std::os::raw::c_double,
        h12: ::std::os::raw::c_double,
        h13: ::std::os::raw::c_double,
        h21: ::std::os::raw::c_double,
        h22: ::std::os::raw::c_double,
        h23: ::std::os::raw::c_double,
        h31: ::std::os::raw::c_double,
        h32: ::std::os::raw::c_double,
        h33: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_QTransform2(
            h11, h12, h13, h21, h22, h23, h31, h32, h33,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a matrix with the elements, <i>m11</i>, <i>m12</i>, <i>m21</i>, <i>m22</i>, <i>dx</i> and <i>dy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTransform::QTransform(double h11, double h12, double h21, double h22, double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a matrix with the elements, <i>m11</i>, <i>m12</i>, <i>m21</i>, <i>m22</i>, <i>dx</i> and <i>dy</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_6a(
        h11: ::std::os::raw::c_double,
        h12: ::std::os::raw::c_double,
        h21: ::std::os::raw::c_double,
        h22: ::std::os::raw::c_double,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_QTransform3(h11, h12, h21, h22, dx, dy);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a matrix that is a copy of the given <i>matrix</i>. Note that the <code>m13</code>, <code>m23</code>, and <code>m33</code> elements are set to 0, 0, and 1 respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTransform::QTransform(const QMatrix& mtx)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a matrix that is a copy of the given <i>matrix</i>. Note that the <code>m13</code>, <code>m23</code>, and <code>m33</code> elements are set to 0, 0, and 1 respectively.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        mtx: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_QTransform4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(mtx).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a matrix with the elements, <i>m11</i>, <i>m12</i>, <i>m13</i>, <i>m21</i>, <i>m22</i>, <i>m23</i>, <i>m31</i>, <i>m32</i>, <i>m33</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTransform::QTransform(double h11, double h12, double h13, double h21, double h22, double h23, double h31, double h32)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a matrix with the elements, <i>m11</i>, <i>m12</i>, <i>m13</i>, <i>m21</i>, <i>m22</i>, <i>m23</i>, <i>m31</i>, <i>m32</i>, <i>m33</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_8a(
        h11: ::std::os::raw::c_double,
        h12: ::std::os::raw::c_double,
        h13: ::std::os::raw::c_double,
        h21: ::std::os::raw::c_double,
        h22: ::std::os::raw::c_double,
        h23: ::std::os::raw::c_double,
        h31: ::std::os::raw::c_double,
        h32: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_QTransform7(
            h11, h12, h13, h21, h22, h23, h31, h32,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy constructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTransform::QTransform(const QTransform& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#QTransform-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_QTransform6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a transformation matrix, <i>trans</i>, that maps a four-sided polygon, <i>one</i>, to another four-sided polygon, <i>two</i>. Returns <code>true</code> if the transformation is possible; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QTransform::quadToQuad(const QPolygonF& one, const QPolygonF& two, QTransform& result)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#quadToQuad">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a transformation matrix, <i>trans</i>, that maps a four-sided polygon, <i>one</i>, to another four-sided polygon, <i>two</i>. Returns <code>true</code> if the transformation is possible; otherwise returns false.</p>
    /// <p>This is a convenience method combining <a href="http://doc.qt.io/qt-5/qtransform.html#quadToSquare">quadToSquare</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#squareToQuad">squareToQuad</a>() methods. It allows the input quad to be transformed into any other quad.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#squareToQuad">squareToQuad</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#quadToSquare">quadToSquare</a>().</p></div>
    #[inline(always)]
    pub unsafe fn quad_to_quad(
        one: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
        two: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
        result: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTransform>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_quadToQuad(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(one).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(two).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTransform>>::cast_into(result)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Creates a transformation matrix, <i>trans</i>, that maps a four-sided polygon, <i>quad</i>, to a unit square. Returns <code>true</code> if the transformation is constructed or false if such a transformation does not exist.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QTransform::quadToSquare(const QPolygonF& quad, QTransform& result)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#quadToSquare">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a transformation matrix, <i>trans</i>, that maps a four-sided polygon, <i>quad</i>, to a unit square. Returns <code>true</code> if the transformation is constructed or false if such a transformation does not exist.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#squareToQuad">squareToQuad</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#quadToQuad">quadToQuad</a>().</p></div>
    #[inline(always)]
    pub unsafe fn quad_to_square(
        quad: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
        result: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTransform>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_quadToSquare(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(quad).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTransform>>::cast_into(result)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Resets the matrix to an identity matrix, i.e. all elements are set to zero, except <code>m11</code> and <code>m22</code> (specifying the scale) and <code>m33</code> which are set to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTransform::reset()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#reset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resets the matrix to an identity matrix, i.e. all elements are set to zero, except <code>m11</code> and <code>m22</code> (specifying the scale) and <code>m33</code> which are set to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#QTransform">QTransform</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#isIdentity">isIdentity</a>(), and <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">Basic Matrix Operations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn reset(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_reset(self as *mut crate::QTransform)
    }

    /// <p>Rotates the coordinate system counterclockwise by the given <i>angle</i> about the specified <i>axis</i> and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::rotate(double a, Qt::Axis axis = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#rotate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates the coordinate system counterclockwise by the given <i>angle</i> about the specified <i>axis</i> and returns a reference to the matrix.</p>
    /// <p>Note that if you apply a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> to a point defined in widget coordinates, the direction of the rotation will be clockwise because the y-axis points downwards.</p>
    /// <p>The angle is specified in degrees.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotate_2a(
        &mut self,
        a: ::std::os::raw::c_double,
        axis: ::qt_core::Axis,
    ) -> ::cpp_core::MutRef<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_rotate(self as *mut crate::QTransform, a, axis);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Rotates the coordinate system counterclockwise by the given <i>angle</i> about the specified <i>axis</i> and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::rotate(double a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#rotate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates the coordinate system counterclockwise by the given <i>angle</i> about the specified <i>axis</i> and returns a reference to the matrix.</p>
    /// <p>Note that if you apply a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> to a point defined in widget coordinates, the direction of the rotation will be clockwise because the y-axis points downwards.</p>
    /// <p>The angle is specified in degrees.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotate_1a(
        &mut self,
        a: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_rotate1(self as *mut crate::QTransform, a);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Rotates the coordinate system counterclockwise by the given <i>angle</i> about the specified <i>axis</i> and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::rotateRadians(double a, Qt::Axis axis = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#rotateRadians">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates the coordinate system counterclockwise by the given <i>angle</i> about the specified <i>axis</i> and returns a reference to the matrix.</p>
    /// <p>Note that if you apply a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> to a point defined in widget coordinates, the direction of the rotation will be clockwise because the y-axis points downwards.</p>
    /// <p>The angle is specified in radians.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotate_radians_2a(
        &mut self,
        a: ::std::os::raw::c_double,
        axis: ::qt_core::Axis,
    ) -> ::cpp_core::MutRef<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_rotateRadians(
            self as *mut crate::QTransform,
            a,
            axis,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Rotates the coordinate system counterclockwise by the given <i>angle</i> about the specified <i>axis</i> and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::rotateRadians(double a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#rotateRadians">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates the coordinate system counterclockwise by the given <i>angle</i> about the specified <i>axis</i> and returns a reference to the matrix.</p>
    /// <p>Note that if you apply a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> to a point defined in widget coordinates, the direction of the rotation will be clockwise because the y-axis points downwards.</p>
    /// <p>The angle is specified in radians.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotate_radians_1a(
        &mut self,
        a: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_rotateRadians1(
            self as *mut crate::QTransform,
            a,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Scales the coordinate system by <i>sx</i> horizontally and <i>sy</i> vertically, and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::scale(double sx, double sy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#scale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scales the coordinate system by <i>sx</i> horizontally and <i>sy</i> vertically, and returns a reference to the matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scale(
        &mut self,
        sx: ::std::os::raw::c_double,
        sy: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_scale(self as *mut crate::QTransform, sx, sy);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Sets the matrix elements to the specified values, <i>m11</i>, <i>m12</i>, <i>m13</i> <i>m21</i>, <i>m22</i>, <i>m23</i> <i>m31</i>, <i>m32</i> and <i>m33</i>. Note that this function replaces the previous values. <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> provides the <a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#shear">shear</a>() convenience functions to manipulate the various matrix elements based on the currently defined coordinate system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTransform::setMatrix(double m11, double m12, double m13, double m21, double m22, double m23, double m31, double m32, double m33)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the matrix elements to the specified values, <i>m11</i>, <i>m12</i>, <i>m13</i> <i>m21</i>, <i>m22</i>, <i>m23</i> <i>m31</i>, <i>m32</i> and <i>m33</i>. Note that this function replaces the previous values. <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> provides the <a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#shear">shear</a>() convenience functions to manipulate the various matrix elements based on the currently defined coordinate system.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#QTransform">QTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_matrix(
        &mut self,
        m11: ::std::os::raw::c_double,
        m12: ::std::os::raw::c_double,
        m13: ::std::os::raw::c_double,
        m21: ::std::os::raw::c_double,
        m22: ::std::os::raw::c_double,
        m23: ::std::os::raw::c_double,
        m31: ::std::os::raw::c_double,
        m32: ::std::os::raw::c_double,
        m33: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_setMatrix(
            self as *mut crate::QTransform,
            m11,
            m12,
            m13,
            m21,
            m22,
            m23,
            m31,
            m32,
            m33,
        )
    }

    /// <p>Shears the coordinate system by <i>sh</i> horizontally and <i>sv</i> vertically, and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::shear(double sh, double sv)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#shear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shears the coordinate system by <i>sh</i> horizontally and <i>sv</i> vertically, and returns a reference to the matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn shear(
        &mut self,
        sh: ::std::os::raw::c_double,
        sv: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_shear(self as *mut crate::QTransform, sh, sv);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates a transformation matrix, <i>trans</i>, that maps a unit square to a four-sided polygon, <i>quad</i>. Returns <code>true</code> if the transformation is constructed or false if such a transformation does not exist.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QTransform::squareToQuad(const QPolygonF& square, QTransform& result)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#squareToQuad">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a transformation matrix, <i>trans</i>, that maps a unit square to a four-sided polygon, <i>quad</i>. Returns <code>true</code> if the transformation is constructed or false if such a transformation does not exist.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#quadToSquare">quadToSquare</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#quadToQuad">quadToQuad</a>().</p></div>
    #[inline(always)]
    pub unsafe fn square_to_quad(
        square: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
        result: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTransform>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_squareToQuad(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(square)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTransform>>::cast_into(result)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> as an affine matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QMatrix& QTransform::toAffine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#toAffine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> as an affine matrix.</p>
    /// <p><b>Warning:</b> If a perspective transformation has been specified, then the conversion will cause loss of data.</p></div>
    #[inline(always)]
    pub unsafe fn to_affine(&self) -> ::cpp_core::Ref<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_toAffine(self as *const crate::QTransform);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the transform as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QTransform::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transform as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_operator_QVariant(
            self as *const crate::QTransform,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the coordinate system <i>dx</i> along the x axis and <i>dy</i> along the y axis, and returns a reference to the matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::translate(double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the coordinate system <i>dx</i> along the x axis and <i>dy</i> along the y axis, and returns a reference to the matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate(
        &mut self,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) -> ::cpp_core::MutRef<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTransform_translate(
            self as *mut crate::QTransform,
            dx,
            dy,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the transpose of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QTransform::transposed() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#transposed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transpose of this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn transposed(&self) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTransform_transposed(self as *const crate::QTransform);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the transformation type of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform::TransformationType QTransform::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transformation type of this matrix.</p>
    /// <p>The transformation type is the highest enumeration value capturing all of the matrix's transformations. For example, if the matrix both scales and shears, the type would be <code>TxShear</code>, because <code>TxShear</code> has a higher enumeration value than <code>TxScale</code>.</p>
    /// <p>Knowing the transformation type of a matrix is useful for optimization: you can often handle specific types more optimally than handling the generic case.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_transform::TransformationType {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_type(self as *const crate::QTransform)
    }
}

pub mod q_paint_device {
    //! C++ type: <span style='color: green;'>```QPaintDevice```</span>

    /// <p>Describes the various metrics of a paint device.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPaintDevice::PaintDeviceMetric```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#PaintDeviceMetric-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Describes the various metrics of a paint device.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#metric">metric</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#devicePixelRatioF">devicePixelRatioF</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PaintDeviceMetric(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PaintDeviceMetric {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PaintDeviceMetric(value)
        }
    }

    impl From<PaintDeviceMetric> for ::std::os::raw::c_int {
        fn from(value: PaintDeviceMetric) -> Self {
            value.0
        }
    }

    impl PaintDeviceMetric {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PaintDeviceMetric {
        /// The width of the paint device in default coordinate system units (e.g. pixels for <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> and <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>). See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#width">width</a>(). (C++ enum variant: <span style='color: green;'>```PdmWidth = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmWidth: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(1);
        /// The height of the paint device in default coordinate system units (e.g. pixels for <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> and <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>). See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#height">height</a>(). (C++ enum variant: <span style='color: green;'>```PdmHeight = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmHeight: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(2);
        /// The width of the paint device in millimeters. See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#widthMM">widthMM</a>(). (C++ enum variant: <span style='color: green;'>```PdmWidthMM = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmWidthMM: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(3);
        /// The height of the paint device in millimeters. See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#heightMM">heightMM</a>(). (C++ enum variant: <span style='color: green;'>```PdmHeightMM = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmHeightMM: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(4);
        /// The number of different colors available for the paint device. See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#colorCount">colorCount</a>(). (C++ enum variant: <span style='color: green;'>```PdmNumColors = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmNumColors: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(5);
        /// The bit depth (number of bit planes) of the paint device. See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#depth">depth</a>(). (C++ enum variant: <span style='color: green;'>```PdmDepth = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmDepth: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(6);
        /// The horizontal resolution of the device in dots per inch. See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiX">logicalDpiX</a>(). (C++ enum variant: <span style='color: green;'>```PdmDpiX = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmDpiX: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(7);
        /// The vertical resolution of the device in dots per inch. See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiY">logicalDpiY</a>(). (C++ enum variant: <span style='color: green;'>```PdmDpiY = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmDpiY: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(8);
        /// The horizontal resolution of the device in dots per inch. See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiX">physicalDpiX</a>(). (C++ enum variant: <span style='color: green;'>```PdmPhysicalDpiX = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmPhysicalDpiX: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(9);
        /// The vertical resolution of the device in dots per inch. See also <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiY">physicalDpiY</a>(). (C++ enum variant: <span style='color: green;'>```PdmPhysicalDpiY = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmPhysicalDpiY: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(10);
        /// The device pixel ratio for device. Common values are 1 for normal-dpi displays and 2 for high-dpi "retina" displays. (C++ enum variant: <span style='color: green;'>```PdmDevicePixelRatio = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmDevicePixelRatio: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(11);
        /// The scaled device pixel ratio for the device. This is identical to PdmDevicePixelRatio, except that the value is scaled by a constant factor in order to support paint devices with fractional scale factors. The constant scaling factor used is devicePixelRatioFScale(). This enum value has been introduced in Qt 5.6. (C++ enum variant: <span style='color: green;'>```PdmDevicePixelRatioScaled = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdmDevicePixelRatioScaled: crate::q_paint_device::PaintDeviceMetric =
            crate::q_paint_device::PaintDeviceMetric(12);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> class is the base class of objects that can be painted on with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
///
/// C++ class: <span style='color: green;'>```QPaintDevice```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpaintdevice.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> class is the base class of objects that can be painted on with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
/// <p>A paint device is an abstraction of a two-dimensional space that can be drawn on using a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>. Its default coordinate system has its origin located at the top-left position. X increases to the right and Y increases downwards. The unit is one pixel.</p>
/// <p>The drawing capabilities of <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> are currently implemented by the <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>, QGLPixelBuffer, <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a>, and QPrinter subclasses.</p>
/// <p>To implement support for a new backend, you must derive from <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> and reimplement the virtual <a href="http://doc.qt.io/qt-5/qpaintdevice.html#paintEngine">paintEngine</a>() function to tell <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> which paint engine should be used to draw on this particular device. Note that you also must create a corresponding paint engine to be able to draw on the device, i.e derive from <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> and reimplement its virtual functions.</p>
/// <p><b>Warning:</b> Qt requires that a <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> object exists before any paint devices can be created. Paint devices access window system resources, and these resources are not initialized before an application object is created.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> class provides several functions returning the various device metrics: The <a href="http://doc.qt.io/qt-5/qpaintdevice.html#depth">depth</a>() function returns its bit depth (number of bit planes). The <a href="http://doc.qt.io/qt-5/qpaintdevice.html#height">height</a>() function returns its height in default coordinate system units (e.g. pixels for <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> and <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>) while <a href="http://doc.qt.io/qt-5/qpaintdevice.html#heightMM">heightMM</a>() returns the height of the device in millimeters. Similiarily, the <a href="http://doc.qt.io/qt-5/qpaintdevice.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#widthMM">widthMM</a>() functions return the width of the device in default coordinate system units and in millimeters, respectively. Alternatively, the protected <a href="http://doc.qt.io/qt-5/qpaintdevice.html#metric">metric</a>() function can be used to retrieve the metric information by specifying the desired <a href="http://doc.qt.io/qt-5/qpaintdevice.html#PaintDeviceMetric-enum">PaintDeviceMetric</a> as argument.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiX">logicalDpiX</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiY">logicalDpiY</a>() functions return the horizontal and vertical resolution of the device in dots per inch. The <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiX">physicalDpiX</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiY">physicalDpiY</a>() functions also return the resolution of the device in dots per inch, but note that if the logical and physical resolution differ, the corresponding <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> must handle the mapping. Finally, the <a href="http://doc.qt.io/qt-5/qpaintdevice.html#colorCount">colorCount</a>() function returns the number of different colors available for the paint device.</p></div>
#[repr(C)]
pub struct QPaintDevice {
    _unused: u8,
}
impl QPaintDevice {
    /// <p>Returns the number of different colors available for the paint device. If the number of colors available is too great to be represented by the int data type, then INT_MAX will be returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::colorCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#colorCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of different colors available for the paint device. If the number of colors available is too great to be represented by the int data type, then INT_MAX will be returned instead.</p></div>
    #[inline(always)]
    pub unsafe fn color_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_colorCount(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the bit depth (number of bit planes) of the paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::depth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#depth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bit depth (number of bit planes) of the paint device.</p></div>
    #[inline(always)]
    pub unsafe fn depth(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_depth(self as *const crate::QPaintDevice)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QPaintDevice::devType() const```</span>.
    #[inline(always)]
    pub unsafe fn dev_type(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_devType(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the device pixel ratio for device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::devicePixelRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#devicePixelRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device pixel ratio for device.</p>
    /// <p>Common values are 1 for normal-dpi displays and 2 for high-dpi "retina" displays.</p></div>
    #[inline(always)]
    pub unsafe fn device_pixel_ratio(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_devicePixelRatio(
            self as *const crate::QPaintDevice,
        )
    }

    /// <p>Returns the device pixel ratio for the device as a floating point number.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPaintDevice::devicePixelRatioF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#devicePixelRatioF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device pixel ratio for the device as a floating point number.</p>
    /// <p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn device_pixel_ratio_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_devicePixelRatioF(
            self as *const crate::QPaintDevice,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static double QPaintDevice::devicePixelRatioFScale()```</span>.
    #[inline(always)]
    pub unsafe fn device_pixel_ratio_f_scale() -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_devicePixelRatioFScale()
    }

    /// <p>Returns the height of the paint device in default coordinate system units (e.g. pixels for <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> and <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the paint device in default coordinate system units (e.g. pixels for <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> and <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#heightMM">heightMM</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_height(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the height of the paint device in millimeters. Due to platform limitations it may not be possible to use this function to determine the actual physical size of a widget on the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::heightMM() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#heightMM">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the paint device in millimeters. Due to platform limitations it may not be possible to use this function to determine the actual physical size of a widget on the screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#height">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height_m_m(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_heightMM(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the horizontal resolution of the device in dots per inch, which is used when computing font sizes. For X11, this is usually the same as could be computed from <a href="http://doc.qt.io/qt-5/qpaintdevice.html#widthMM">widthMM</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::logicalDpiX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal resolution of the device in dots per inch, which is used when computing font sizes. For X11, this is usually the same as could be computed from <a href="http://doc.qt.io/qt-5/qpaintdevice.html#widthMM">widthMM</a>().</p>
    /// <p>Note that if the logicalDpiX() doesn't equal the <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiX">physicalDpiX</a>(), the corresponding <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> must handle the resolution mapping.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiY">logicalDpiY</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiX">physicalDpiX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn logical_dpi_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_logicalDpiX(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the vertical resolution of the device in dots per inch, which is used when computing font sizes. For X11, this is usually the same as could be computed from <a href="http://doc.qt.io/qt-5/qpaintdevice.html#heightMM">heightMM</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::logicalDpiY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical resolution of the device in dots per inch, which is used when computing font sizes. For X11, this is usually the same as could be computed from <a href="http://doc.qt.io/qt-5/qpaintdevice.html#heightMM">heightMM</a>().</p>
    /// <p>Note that if the logicalDpiY() doesn't equal the <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiY">physicalDpiY</a>(), the corresponding <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> must handle the resolution mapping.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiX">logicalDpiX</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiY">physicalDpiY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn logical_dpi_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_logicalDpiY(self as *const crate::QPaintDevice)
    }

    /// <p>Returns a pointer to the paint engine used for drawing on the device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QPaintEngine* QPaintDevice::paintEngine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#paintEngine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the paint engine used for drawing on the device.</p></div>
    #[inline(always)]
    pub unsafe fn paint_engine(&self) -> ::cpp_core::MutPtr<crate::QPaintEngine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_paintEngine(
            self as *const crate::QPaintDevice,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns <code>true</code> if the device is currently being painted on, i.e. someone has called <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() but not yet called <a href="http://doc.qt.io/qt-5/qpainter.html#end">QPainter::end</a>() for this device; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPaintDevice::paintingActive() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#paintingActive">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the device is currently being painted on, i.e. someone has called <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() but not yet called <a href="http://doc.qt.io/qt-5/qpainter.html#end">QPainter::end</a>() for this device; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#isActive">QPainter::isActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn painting_active(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_paintingActive(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the horizontal resolution of the device in dots per inch. For example, when printing, this resolution refers to the physical printer's resolution. The logical DPI on the other hand, refers to the resolution used by the actual paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::physicalDpiX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal resolution of the device in dots per inch. For example, when printing, this resolution refers to the physical printer's resolution. The logical DPI on the other hand, refers to the resolution used by the actual paint engine.</p>
    /// <p>Note that if the physicalDpiX() doesn't equal the <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiX">logicalDpiX</a>(), the corresponding <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> must handle the resolution mapping.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiY">physicalDpiY</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiX">logicalDpiX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn physical_dpi_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_physicalDpiX(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the horizontal resolution of the device in dots per inch. For example, when printing, this resolution refers to the physical printer's resolution. The logical DPI on the other hand, refers to the resolution used by the actual paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::physicalDpiY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal resolution of the device in dots per inch. For example, when printing, this resolution refers to the physical printer's resolution. The logical DPI on the other hand, refers to the resolution used by the actual paint engine.</p>
    /// <p>Note that if the physicalDpiY() doesn't equal the <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiY">logicalDpiY</a>(), the corresponding <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> must handle the resolution mapping.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#physicalDpiX">physicalDpiX</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#logicalDpiY">logicalDpiY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn physical_dpi_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_physicalDpiY(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the width of the paint device in default coordinate system units (e.g. pixels for <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> and <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the paint device in default coordinate system units (e.g. pixels for <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> and <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#widthMM">widthMM</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_width(self as *const crate::QPaintDevice)
    }

    /// <p>Returns the width of the paint device in millimeters. Due to platform limitations it may not be possible to use this function to determine the actual physical size of a widget on the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPaintDevice::widthMM() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#widthMM">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the paint device in millimeters. Due to platform limitations it may not be possible to use this function to determine the actual physical size of a widget on the screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintdevice.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width_m_m(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_widthMM(self as *const crate::QPaintDevice)
    }
}

pub mod q_pixel_format {
    //! C++ type: <span style='color: green;'>```QPixelFormat```</span>

    /// <p>This enum type is used to describe the color model of the pixelformat. Alpha was added in 5.5.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPixelFormat::ColorModel```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#ColorModel-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type is used to describe the color model of the pixelformat. Alpha was added in 5.5.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ColorModel(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ColorModel {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ColorModel(value)
        }
    }

    impl From<ColorModel> for ::std::os::raw::c_int {
        fn from(value: ColorModel) -> Self {
            value.0
        }
    }

    impl ColorModel {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ColorModel {
        /// The color model is RGB. (C++ enum variant: <span style='color: green;'>```RGB = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB: crate::q_pixel_format::ColorModel = crate::q_pixel_format::ColorModel(0);
        /// This is logically the opposite endian version of RGB. However, for ease of use it has its own model. (C++ enum variant: <span style='color: green;'>```BGR = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const BGR: crate::q_pixel_format::ColorModel = crate::q_pixel_format::ColorModel(1);
        /// The color model uses a color palette. (C++ enum variant: <span style='color: green;'>```Indexed = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Indexed: crate::q_pixel_format::ColorModel = crate::q_pixel_format::ColorModel(2);
        /// The color model is Grayscale. (C++ enum variant: <span style='color: green;'>```Grayscale = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Grayscale: crate::q_pixel_format::ColorModel =
            crate::q_pixel_format::ColorModel(3);
        /// The color model is CMYK. (C++ enum variant: <span style='color: green;'>```CMYK = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const CMYK: crate::q_pixel_format::ColorModel = crate::q_pixel_format::ColorModel(4);
        /// The color model is HSL. (C++ enum variant: <span style='color: green;'>```HSL = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const HSL: crate::q_pixel_format::ColorModel = crate::q_pixel_format::ColorModel(5);
        /// The color model is HSV. (C++ enum variant: <span style='color: green;'>```HSV = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const HSV: crate::q_pixel_format::ColorModel = crate::q_pixel_format::ColorModel(6);
        /// The color model is YUV. (C++ enum variant: <span style='color: green;'>```YUV = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const YUV: crate::q_pixel_format::ColorModel = crate::q_pixel_format::ColorModel(7);
        /// There is no color model, only alpha is used. (C++ enum variant: <span style='color: green;'>```Alpha = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Alpha: crate::q_pixel_format::ColorModel = crate::q_pixel_format::ColorModel(8);
    }

    /// <p>This enum describes if the alpha channel is used or not. Sometimes the pixelformat will have a size for the alpha channel, but the pixel format does actually not use the alpha channel. For example RGB32 is such a format. The RGB channels are 8 bits each, and there is no alpha channel. But the complete size for each pixel is 32. Therefore the alpha channel size is 8, but the alpha channel is ignored. Its important to note that in such situations the position of the alpha channel is significant.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPixelFormat::AlphaUsage```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#AlphaUsage-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes if the alpha channel is used or not. Sometimes the pixelformat will have a size for the alpha channel, but the pixel format does actually not use the alpha channel. For example RGB32 is such a format. The RGB channels are 8 bits each, and there is no alpha channel. But the complete size for each pixel is 32. Therefore the alpha channel size is 8, but the alpha channel is ignored. Its important to note that in such situations the position of the alpha channel is significant.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AlphaUsage(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AlphaUsage {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AlphaUsage(value)
        }
    }

    impl From<AlphaUsage> for ::std::os::raw::c_int {
        fn from(value: AlphaUsage) -> Self {
            value.0
        }
    }

    impl AlphaUsage {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AlphaUsage {
        /// The alpha channel is used. (C++ enum variant: <span style='color: green;'>```UsesAlpha = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const UsesAlpha: crate::q_pixel_format::AlphaUsage =
            crate::q_pixel_format::AlphaUsage(0);
        /// The alpha channel is not used. (C++ enum variant: <span style='color: green;'>```IgnoresAlpha = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const IgnoresAlpha: crate::q_pixel_format::AlphaUsage =
            crate::q_pixel_format::AlphaUsage(1);
    }

    /// <p>This enum type is used to describe the alpha channels position relative to the color channels.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPixelFormat::AlphaPosition```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#AlphaPosition-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type is used to describe the alpha channels position relative to the color channels.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AlphaPosition(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AlphaPosition {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AlphaPosition(value)
        }
    }

    impl From<AlphaPosition> for ::std::os::raw::c_int {
        fn from(value: AlphaPosition) -> Self {
            value.0
        }
    }

    impl AlphaPosition {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AlphaPosition {
        /// The alpha channel will be put in front of the color channels . E.g. ARGB. (C++ enum variant: <span style='color: green;'>```AtBeginning = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const AtBeginning: crate::q_pixel_format::AlphaPosition =
            crate::q_pixel_format::AlphaPosition(0);
        /// The alpha channel will be put in the back of the color channels. E.g. RGBA. (C++ enum variant: <span style='color: green;'>```AtEnd = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AtEnd: crate::q_pixel_format::AlphaPosition =
            crate::q_pixel_format::AlphaPosition(1);
    }

    /// <p>This enum type describes the boolean state if the alpha channel is multiplied into the color channels or not.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPixelFormat::AlphaPremultiplied```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#AlphaPremultiplied-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type describes the boolean state if the alpha channel is multiplied into the color channels or not.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AlphaPremultiplied(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AlphaPremultiplied {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AlphaPremultiplied(value)
        }
    }

    impl From<AlphaPremultiplied> for ::std::os::raw::c_int {
        fn from(value: AlphaPremultiplied) -> Self {
            value.0
        }
    }

    impl AlphaPremultiplied {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AlphaPremultiplied {
        /// The alpha channel is not multiplied into the color channels. (C++ enum variant: <span style='color: green;'>```NotPremultiplied = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NotPremultiplied: crate::q_pixel_format::AlphaPremultiplied =
            crate::q_pixel_format::AlphaPremultiplied(0);
        /// The alpha channel is multiplied into the color channels. (C++ enum variant: <span style='color: green;'>```Premultiplied = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Premultiplied: crate::q_pixel_format::AlphaPremultiplied =
            crate::q_pixel_format::AlphaPremultiplied(1);
    }

    /// <p>This enum describes how each pixel is interpreted. If a pixel is read as a full 32 bit unsigned integer and then each channel is masked out, or if each byte is read as unsigned char values. Typically <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> formats interpret one pixel as an unsigned integer and then the color channels are masked out. OpenGL on the other hand typically interpreted pixels "one byte after the other", Ie. unsigned byte.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPixelFormat::TypeInterpretation```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes how each pixel is interpreted. If a pixel is read as a full 32 bit unsigned integer and then each channel is masked out, or if each byte is read as unsigned char values. Typically <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> formats interpret one pixel as an unsigned integer and then the color channels are masked out. OpenGL on the other hand typically interpreted pixels "one byte after the other", Ie. unsigned byte.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> also have the format Format_RGBA8888 (and its derivatives), where the pixels are interpreted as unsigned bytes. OpenGL has extensions that makes it possible to upload pixel buffers in an unsigned integer format.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qpixelformat-argb32buffer.png" alt="An unsigned integer ARGB32 pixel."></p><p>The image above shows a ARGB pixel in memory read as an unsigned integer. However, if this pixel was read byte for byte on a little endian system the first byte would be the byte containing the B-channel. The next byte would be the G-channel, then the R-channel and finally the A-channel. This shows that on little endian systems, how each pixel is interpreted is significant for integer formats. This is not the case on big endian systems.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct TypeInterpretation(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for TypeInterpretation {
        fn from(value: ::std::os::raw::c_int) -> Self {
            TypeInterpretation(value)
        }
    }

    impl From<TypeInterpretation> for ::std::os::raw::c_int {
        fn from(value: TypeInterpretation) -> Self {
            value.0
        }
    }

    impl TypeInterpretation {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl TypeInterpretation {
        /// C++ enum variant: <span style='color: green;'>```UnsignedInteger = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const UnsignedInteger: crate::q_pixel_format::TypeInterpretation =
            crate::q_pixel_format::TypeInterpretation(0);
        /// C++ enum variant: <span style='color: green;'>```UnsignedShort = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const UnsignedShort: crate::q_pixel_format::TypeInterpretation =
            crate::q_pixel_format::TypeInterpretation(1);
        /// C++ enum variant: <span style='color: green;'>```UnsignedByte = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const UnsignedByte: crate::q_pixel_format::TypeInterpretation =
            crate::q_pixel_format::TypeInterpretation(2);
        /// C++ enum variant: <span style='color: green;'>```FloatingPoint = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const FloatingPoint: crate::q_pixel_format::TypeInterpretation =
            crate::q_pixel_format::TypeInterpretation(3);
    }

    /// <p>YUV is not represented by describing the size of the color channels. This is because YUV often use macro pixels, making the concept of sperate color channels invalid. Instead the different YUV layouts are described with this enum.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPixelFormat::YUVLayout```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#YUVLayout-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>YUV is not represented by describing the size of the color channels. This is because YUV often use macro pixels, making the concept of sperate color channels invalid. Instead the different YUV layouts are described with this enum.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct YUVLayout(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for YUVLayout {
        fn from(value: ::std::os::raw::c_int) -> Self {
            YUVLayout(value)
        }
    }

    impl From<YUVLayout> for ::std::os::raw::c_int {
        fn from(value: YUVLayout) -> Self {
            value.0
        }
    }

    impl YUVLayout {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl YUVLayout {
        /// C++ enum variant: <span style='color: green;'>```YUV444 = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const YUV444: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(0);
        /// C++ enum variant: <span style='color: green;'>```YUV422 = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const YUV422: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(1);
        /// C++ enum variant: <span style='color: green;'>```YUV411 = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const YUV411: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(2);
        /// C++ enum variant: <span style='color: green;'>```YUV420P = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const YUV420P: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(3);
        /// C++ enum variant: <span style='color: green;'>```YUV420SP = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const YUV420SP: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(4);
        /// C++ enum variant: <span style='color: green;'>```YV12 = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const YV12: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(5);
        /// C++ enum variant: <span style='color: green;'>```UYVY = 6```</span>
        #[allow(non_upper_case_globals)]
        pub const UYVY: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(6);
        /// C++ enum variant: <span style='color: green;'>```YUYV = 7```</span>
        #[allow(non_upper_case_globals)]
        pub const YUYV: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(7);
        /// C++ enum variant: <span style='color: green;'>```NV12 = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const NV12: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(8);
        /// C++ enum variant: <span style='color: green;'>```NV21 = 9```</span>
        #[allow(non_upper_case_globals)]
        pub const NV21: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(9);
        /// C++ enum variant: <span style='color: green;'>```IMC1 = 10```</span>
        #[allow(non_upper_case_globals)]
        pub const IMC1: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(10);
        /// C++ enum variant: <span style='color: green;'>```IMC2 = 11```</span>
        #[allow(non_upper_case_globals)]
        pub const IMC2: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(11);
        /// C++ enum variant: <span style='color: green;'>```IMC3 = 12```</span>
        #[allow(non_upper_case_globals)]
        pub const IMC3: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(12);
        /// C++ enum variant: <span style='color: green;'>```IMC4 = 13```</span>
        #[allow(non_upper_case_globals)]
        pub const IMC4: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(13);
        /// C++ enum variant: <span style='color: green;'>```Y8 = 14```</span>
        #[allow(non_upper_case_globals)]
        pub const Y8: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(14);
        /// C++ enum variant: <span style='color: green;'>```Y16 = 15```</span>
        #[allow(non_upper_case_globals)]
        pub const Y16: crate::q_pixel_format::YUVLayout = crate::q_pixel_format::YUVLayout(15);
    }

    /// <p>This enum describes the ByteOrder of the pixel format. This enum is mostly ignored but have some use cases for YUV formats. BGR formats have their own color model, and should not be described by using the opposite endianness on an RGB format.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPixelFormat::ByteOrder```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#ByteOrder-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the ByteOrder of the pixel format. This enum is mostly ignored but have some use cases for YUV formats. BGR formats have their own color model, and should not be described by using the opposite endianness on an RGB format.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ByteOrder(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ByteOrder {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ByteOrder(value)
        }
    }

    impl From<ByteOrder> for ::std::os::raw::c_int {
        fn from(value: ByteOrder) -> Self {
            value.0
        }
    }

    impl ByteOrder {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ByteOrder {
        /// The byte order is little endian. (C++ enum variant: <span style='color: green;'>```LittleEndian = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const LittleEndian: crate::q_pixel_format::ByteOrder =
            crate::q_pixel_format::ByteOrder(0);
        /// The byte order is big endian. (C++ enum variant: <span style='color: green;'>```BigEndian = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const BigEndian: crate::q_pixel_format::ByteOrder = crate::q_pixel_format::ByteOrder(1);
        /// This enum will not be stored, but is converted in the constructor to the endian enum that matches the enum of the current system. (C++ enum variant: <span style='color: green;'>```CurrentSystemEndian = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const CurrentSystemEndian: crate::q_pixel_format::ByteOrder =
            crate::q_pixel_format::ByteOrder(2);
    }
}
/// <p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is a class for describing different pixel layouts in graphics buffers</p>
///
/// C++ class: <span style='color: green;'>```QPixelFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is a class for describing different pixel layouts in graphics buffers</p>
/// <p>In Qt there is a often a need to represent the layout of the pixels in a graphics buffer. Internally <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> stores everything in a 64 bit datastructure. This gives performance but also some limitations.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> can describe 5 color channels and 1 alpha channel, each can use 6 bits to describe the size of the color channel.</p>
/// <p>The position of the alpha channel is described with a separate enum. This is to make it possible to describe <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> formats like ARGB32, and also describe typical OpenGL formats like RBGA8888.</p>
/// <p>How pixels are suppose to be read is determined by the <a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">TypeInterpretation</a> enum. It describes if color values are suppose to be read byte per byte, or if a pixel is suppose to be read as a complete int and then masked.</p>
/// <p>There is no support for describing YUV's macro pixels. Instead a list of YUV formats has been made. When a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is describing a YUV format, the <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">bitsPerPixel</a> value has been deduced by the YUV Layout enum. Also, the color channels should all be set to zero except the fifth color channel that should store the <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">bitsPerPixel</a> value.</p></div>
#[repr(C)]
pub struct QPixelFormat {
    _unused: u8,
}
impl QPixelFormat {
    /// <p>Accessor function for alphaPosition.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat::AlphaPosition QPixelFormat::alphaPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#alphaPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for alphaPosition.</p></div>
    #[inline(always)]
    pub unsafe fn alpha_position(&self) -> crate::q_pixel_format::AlphaPosition {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_alphaPosition(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the alpha channel size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::alphaSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#alphaSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the alpha channel size.</p></div>
    #[inline(always)]
    pub unsafe fn alpha_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_alphaSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for alphaUsage.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat::AlphaUsage QPixelFormat::alphaUsage() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#alphaUsage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for alphaUsage.</p></div>
    #[inline(always)]
    pub unsafe fn alpha_usage(&self) -> crate::q_pixel_format::AlphaUsage {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_alphaUsage(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the bits used per pixel. This function returns the sum of the color channels + the size of the alpha channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::bitsPerPixel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the bits used per pixel. This function returns the sum of the color channels + the size of the alpha channel.</p></div>
    #[inline(always)]
    pub unsafe fn bits_per_pixel(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_bitsPerPixel(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the black/key color channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::blackSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#blackSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the black/key color channel.</p></div>
    #[inline(always)]
    pub unsafe fn black_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_blackSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the size of the blue color channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::blueSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#blueSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the size of the blue color channel.</p></div>
    #[inline(always)]
    pub unsafe fn blue_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_blueSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the brightness channel size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::brightnessSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#brightnessSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the brightness channel size.</p></div>
    #[inline(always)]
    pub unsafe fn brightness_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_brightnessSize(self as *const crate::QPixelFormat)
    }

    /// <p>The byte order is almost always set the the byte order of the current system. However, it can be useful to describe some YUV formats. This function should never return <a href="http://doc.qt.io/qt-5/qpixelformat.html#ByteOrder-enum">QPixelFormat::CurrentSystemEndian</a> as this value is translated to a endian value in the constructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat::ByteOrder QPixelFormat::byteOrder() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#byteOrder">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The byte order is almost always set the the byte order of the current system. However, it can be useful to describe some YUV formats. This function should never return <a href="http://doc.qt.io/qt-5/qpixelformat.html#ByteOrder-enum">QPixelFormat::CurrentSystemEndian</a> as this value is translated to a endian value in the constructor.</p></div>
    #[inline(always)]
    pub unsafe fn byte_order(&self) -> crate::q_pixel_format::ByteOrder {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_byteOrder(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for getting the channelCount. Channel Count is deduced by color channels with a size &gt; 0 and if the size of the alpha channel is &gt; 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::channelCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#channelCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for getting the channelCount. Channel Count is deduced by color channels with a size &gt; 0 and if the size of the alpha channel is &gt; 0.</p></div>
    #[inline(always)]
    pub unsafe fn channel_count(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_channelCount(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for getting the colorModel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat::ColorModel QPixelFormat::colorModel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#colorModel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for getting the colorModel.</p></div>
    #[inline(always)]
    pub unsafe fn color_model(&self) -> crate::q_pixel_format::ColorModel {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_colorModel(self as *const crate::QPixelFormat)
    }

    /// <p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is a class for describing different pixel layouts in graphics buffers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat& QPixelFormat::operator=(const QPixelFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is a class for describing different pixel layouts in graphics buffers</p>
    /// <p>In Qt there is a often a need to represent the layout of the pixels in a graphics buffer. Internally <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> stores everything in a 64 bit datastructure. This gives performance but also some limitations.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> can describe 5 color channels and 1 alpha channel, each can use 6 bits to describe the size of the color channel.</p>
    /// <p>The position of the alpha channel is described with a separate enum. This is to make it possible to describe <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> formats like ARGB32, and also describe typical OpenGL formats like RBGA8888.</p>
    /// <p>How pixels are suppose to be read is determined by the <a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">TypeInterpretation</a> enum. It describes if color values are suppose to be read byte per byte, or if a pixel is suppose to be read as a complete int and then masked.</p>
    /// <p>There is no support for describing YUV's macro pixels. Instead a list of YUV formats has been made. When a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is describing a YUV format, the <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">bitsPerPixel</a> value has been deduced by the YUV Layout enum. Also, the color channels should all be set to zero except the fifth color channel that should store the <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">bitsPerPixel</a> value.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixelFormat>>,
    ) -> ::cpp_core::MutRef<crate::QPixelFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_operator_(
            self as *mut crate::QPixelFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixelFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Accessor function for the cyan color channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::cyanSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#cyanSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the cyan color channel.</p></div>
    #[inline(always)]
    pub unsafe fn cyan_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_cyanSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the size of the green color channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::greenSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#greenSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the size of the green color channel.</p></div>
    #[inline(always)]
    pub unsafe fn green_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_greenSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the hue channel size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::hueSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#hueSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the hue channel size.</p></div>
    #[inline(always)]
    pub unsafe fn hue_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_hueSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the lightness channel size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::lightnessSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#lightnessSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the lightness channel size.</p></div>
    #[inline(always)]
    pub unsafe fn lightness_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_lightnessSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the megenta color channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::magentaSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#magentaSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the megenta color channel.</p></div>
    #[inline(always)]
    pub unsafe fn magenta_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_magentaSize(self as *const crate::QPixelFormat)
    }

    /// <p>Creates a null pixelformat. This format maps to <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Invalid</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixelFormat::QPixelFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#QPixelFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a null pixelformat. This format maps to <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Invalid</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPixelFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_QPixelFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> which assigns its data to the attributes. <i>colorModel</i> will be put into a buffer which is 4 bits long.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixelFormat::QPixelFormat(QPixelFormat::ColorModel colorModel, unsigned char firstSize, unsigned char secondSize, unsigned char thirdSize, unsigned char fourthSize, unsigned char fifthSize, unsigned char alphaSize, QPixelFormat::AlphaUsage alphaUsage, QPixelFormat::AlphaPosition alphaPosition, QPixelFormat::AlphaPremultiplied premultiplied, QPixelFormat::TypeInterpretation typeInterpretation, QPixelFormat::ByteOrder byteOrder = …, unsigned char subEnum = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#QPixelFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> which assigns its data to the attributes. <i>colorModel</i> will be put into a buffer which is 4 bits long.</p>
    /// <p><i>firstSize</i> <i>secondSize</i> <i>thirdSize</i> <i>fourthSize</i> <i>fifthSize</i> <i>alphaSize</i> are all meant to represent the size of a channel. The channels will be used for different uses dependent on the <i>colorModel</i>. For RGB the firstSize will represent the Red channel. On CMYK it will represent the value of the Cyan channel.</p>
    /// <p><i>alphaUsage</i> represents if the alpha channel is used or not.</p>
    /// <p><i>alphaPosition</i> is the position of the alpha channel.</p>
    /// <p><i>premultiplied</i> represents if the alpha channel is already multiplied with the color channels.</p>
    /// <p><i>typeInterpretation</i> is how the pixel is interpreted.</p>
    /// <p><i>byteOrder</i> represents the endianness of the pixelformat. This defaults to <a href="http://doc.qt.io/qt-5/qpixelformat.html#ByteOrder-enum">CurrentSystemEndian</a>.</p>
    /// <p><i>subEnum</i> is used for colorModels that have to store some extra information with supplying an extra enum. This is used by YUV to store the YUV type The default value is 0.</p></div>
    #[inline(always)]
    pub unsafe fn new_13a(
        color_model: crate::q_pixel_format::ColorModel,
        first_size: ::std::os::raw::c_uchar,
        second_size: ::std::os::raw::c_uchar,
        third_size: ::std::os::raw::c_uchar,
        fourth_size: ::std::os::raw::c_uchar,
        fifth_size: ::std::os::raw::c_uchar,
        alpha_size: ::std::os::raw::c_uchar,
        alpha_usage: crate::q_pixel_format::AlphaUsage,
        alpha_position: crate::q_pixel_format::AlphaPosition,
        premultiplied: crate::q_pixel_format::AlphaPremultiplied,
        type_interpretation: crate::q_pixel_format::TypeInterpretation,
        byte_order: crate::q_pixel_format::ByteOrder,
        sub_enum: ::std::os::raw::c_uchar,
    ) -> ::cpp_core::CppBox<crate::QPixelFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_QPixelFormat1(
            color_model,
            first_size,
            second_size,
            third_size,
            fourth_size,
            fifth_size,
            alpha_size,
            alpha_usage,
            alpha_position,
            premultiplied,
            type_interpretation,
            byte_order,
            sub_enum,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> which assigns its data to the attributes. <i>colorModel</i> will be put into a buffer which is 4 bits long.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixelFormat::QPixelFormat(QPixelFormat::ColorModel colorModel, unsigned char firstSize, unsigned char secondSize, unsigned char thirdSize, unsigned char fourthSize, unsigned char fifthSize, unsigned char alphaSize, QPixelFormat::AlphaUsage alphaUsage, QPixelFormat::AlphaPosition alphaPosition, QPixelFormat::AlphaPremultiplied premultiplied, QPixelFormat::TypeInterpretation typeInterpretation, QPixelFormat::ByteOrder byteOrder = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#QPixelFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> which assigns its data to the attributes. <i>colorModel</i> will be put into a buffer which is 4 bits long.</p>
    /// <p><i>firstSize</i> <i>secondSize</i> <i>thirdSize</i> <i>fourthSize</i> <i>fifthSize</i> <i>alphaSize</i> are all meant to represent the size of a channel. The channels will be used for different uses dependent on the <i>colorModel</i>. For RGB the firstSize will represent the Red channel. On CMYK it will represent the value of the Cyan channel.</p>
    /// <p><i>alphaUsage</i> represents if the alpha channel is used or not.</p>
    /// <p><i>alphaPosition</i> is the position of the alpha channel.</p>
    /// <p><i>premultiplied</i> represents if the alpha channel is already multiplied with the color channels.</p>
    /// <p><i>typeInterpretation</i> is how the pixel is interpreted.</p>
    /// <p><i>byteOrder</i> represents the endianness of the pixelformat. This defaults to <a href="http://doc.qt.io/qt-5/qpixelformat.html#ByteOrder-enum">CurrentSystemEndian</a>.</p>
    /// <p><i>subEnum</i> is used for colorModels that have to store some extra information with supplying an extra enum. This is used by YUV to store the YUV type The default value is 0.</p></div>
    #[inline(always)]
    pub unsafe fn new_12a(
        color_model: crate::q_pixel_format::ColorModel,
        first_size: ::std::os::raw::c_uchar,
        second_size: ::std::os::raw::c_uchar,
        third_size: ::std::os::raw::c_uchar,
        fourth_size: ::std::os::raw::c_uchar,
        fifth_size: ::std::os::raw::c_uchar,
        alpha_size: ::std::os::raw::c_uchar,
        alpha_usage: crate::q_pixel_format::AlphaUsage,
        alpha_position: crate::q_pixel_format::AlphaPosition,
        premultiplied: crate::q_pixel_format::AlphaPremultiplied,
        type_interpretation: crate::q_pixel_format::TypeInterpretation,
        byte_order: crate::q_pixel_format::ByteOrder,
    ) -> ::cpp_core::CppBox<crate::QPixelFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_QPixelFormat3(
            color_model,
            first_size,
            second_size,
            third_size,
            fourth_size,
            fifth_size,
            alpha_size,
            alpha_usage,
            alpha_position,
            premultiplied,
            type_interpretation,
            byte_order,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> which assigns its data to the attributes. <i>colorModel</i> will be put into a buffer which is 4 bits long.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixelFormat::QPixelFormat(QPixelFormat::ColorModel colorModel, unsigned char firstSize, unsigned char secondSize, unsigned char thirdSize, unsigned char fourthSize, unsigned char fifthSize, unsigned char alphaSize, QPixelFormat::AlphaUsage alphaUsage, QPixelFormat::AlphaPosition alphaPosition, QPixelFormat::AlphaPremultiplied premultiplied, QPixelFormat::TypeInterpretation typeInterpretation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#QPixelFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> which assigns its data to the attributes. <i>colorModel</i> will be put into a buffer which is 4 bits long.</p>
    /// <p><i>firstSize</i> <i>secondSize</i> <i>thirdSize</i> <i>fourthSize</i> <i>fifthSize</i> <i>alphaSize</i> are all meant to represent the size of a channel. The channels will be used for different uses dependent on the <i>colorModel</i>. For RGB the firstSize will represent the Red channel. On CMYK it will represent the value of the Cyan channel.</p>
    /// <p><i>alphaUsage</i> represents if the alpha channel is used or not.</p>
    /// <p><i>alphaPosition</i> is the position of the alpha channel.</p>
    /// <p><i>premultiplied</i> represents if the alpha channel is already multiplied with the color channels.</p>
    /// <p><i>typeInterpretation</i> is how the pixel is interpreted.</p>
    /// <p><i>byteOrder</i> represents the endianness of the pixelformat. This defaults to <a href="http://doc.qt.io/qt-5/qpixelformat.html#ByteOrder-enum">CurrentSystemEndian</a>.</p>
    /// <p><i>subEnum</i> is used for colorModels that have to store some extra information with supplying an extra enum. This is used by YUV to store the YUV type The default value is 0.</p></div>
    #[inline(always)]
    pub unsafe fn new_11a(
        color_model: crate::q_pixel_format::ColorModel,
        first_size: ::std::os::raw::c_uchar,
        second_size: ::std::os::raw::c_uchar,
        third_size: ::std::os::raw::c_uchar,
        fourth_size: ::std::os::raw::c_uchar,
        fifth_size: ::std::os::raw::c_uchar,
        alpha_size: ::std::os::raw::c_uchar,
        alpha_usage: crate::q_pixel_format::AlphaUsage,
        alpha_position: crate::q_pixel_format::AlphaPosition,
        premultiplied: crate::q_pixel_format::AlphaPremultiplied,
        type_interpretation: crate::q_pixel_format::TypeInterpretation,
    ) -> ::cpp_core::CppBox<crate::QPixelFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_QPixelFormat4(
            color_model,
            first_size,
            second_size,
            third_size,
            fourth_size,
            fifth_size,
            alpha_size,
            alpha_usage,
            alpha_position,
            premultiplied,
            type_interpretation,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is a class for describing different pixel layouts in graphics buffers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixelFormat::QPixelFormat(const QPixelFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is a class for describing different pixel layouts in graphics buffers</p>
    /// <p>In Qt there is a often a need to represent the layout of the pixels in a graphics buffer. Internally <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> stores everything in a 64 bit datastructure. This gives performance but also some limitations.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> can describe 5 color channels and 1 alpha channel, each can use 6 bits to describe the size of the color channel.</p>
    /// <p>The position of the alpha channel is described with a separate enum. This is to make it possible to describe <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> formats like ARGB32, and also describe typical OpenGL formats like RBGA8888.</p>
    /// <p>How pixels are suppose to be read is determined by the <a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">TypeInterpretation</a> enum. It describes if color values are suppose to be read byte per byte, or if a pixel is suppose to be read as a complete int and then masked.</p>
    /// <p>There is no support for describing YUV's macro pixels. Instead a list of YUV formats has been made. When a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is describing a YUV format, the <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">bitsPerPixel</a> value has been deduced by the YUV Layout enum. Also, the color channels should all be set to zero except the fifth color channel that should store the <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">bitsPerPixel</a> value.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixelFormat>>,
    ) -> ::cpp_core::CppBox<crate::QPixelFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_QPixelFormat2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixelFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Accessor function for the <a href="http://doc.qt.io/qt-5/qpixelformat.html#AlphaPremultiplied-enum">AlphaPremultiplied</a> enum. This indicates if the alpha channel is multiplied in to the color channels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat::AlphaPremultiplied QPixelFormat::premultiplied() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#premultiplied">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the <a href="http://doc.qt.io/qt-5/qpixelformat.html#AlphaPremultiplied-enum">AlphaPremultiplied</a> enum. This indicates if the alpha channel is multiplied in to the color channels.</p></div>
    #[inline(always)]
    pub unsafe fn premultiplied(&self) -> crate::q_pixel_format::AlphaPremultiplied {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_premultiplied(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the size of the red color channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::redSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#redSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the size of the red color channel.</p></div>
    #[inline(always)]
    pub unsafe fn red_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_redSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the saturation channel size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::saturationSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#saturationSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the saturation channel size.</p></div>
    #[inline(always)]
    pub unsafe fn saturation_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_saturationSize(self as *const crate::QPixelFormat)
    }

    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::subEnum() const```</span>.
    #[inline(always)]
    pub unsafe fn sub_enum(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_subEnum(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the type representation of a color channel or a pixel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat::TypeInterpretation QPixelFormat::typeInterpretation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#typeInterpretation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the type representation of a color channel or a pixel.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">TypeInterpretation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn type_interpretation(&self) -> crate::q_pixel_format::TypeInterpretation {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_typeInterpretation(
            self as *const crate::QPixelFormat,
        )
    }

    /// <p>Accessor function for the yellow color channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QPixelFormat::yellowSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#yellowSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the yellow color channel.</p></div>
    #[inline(always)]
    pub unsafe fn yellow_size(&self) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_yellowSize(self as *const crate::QPixelFormat)
    }

    /// <p>Accessor function for the <a href="http://doc.qt.io/qt-5/qpixelformat.html#YUVLayout-enum">YUVLayout</a>. It is difficult to describe the color channels of a YUV pixel format since YUV color model uses macro pixels. Instead the layout of the pixels are stored as an enum.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat::YUVLayout QPixelFormat::yuvLayout() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html#yuvLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Accessor function for the <a href="http://doc.qt.io/qt-5/qpixelformat.html#YUVLayout-enum">YUVLayout</a>. It is difficult to describe the color channels of a YUV pixel format since YUV color model uses macro pixels. Instead the layout of the pixels are stored as an enum.</p></div>
    #[inline(always)]
    pub unsafe fn yuv_layout(&self) -> crate::q_pixel_format::YUVLayout {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_yuvLayout(self as *const crate::QPixelFormat)
    }
}

pub mod qt_private;
pub mod q_image {
    //! C++ type: <span style='color: green;'>```QImage```</span>

    /// <p>This enum type is used to describe how pixel values should be inverted in the <a href="http://doc.qt.io/qt-5/qimage.html#invertPixels">invertPixels</a>() function.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QImage::InvertMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#InvertMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type is used to describe how pixel values should be inverted in the <a href="http://doc.qt.io/qt-5/qimage.html#invertPixels">invertPixels</a>() function.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#invertPixels">invertPixels</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct InvertMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for InvertMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            InvertMode(value)
        }
    }

    impl From<InvertMode> for ::std::os::raw::c_int {
        fn from(value: InvertMode) -> Self {
            value.0
        }
    }

    impl InvertMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl InvertMode {
        /// Invert only the RGB values and leave the alpha channel unchanged. (C++ enum variant: <span style='color: green;'>```InvertRgb = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const InvertRgb: crate::q_image::InvertMode = crate::q_image::InvertMode(0);
        /// Invert all channels, including the alpha channel. (C++ enum variant: <span style='color: green;'>```InvertRgba = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const InvertRgba: crate::q_image::InvertMode = crate::q_image::InvertMode(1);
    }

    /// <p>The following image formats are available in Qt. Values from Format_ARGB8565_Premultiplied to Format_ARGB4444_Premultiplied were added in Qt 4.4. Values Format_RGBX8888, Format_RGBA8888 and Format_RGBA8888_Premultiplied were added in Qt 5.2. Values Format_BGR30, Format_A2BGR30_Premultiplied, Format_RGB30, Format_A2RGB30_Premultiplied were added in Qt 5.4. Format_Alpha8 and Format_Grayscale8 were added in Qt 5.5. See the notes after the table.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QImage::Format```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The following image formats are available in Qt. Values from Format_ARGB8565_Premultiplied to Format_ARGB4444_Premultiplied were added in Qt 4.4. Values Format_RGBX8888, Format_RGBA8888 and Format_RGBA8888_Premultiplied were added in Qt 5.2. Values Format_BGR30, Format_A2BGR30_Premultiplied, Format_RGB30, Format_A2RGB30_Premultiplied were added in Qt 5.4. Format_Alpha8 and Format_Grayscale8 were added in Qt 5.5. See the notes after the table.</p>
    ///
    /// <p><b>Note: </b>Drawing into a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> with QImage::Format_Indexed8 is not supported.</p><p><b>Note: </b>Do not render into ARGB32 images using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>. Using QImage::Format_ARGB32_Premultiplied is significantly faster.</p><p><b>Note: </b>Formats with more than 8 bit per color channel will only be processed by the raster engine using 8 bit per color.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#format">format</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Format(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Format {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Format(value)
        }
    }

    impl From<Format> for ::std::os::raw::c_int {
        fn from(value: Format) -> Self {
            value.0
        }
    }

    impl Format {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Format {
        /// The image is invalid. (C++ enum variant: <span style='color: green;'>```Format_Invalid = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatInvalid: crate::q_image::Format = crate::q_image::Format(0);
        /// The image is stored using 1-bit per pixel. Bytes are packed with the most significant bit (MSB) first. (C++ enum variant: <span style='color: green;'>```Format_Mono = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatMono: crate::q_image::Format = crate::q_image::Format(1);
        /// The image is stored using 1-bit per pixel. Bytes are packed with the less significant bit (LSB) first. (C++ enum variant: <span style='color: green;'>```Format_MonoLSB = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatMonoLSB: crate::q_image::Format = crate::q_image::Format(2);
        /// The image is stored using 8-bit indexes into a colormap. (C++ enum variant: <span style='color: green;'>```Format_Indexed8 = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatIndexed8: crate::q_image::Format = crate::q_image::Format(3);
        /// The image is stored using a 32-bit RGB format (0xffRRGGBB). (C++ enum variant: <span style='color: green;'>```Format_RGB32 = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGB32: crate::q_image::Format = crate::q_image::Format(4);
        /// The image is stored using a 32-bit ARGB format (0xAARRGGBB). (C++ enum variant: <span style='color: green;'>```Format_ARGB32 = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatARGB32: crate::q_image::Format = crate::q_image::Format(5);
        /// The image is stored using a premultiplied 32-bit ARGB format (0xAARRGGBB), i.e. the red, green, and blue channels are multiplied by the alpha component divided by 255. (If RR, GG, or BB has a higher value than the alpha channel, the results are undefined.) Certain operations (such as image composition using alpha blending) are faster using premultiplied ARGB32 than with plain ARGB32. (C++ enum variant: <span style='color: green;'>```Format_ARGB32_Premultiplied = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatARGB32Premultiplied: crate::q_image::Format = crate::q_image::Format(6);
        /// The image is stored using a 16-bit RGB format (5-6-5). (C++ enum variant: <span style='color: green;'>```Format_RGB16 = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGB16: crate::q_image::Format = crate::q_image::Format(7);
        /// The image is stored using a premultiplied 24-bit ARGB format (8-5-6-5). (C++ enum variant: <span style='color: green;'>```Format_ARGB8565_Premultiplied = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatARGB8565Premultiplied: crate::q_image::Format = crate::q_image::Format(8);
        /// The image is stored using a 24-bit RGB format (6-6-6). The unused most significant bits is always zero. (C++ enum variant: <span style='color: green;'>```Format_RGB666 = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGB666: crate::q_image::Format = crate::q_image::Format(9);
        /// The image is stored using a premultiplied 24-bit ARGB format (6-6-6-6). (C++ enum variant: <span style='color: green;'>```Format_ARGB6666_Premultiplied = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatARGB6666Premultiplied: crate::q_image::Format = crate::q_image::Format(10);
        /// The image is stored using a 16-bit RGB format (5-5-5). The unused most significant bit is always zero. (C++ enum variant: <span style='color: green;'>```Format_RGB555 = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGB555: crate::q_image::Format = crate::q_image::Format(11);
        /// The image is stored using a premultiplied 24-bit ARGB format (8-5-5-5). (C++ enum variant: <span style='color: green;'>```Format_ARGB8555_Premultiplied = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatARGB8555Premultiplied: crate::q_image::Format = crate::q_image::Format(12);
        /// The image is stored using a 24-bit RGB format (8-8-8). (C++ enum variant: <span style='color: green;'>```Format_RGB888 = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGB888: crate::q_image::Format = crate::q_image::Format(13);
        /// The image is stored using a 16-bit RGB format (4-4-4). The unused bits are always zero. (C++ enum variant: <span style='color: green;'>```Format_RGB444 = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGB444: crate::q_image::Format = crate::q_image::Format(14);
        /// The image is stored using a premultiplied 16-bit ARGB format (4-4-4-4). (C++ enum variant: <span style='color: green;'>```Format_ARGB4444_Premultiplied = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatARGB4444Premultiplied: crate::q_image::Format = crate::q_image::Format(15);
        /// The image is stored using a 32-bit byte-ordered RGB(x) format (8-8-8-8). This is the same as the Format_RGBA8888 except alpha must always be 255. (C++ enum variant: <span style='color: green;'>```Format_RGBX8888 = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGBX8888: crate::q_image::Format = crate::q_image::Format(16);
        /// The image is stored using a 32-bit byte-ordered RGBA format (8-8-8-8). Unlike ARGB32 this is a byte-ordered format, which means the 32bit encoding differs between big endian and little endian architectures, being respectively (0xRRGGBBAA) and (0xAABBGGRR). The order of the colors is the same on any architecture if read as bytes 0xRR,0xGG,0xBB,0xAA. (C++ enum variant: <span style='color: green;'>```Format_RGBA8888 = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGBA8888: crate::q_image::Format = crate::q_image::Format(17);
        /// The image is stored using a premultiplied 32-bit byte-ordered RGBA format (8-8-8-8). (C++ enum variant: <span style='color: green;'>```Format_RGBA8888_Premultiplied = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGBA8888Premultiplied: crate::q_image::Format = crate::q_image::Format(18);
        /// The image is stored using a 32-bit BGR format (x-10-10-10). (C++ enum variant: <span style='color: green;'>```Format_BGR30 = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatBGR30: crate::q_image::Format = crate::q_image::Format(19);
        /// The image is stored using a 32-bit premultiplied ABGR format (2-10-10-10). (C++ enum variant: <span style='color: green;'>```Format_A2BGR30_Premultiplied = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatA2BGR30Premultiplied: crate::q_image::Format = crate::q_image::Format(20);
        /// The image is stored using a 32-bit RGB format (x-10-10-10). (C++ enum variant: <span style='color: green;'>```Format_RGB30 = 21```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGB30: crate::q_image::Format = crate::q_image::Format(21);
        /// The image is stored using a 32-bit premultiplied ARGB format (2-10-10-10). (C++ enum variant: <span style='color: green;'>```Format_A2RGB30_Premultiplied = 22```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatA2RGB30Premultiplied: crate::q_image::Format = crate::q_image::Format(22);
        /// The image is stored using an 8-bit alpha only format. (C++ enum variant: <span style='color: green;'>```Format_Alpha8 = 23```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatAlpha8: crate::q_image::Format = crate::q_image::Format(23);
        /// The image is stored using an 8-bit grayscale format. (C++ enum variant: <span style='color: green;'>```Format_Grayscale8 = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatGrayscale8: crate::q_image::Format = crate::q_image::Format(24);
        /// C++ enum variant: <span style='color: green;'>```NImageFormats = 25```</span>
        #[allow(non_upper_case_globals)]
        pub const NImageFormats: crate::q_image::Format = crate::q_image::Format(25);
        /// The image is stored using a 64-bit halfword-ordered RGB(x) format (16-16-16-16). This is the same as the Format_RGBX64 except alpha must always be 65535. (added in Qt 5.12) (C++ enum variant: <span style='color: green;'>```Format_RGBX64 = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGBX64: crate::q_image::Format = crate::q_image::Format(25);
        /// The image is stored using a 64-bit halfword-ordered RGBA format (16-16-16-16). (added in Qt 5.12) (C++ enum variant: <span style='color: green;'>```Format_RGBA64 = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGBA64: crate::q_image::Format = crate::q_image::Format(26);
        /// The image is stored using a premultiplied 64-bit halfword-ordered RGBA format (16-16-16-16). (added in Qt 5.12) (C++ enum variant: <span style='color: green;'>```Format_RGBA64_Premultiplied = 27```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatRGBA64Premultiplied: crate::q_image::Format = crate::q_image::Format(27);
        /// C++ enum variant: <span style='color: green;'>```NImageFormats = 28```</span>
        #[allow(non_upper_case_globals)]
        pub const NImageFormats2: crate::q_image::Format = crate::q_image::Format(28);
        /// The image is stored using an 16-bit grayscale format. (added in Qt 5.13) (C++ enum variant: <span style='color: green;'>```Format_Grayscale16 = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const FormatGrayscale16: crate::q_image::Format = crate::q_image::Format(28);
        /// C++ enum variant: <span style='color: green;'>```NImageFormats = 29```</span>
        #[allow(non_upper_case_globals)]
        pub const NImageFormats3: crate::q_image::Format = crate::q_image::Format(29);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> class provides a hardware-independent image representation that allows direct access to the pixel data, and can be used as a paint device.</p>
///
/// C++ class: <span style='color: green;'>```QImage```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qimage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> class provides a hardware-independent image representation that allows direct access to the pixel data, and can be used as a paint device.</p>
/// <p>Qt provides four classes for handling image data: <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>, <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> and <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a>. <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> is designed and optimized for I/O, and for direct pixel access and manipulation, while <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> is designed and optimized for showing images on screen. <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> is only a convenience class that inherits <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>, ensuring a depth of 1. Finally, the <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> class is a paint device that records and replays <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> commands.</p>
/// <p>Because <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> is a <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> subclass, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> can be used to draw directly onto images. When using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>, the painting can be performed in another thread than the current GUI thread.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> class supports several image formats described by the <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">Format</a> enum. These include monochrome, 8-bit, 32-bit and alpha-blended images which are available in all versions of Qt 4.x.</p>
/// <p><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> provides a collection of functions that can be used to obtain a variety of information about the image. There are also several functions that enables transformation of the image.</p>
/// <p><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> objects can be passed around by value since the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> class uses <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit data sharing</a>. <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> objects can also be streamed and compared.</p>
/// <p><b>Note: </b>If you would like to load <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> objects in a static build of Qt, refer to the <a href="http://doc.qt.io/qt-5/plugins-howto.html">Plugin HowTo</a>.</p><p><b>Warning:</b> Painting on a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> with the format <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Indexed8</a> is not supported.</p>
/// <a name="reading-and-writing-image-files"></a></div>
#[repr(C)]
pub struct QImage {
    _unused: u8,
}
impl QImage {
    /// <p>Returns <code>true</code> if all the colors in the image are shades of gray (i.e. their red, green and blue components are equal); otherwise false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::allGray() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#allGray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if all the colors in the image are shades of gray (i.e. their red, green and blue components are equal); otherwise false.</p>
    /// <p>Note that this function is slow for images without color table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#isGrayscale">isGrayscale</a>().</p></div>
    #[inline(always)]
    pub unsafe fn all_gray(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_allGray(self as *const crate::QImage)
    }

    /// <p>Returns the alpha channel of the image as a new grayscale <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> in which each pixel's red, green, and blue values are given the alpha value of the original image. The color depth of the returned image is 8-bit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::alphaChannel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage-obsolete.html#alphaChannel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the alpha channel of the image as a new grayscale <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> in which each pixel's red, green, and blue values are given the alpha value of the original image. The color depth of the returned image is 8-bit.</p>
    /// <p>You can see an example of use of this function in <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>'s <a href="http://doc.qt.io/qt-5/qpixmap.html#alphaChannel">alphaChannel()</a>, which works in the same way as this function on QPixmaps.</p>
    /// <p>Most usecases for this function can be replaced with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> and using composition modes.</p>
    /// <p>Note this returns a color-indexed image if you want the alpha channel in the alpha8 format instead use <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>(<a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">Format_Alpha8</a>) on the source image.</p>
    /// <p><b>Warning:</b> This is an expensive function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage-obsolete.html#setAlphaChannel">setAlphaChannel</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#hasAlphaChannel">hasAlphaChannel</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap</a>, and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn alpha_channel(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_alphaChannel(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of bit planes in the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::bitPlaneCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#bitPlaneCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of bit planes in the image.</p>
    /// <p>The number of bit planes is the number of bits of color and transparency information for each pixel. This is different from (i.e. smaller than) the depth when the image format contains unused bits.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#depth">depth</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#format">format</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bit_plane_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_bitPlaneCount(self as *const crate::QImage)
    }

    /// <p>Returns a pointer to the first pixel data. This is equivalent to <a href="http://doc.qt.io/qt-5/qimage.html#scanLine">scanLine</a>(0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char* QImage::bits()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#bits">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the first pixel data. This is equivalent to <a href="http://doc.qt.io/qt-5/qimage.html#scanLine">scanLine</a>(0).</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> uses <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit data sharing</a>. This function performs a deep copy of the shared pixel data, thus ensuring that this <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> is the only one using the current return value.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#scanLine">scanLine</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#byteCount">byteCount</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#constBits">constBits</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bits_mut(&mut self) -> ::cpp_core::MutPtr<::std::os::raw::c_uchar> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_bits(self as *mut crate::QImage);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const unsigned char* QImage::bits() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#bits-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> uses <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit data sharing</a>, but this function does <i>not</i> perform a deep copy of the shared pixel data, because the returned data is const.</p></div>
    #[inline(always)]
    pub unsafe fn bits(&self) -> ::cpp_core::Ptr<::std::os::raw::c_uchar> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_bits1(self as *const crate::QImage);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the number of bytes occupied by the image data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::byteCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#byteCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of bytes occupied by the image data.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#bytesPerLine">bytesPerLine</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#bits">bits</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn byte_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_byteCount(self as *const crate::QImage)
    }

    /// <p>Returns the number of bytes per image scanline.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::bytesPerLine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#bytesPerLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of bytes per image scanline.</p>
    /// <p>This is equivalent to <a href="http://doc.qt.io/qt-5/qimage.html#byteCount">byteCount</a>() / <a href="http://doc.qt.io/qt-5/qimage.html#height">height</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#scanLine">scanLine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bytes_per_line(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_bytesPerLine(self as *const crate::QImage)
    }

    /// <p>Returns a number that identifies the contents of this <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> object. Distinct <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> objects can only have the same key if they refer to the same contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```qint64 QImage::cacheKey() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#cacheKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a number that identifies the contents of this <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> object. Distinct <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> objects can only have the same key if they refer to the same contents.</p>
    /// <p>The key will change when the image is altered.</p></div>
    #[inline(always)]
    pub unsafe fn cache_key(&self) -> i64 {
        crate::__ffi::ctr_qt_gui_ffi_QImage_cacheKey(self as *const crate::QImage)
    }

    /// <p>Returns the color in the color table at index <i>i</i>. The first color is at index 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QImage::color(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#color">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color in the color table at index <i>i</i>. The first color is at index 0.</p>
    /// <p>The colors in an image's color table are specified as ARGB quadruplets (<a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a>). Use the <a href="http://doc.qt.io/qt-5/qcolor.html#qAlpha">qAlpha</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qRed">qRed</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen">qGreen</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue">qBlue</a>() functions to get the color value components.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setColor">setColor</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#pixelIndex">pixelIndex</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn color(&self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QImage_color(self as *const crate::QImage, i)
    }

    /// <p>Returns the size of the color table for the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::colorCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#colorCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the color table for the image.</p>
    /// <p>Notice that colorCount() returns 0 for 32-bpp images because these images do not use color tables, but instead encode pixel values as ARGB quadruplets.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn color_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_colorCount(self as *const crate::QImage)
    }

    /// <p>Returns a list of the colors contained in the image's color table, or an empty list if the image does not have a color table</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<unsigned int> QImage::colorTable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#colorTable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of the colors contained in the image's color table, or an empty list if the image does not have a color table</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#colorCount">colorCount</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#color">color</a>().</p></div>
    #[inline(always)]
    pub unsafe fn color_table(&self) -> ::cpp_core::CppBox<::qt_core::QVectorOfUint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_colorTable(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pointer to the first pixel data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const unsigned char* QImage::constBits() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#constBits">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the first pixel data.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> uses <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit data sharing</a>, but this function does <i>not</i> perform a deep copy of the shared pixel data, because the returned data is const.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#bits">bits</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#constScanLine">constScanLine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_bits(&self) -> ::cpp_core::Ptr<::std::os::raw::c_uchar> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_constBits(self as *const crate::QImage);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to the pixel data at the scanline with index <i>i</i>. The first scanline is at index 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const unsigned char* QImage::constScanLine(int arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#constScanLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the pixel data at the scanline with index <i>i</i>. The first scanline is at index 0.</p>
    /// <p>The scanline data is aligned on a 32-bit boundary.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> uses <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit data sharing</a>, but this function does <i>not</i> perform a deep copy of the shared pixel data, because the returned data is const.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#scanLine">scanLine</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#constBits">constBits</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_scan_line(
        &self,
        arg1: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ptr<::std::os::raw::c_uchar> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_constScanLine(self as *const crate::QImage, arg1);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Detach and convert the image to the given <i>format</i> in place.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::convertTo(QImage::Format f, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#convertTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Detach and convert the image to the given <i>format</i> in place.</p>
    /// <p>The specified image conversion <i>flags</i> control how the image data is handled during the conversion process.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn convert_to_2a(
        &mut self,
        f: crate::q_image::Format,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_convertTo(self as *mut crate::QImage, f, flags.to_int())
    }

    /// <p>Detach and convert the image to the given <i>format</i> in place.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::convertTo(QImage::Format f)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#convertTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Detach and convert the image to the given <i>format</i> in place.</p>
    /// <p>The specified image conversion <i>flags</i> control how the image data is handled during the conversion process.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn convert_to_1a(&mut self, f: crate::q_image::Format) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_convertTo1(self as *mut crate::QImage, f)
    }

    /// <p>Returns a copy of the image in the given <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::convertToFormat(QImage::Format f, QFlags<Qt::ImageConversionFlag> flags = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image in the given <i>format</i>.</p>
    /// <p>The specified image conversion <i>flags</i> control how the image data is handled during the conversion process.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn convert_to_format_format_q_flags_image_conversion_flag(
        &self,
        f: crate::q_image::Format,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_convertToFormat(
            self as *const crate::QImage,
            f,
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image in the given <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::convertToFormat(QImage::Format f, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image in the given <i>format</i>.</p>
    /// <p>The specified image conversion <i>flags</i> control how the image data is handled during the conversion process.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn convert_to_format_format_q_flags_image_conversion_flag_mut(
        &mut self,
        f: crate::q_image::Format,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_convertToFormat1(
            self as *mut crate::QImage,
            f,
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::convertToFormat(QImage::Format f, const QVector<unsigned int>& colorTable, QFlags<Qt::ImageConversionFlag> flags = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the image converted to the given <i>format</i>, using the specified <i>colorTable</i>.</p>
    /// <p>Conversion from RGB formats to indexed formats is a slow operation and will use a straightforward nearest color approach, with no dithering.</p></div>
    #[inline(always)]
    pub unsafe fn convert_to_format_format_q_vector_of_uint_q_flags_image_conversion_flag(
        &self,
        f: crate::q_image::Format,
        color_table: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfUint>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_convertToFormat2(
            self as *const crate::QImage,
            f,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfUint>>::cast_into(
                color_table,
            )
            .as_raw_ptr(),
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image in the given <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::convertToFormat(QImage::Format f) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image in the given <i>format</i>.</p>
    /// <p>The specified image conversion <i>flags</i> control how the image data is handled during the conversion process.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn convert_to_format_format(
        &self,
        f: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_convertToFormat3(self as *const crate::QImage, f);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image in the given <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::convertToFormat(QImage::Format f)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image in the given <i>format</i>.</p>
    /// <p>The specified image conversion <i>flags</i> control how the image data is handled during the conversion process.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn convert_to_format_format_mut(
        &mut self,
        f: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_convertToFormat4(self as *mut crate::QImage, f);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::convertToFormat(QImage::Format f, const QVector<unsigned int>& colorTable) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the image converted to the given <i>format</i>, using the specified <i>colorTable</i>.</p>
    /// <p>Conversion from RGB formats to indexed formats is a slow operation and will use a straightforward nearest color approach, with no dithering.</p></div>
    #[inline(always)]
    pub unsafe fn convert_to_format_format_q_vector_of_uint(
        &self,
        f: crate::q_image::Format,
        color_table: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfUint>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_convertToFormat5(
            self as *const crate::QImage,
            f,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfUint>>::cast_into(
                color_table,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-area of the image as a new image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::copy(const QRect& rect = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#copy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-area of the image as a new image.</p>
    /// <p>The returned image is copied from the position (<i>rectangle</i>.x(), <i>rectangle</i>.y()) in this image, and will always have the size of the given <i>rectangle</i>.</p>
    /// <p>In areas beyond this image, pixels are set to 0. For 32-bit RGB images, this means black; for 32-bit ARGB images, this means transparent black; for 8-bit images, this means the color with index 0 in the color table which can be anything; for 1-bit images, this means <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a>.</p>
    /// <p>If the given <i>rectangle</i> is a null rectangle the entire image is copied.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#QImage">QImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_1a(
        &self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_copy(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::copy(int x, int y, int w, int h) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#copy-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>The returned image is copied from the position (<i>x</i>, <i>y</i>) in this image, and will always have the given <i>width</i> and <i>height</i>. In areas beyond this image, pixels are set to 0.</p></div>
    #[inline(always)]
    pub unsafe fn copy_4a(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_copy1(self as *const crate::QImage, x, y, w, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-area of the image as a new image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::copy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#copy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-area of the image as a new image.</p>
    /// <p>The returned image is copied from the position (<i>rectangle</i>.x(), <i>rectangle</i>.y()) in this image, and will always have the size of the given <i>rectangle</i>.</p>
    /// <p>In areas beyond this image, pixels are set to 0. For 32-bit RGB images, this means black; for 32-bit ARGB images, this means transparent black; for 8-bit images, this means the color with index 0 in the color table which can be anything; for 1-bit images, this means <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a>.</p>
    /// <p>If the given <i>rectangle</i> is a null rectangle the entire image is copied.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#QImage">QImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_0a(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_copy2(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns a shallow copy of the given <i>image</i> to this image and returns a reference to this image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage& QImage::operator=(const QImage& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns a shallow copy of the given <i>image</i> to this image and returns a reference to this image.</p>
    /// <p>For more information about shallow copies, see the <a href="http://doc.qt.io/qt-5/implicit-sharing.html">Implicit Data Sharing</a> documentation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#copy">copy</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#QImage">QImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> ::cpp_core::MutRef<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_operator_(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Builds and returns a 1-bpp mask from the alpha buffer in this image. Returns a null image if the image's format is <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB32</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::createAlphaMask(QFlags<Qt::ImageConversionFlag> flags = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#createAlphaMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Builds and returns a 1-bpp mask from the alpha buffer in this image. Returns a null image if the image's format is <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB32</a>.</p>
    /// <p>The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>, and controls the conversion process. Passing 0 for flags sets all the default options.</p>
    /// <p>The returned image has little-endian bit order (i.e. the image's format is <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_MonoLSB</a>), which you can convert to big-endian (<a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Mono</a>) using the <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>() function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#createHeuristicMask">createHeuristicMask</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn create_alpha_mask_1a(
        &self,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_createAlphaMask(
            self as *const crate::QImage,
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Builds and returns a 1-bpp mask from the alpha buffer in this image. Returns a null image if the image's format is <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB32</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::createAlphaMask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#createAlphaMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Builds and returns a 1-bpp mask from the alpha buffer in this image. Returns a null image if the image's format is <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB32</a>.</p>
    /// <p>The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>, and controls the conversion process. Passing 0 for flags sets all the default options.</p>
    /// <p>The returned image has little-endian bit order (i.e. the image's format is <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_MonoLSB</a>), which you can convert to big-endian (<a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Mono</a>) using the <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>() function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#createHeuristicMask">createHeuristicMask</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn create_alpha_mask_0a(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_createAlphaMask1(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a 1-bpp heuristic mask for this image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::createHeuristicMask(bool clipTight = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#createHeuristicMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a 1-bpp heuristic mask for this image.</p>
    /// <p>The function works by selecting a color from one of the corners, then chipping away pixels of that color starting at all the edges. The four corners vote for which color is to be masked away. In case of a draw (this generally means that this function is not applicable to the image), the result is arbitrary.</p>
    /// <p>The returned image has little-endian bit order (i.e. the image's format is <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_MonoLSB</a>), which you can convert to big-endian (<a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Mono</a>) using the <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>() function.</p>
    /// <p>If <i>clipTight</i> is true (the default) the mask is just large enough to cover the pixels; otherwise, the mask is larger than the data pixels.</p>
    /// <p>Note that this function disregards the alpha buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#createAlphaMask">createAlphaMask</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn create_heuristic_mask_1a(
        &self,
        clip_tight: bool,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_createHeuristicMask(
            self as *const crate::QImage,
            clip_tight,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a 1-bpp heuristic mask for this image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::createHeuristicMask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#createHeuristicMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a 1-bpp heuristic mask for this image.</p>
    /// <p>The function works by selecting a color from one of the corners, then chipping away pixels of that color starting at all the edges. The four corners vote for which color is to be masked away. In case of a draw (this generally means that this function is not applicable to the image), the result is arbitrary.</p>
    /// <p>The returned image has little-endian bit order (i.e. the image's format is <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_MonoLSB</a>), which you can convert to big-endian (<a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Mono</a>) using the <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>() function.</p>
    /// <p>If <i>clipTight</i> is true (the default) the mask is just large enough to cover the pixels; otherwise, the mask is larger than the data pixels.</p>
    /// <p>Note that this function disregards the alpha buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#createAlphaMask">createAlphaMask</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn create_heuristic_mask_0a(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_createHeuristicMask1(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a mask for this image based on the given <i>color</i> value. If the <i>mode</i> is MaskInColor (the default value), all pixels matching <i>color</i> will be opaque pixels in the mask. If <i>mode</i> is MaskOutColor, all pixels matching the given color will be transparent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::createMaskFromColor(unsigned int color, Qt::MaskMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#createMaskFromColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a mask for this image based on the given <i>color</i> value. If the <i>mode</i> is MaskInColor (the default value), all pixels matching <i>color</i> will be opaque pixels in the mask. If <i>mode</i> is MaskOutColor, all pixels matching the given color will be transparent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#createAlphaMask">createAlphaMask</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#createHeuristicMask">createHeuristicMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_mask_from_color_2a(
        &self,
        color: ::std::os::raw::c_uint,
        mode: ::qt_core::MaskMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_createMaskFromColor(
            self as *const crate::QImage,
            color,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a mask for this image based on the given <i>color</i> value. If the <i>mode</i> is MaskInColor (the default value), all pixels matching <i>color</i> will be opaque pixels in the mask. If <i>mode</i> is MaskOutColor, all pixels matching the given color will be transparent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::createMaskFromColor(unsigned int color) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#createMaskFromColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a mask for this image based on the given <i>color</i> value. If the <i>mode</i> is MaskInColor (the default value), all pixels matching <i>color</i> will be opaque pixels in the mask. If <i>mode</i> is MaskOutColor, all pixels matching the given color will be transparent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#createAlphaMask">createAlphaMask</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#createHeuristicMask">createHeuristicMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_mask_from_color_1a(
        &self,
        color: ::std::os::raw::c_uint,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_createMaskFromColor1(
            self as *const crate::QImage,
            color,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the depth of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::depth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#depth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the depth of the image.</p>
    /// <p>The image depth is the number of bits used to store a single pixel, also called bits per pixel (bpp).</p>
    /// <p>The supported depths are 1, 8, 16, 24 and 32.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#bitPlaneCount">bitPlaneCount</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>, and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn depth(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_depth(self as *const crate::QImage)
    }

    /// Calls C++ function: <span style='color: green;'>```void QImage::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_detach(self as *mut crate::QImage)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QImage::devType() const```</span>.
    #[inline(always)]
    pub unsafe fn dev_type(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_devType(self as *const crate::QImage)
    }

    /// <p>Returns the device pixel ratio for the image. This is the ratio between <i>device pixels</i> and <i>device independent pixels</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QImage::devicePixelRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#devicePixelRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device pixel ratio for the image. This is the ratio between <i>device pixels</i> and <i>device independent pixels</i>.</p>
    /// <p>Use this function when calculating layout geometry based on the image size: <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> layoutSize = image.<a href="http://doc.qt.io/qt-5/qimage.html#size">size</a>() / image.devicePixelRatio()</p>
    /// <p>The default value is 1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setDevicePixelRatio">setDevicePixelRatio</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p></div>
    #[inline(always)]
    pub unsafe fn device_pixel_ratio(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QImage_devicePixelRatio(self as *const crate::QImage)
    }

    /// <p>Returns the number of pixels that fit horizontally in a physical meter. Together with <a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterY">dotsPerMeterY</a>(), this number defines the intended scale and aspect ratio of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::dotsPerMeterX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of pixels that fit horizontally in a physical meter. Together with <a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterY">dotsPerMeterY</a>(), this number defines the intended scale and aspect ratio of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setDotsPerMeterX">setDotsPerMeterX</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn dots_per_meter_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_dotsPerMeterX(self as *const crate::QImage)
    }

    /// <p>Returns the number of pixels that fit vertically in a physical meter. Together with <a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterX">dotsPerMeterX</a>(), this number defines the intended scale and aspect ratio of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::dotsPerMeterY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of pixels that fit vertically in a physical meter. Together with <a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterX">dotsPerMeterX</a>(), this number defines the intended scale and aspect ratio of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setDotsPerMeterY">setDotsPerMeterY</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn dots_per_meter_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_dotsPerMeterY(self as *const crate::QImage)
    }

    /// <p>Fills the entire image with the given <i>pixelValue</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::fill(unsigned int pixel)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fills the entire image with the given <i>pixelValue</i>.</p>
    /// <p>If the depth of this image is 1, only the lowest bit is used. If you say fill(0), fill(2), etc., the image is filled with 0s. If you say fill(1), fill(3), etc., the image is filled with 1s. If the depth is 8, the lowest 8 bits are used and if the depth is 16 the lowest 16 bits are used.</p>
    /// <p>Note: <a href="http://doc.qt.io/qt-5/qimage.html#pixel">QImage::pixel</a>() returns the color of the pixel at the given coordinates while QColor::pixel() returns the pixel value of the underlying window system (essentially an index value), so normally you will want to use <a href="http://doc.qt.io/qt-5/qimage.html#pixel">QImage::pixel</a>() to use a color from an existing image or <a href="http://doc.qt.io/qt-5/qcolor.html#rgb">QColor::rgb</a>() to use a specific color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#depth">depth</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn fill_uint(&mut self, pixel: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_fill(self as *mut crate::QImage, pixel)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::fill(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#fill-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the entire image with the given <i>color</i>.</p>
    /// <p>If the depth of the image is 1, the image will be filled with 1 if <i>color</i> equals <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color1</a>; it will otherwise be filled with 0.</p>
    /// <p>If the depth of the image is 8, the image will be filled with the index corresponding the <i>color</i> in the color table if present; it will otherwise be filled with 0.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn fill_q_color(
        &mut self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_fill1(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::fill(Qt::GlobalColor color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#fill-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the image with the given <i>color</i>, described as a standard global color.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn fill_global_color(&mut self, color: ::qt_core::GlobalColor) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_fill2(self as *mut crate::QImage, color)
    }

    /// <p>Returns the format of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage::Format QImage::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> crate::q_image::Format {
        crate::__ffi::ctr_qt_gui_ffi_QImage_format(self as *const crate::QImage)
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from the first <i>size</i> bytes of the given binary <i>data</i>. The loader attempts to read the image using the specified <i>format</i>. If <i>format</i> is not specified (which is the default), the loader probes the data for a header to guess the file format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QImage QImage::fromData(const unsigned char* data, int size, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#fromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from the first <i>size</i> bytes of the given binary <i>data</i>. The loader attempts to read the image using the specified <i>format</i>. If <i>format</i> is not specified (which is the default), the loader probes the data for a header to guess the file format.</p>
    /// <p>If <i>format</i> is specified, it must be one of the values returned by <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>().</p>
    /// <p>If the loading of the image fails, the image returned will be a null image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#load">load</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#save">save</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_data_uchar_int_char(
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        size: ::std::os::raw::c_int,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_fromData(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_raw_ptr(),
            size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QImage QImage::fromData(const QByteArray& data, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#fromData-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Loads an image from the given <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a> <i>data</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_data_q_byte_array_char(
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_fromData1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from the first <i>size</i> bytes of the given binary <i>data</i>. The loader attempts to read the image using the specified <i>format</i>. If <i>format</i> is not specified (which is the default), the loader probes the data for a header to guess the file format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QImage QImage::fromData(const unsigned char* data, int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#fromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from the first <i>size</i> bytes of the given binary <i>data</i>. The loader attempts to read the image using the specified <i>format</i>. If <i>format</i> is not specified (which is the default), the loader probes the data for a header to guess the file format.</p>
    /// <p>If <i>format</i> is specified, it must be one of the values returned by <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>().</p>
    /// <p>If the loading of the image fails, the image returned will be a null image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#load">load</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#save">save</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_data_uchar_int(
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_fromData2(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_raw_ptr(),
            size,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QImage QImage::fromData(const QByteArray& data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#fromData-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Loads an image from the given <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a> <i>data</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_data_q_byte_array(
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_fromData3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the image has a format that respects the alpha channel, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::hasAlphaChannel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#hasAlphaChannel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the image has a format that respects the alpha channel, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn has_alpha_channel(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_hasAlphaChannel(self as *const crate::QImage)
    }

    /// <p>Returns the height of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_height(self as *const crate::QImage)
    }

    /// <p>Inverts all pixel values in the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::invertPixels(QImage::InvertMode arg1 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#invertPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inverts all pixel values in the image.</p>
    /// <p>The given invert <i>mode</i> only have a meaning when the image's depth is 32. The default <i>mode</i> is <a href="http://doc.qt.io/qt-5/qimage.html#InvertMode-enum">InvertRgb</a>, which leaves the alpha channel unchanged. If the <i>mode</i> is <a href="http://doc.qt.io/qt-5/qimage.html#InvertMode-enum">InvertRgba</a>, the alpha bits are also inverted.</p>
    /// <p>Inverting an 8-bit image means to replace all pixels using color index <i>i</i> with a pixel using color index 255 minus <i>i</i>. The same is the case for a 1-bit image. Note that the color table is <i>not</i> changed.</p>
    /// <p>If the image has a premultiplied alpha channel, the image is first converted to ARGB32 to be inverted and then converted back.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn invert_pixels_1a(&mut self, arg1: crate::q_image::InvertMode) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_invertPixels(self as *mut crate::QImage, arg1)
    }

    /// <p>Inverts all pixel values in the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::invertPixels()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#invertPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inverts all pixel values in the image.</p>
    /// <p>The given invert <i>mode</i> only have a meaning when the image's depth is 32. The default <i>mode</i> is <a href="http://doc.qt.io/qt-5/qimage.html#InvertMode-enum">InvertRgb</a>, which leaves the alpha channel unchanged. If the <i>mode</i> is <a href="http://doc.qt.io/qt-5/qimage.html#InvertMode-enum">InvertRgba</a>, the alpha bits are also inverted.</p>
    /// <p>Inverting an 8-bit image means to replace all pixels using color index <i>i</i> with a pixel using color index 255 minus <i>i</i>. The same is the case for a 1-bit image. Note that the color table is <i>not</i> changed.</p>
    /// <p>If the image has a premultiplied alpha channel, the image is first converted to ARGB32 to be inverted and then converted back.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn invert_pixels_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_invertPixels1(self as *mut crate::QImage)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QImage::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_isDetached(self as *const crate::QImage)
    }

    /// <p>For 32-bit images, this function is equivalent to <a href="http://doc.qt.io/qt-5/qimage.html#allGray">allGray</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::isGrayscale() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#isGrayscale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For 32-bit images, this function is equivalent to <a href="http://doc.qt.io/qt-5/qimage.html#allGray">allGray</a>().</p>
    /// <p>For color indexed images, this function returns <code>true</code> if color(i) is <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a>(i, i, i) for all indexes of the color table; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#allGray">allGray</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn is_grayscale(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_isGrayscale(self as *const crate::QImage)
    }

    /// <p>Returns <code>true</code> if it is a null image, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if it is a null image, otherwise returns <code>false</code>.</p>
    /// <p>A null image has all parameters set to zero and no allocated data.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_isNull(self as *const crate::QImage)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::load(QIODevice* device, const char* format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#load-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function reads a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from the given <i>device</i>. This can, for example, be used to load an image directly into a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_q_io_device_char(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_load(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads an image from the file with the given <i>fileName</i>. Returns <code>true</code> if the image was successfully loaded; otherwise invalidates the image and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::load(const QString& fileName, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#load">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads an image from the file with the given <i>fileName</i>. Returns <code>true</code> if the image was successfully loaded; otherwise invalidates the image and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the image using the specified <i>format</i>, e.g., PNG or JPG. If <i>format</i> is not specified (which is the default), it is auto-detected based on the file's suffix and header. For details, see {<a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoDetectImageFormat">QImageReader::setAutoDetectImageFormat</a>()}{<a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>}.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_q_string_char(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_load1(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads an image from the file with the given <i>fileName</i>. Returns <code>true</code> if the image was successfully loaded; otherwise invalidates the image and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::load(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#load">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads an image from the file with the given <i>fileName</i>. Returns <code>true</code> if the image was successfully loaded; otherwise invalidates the image and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the image using the specified <i>format</i>, e.g., PNG or JPG. If <i>format</i> is not specified (which is the default), it is auto-detected based on the file's suffix and header. For details, see {<a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoDetectImageFormat">QImageReader::setAutoDetectImageFormat</a>()}{<a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>}.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_q_string(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_load2(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads an image from the first <i>len</i> bytes of the given binary <i>data</i>. Returns <code>true</code> if the image was successfully loaded; otherwise invalidates the image and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::loadFromData(const unsigned char* buf, int len, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#loadFromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads an image from the first <i>len</i> bytes of the given binary <i>data</i>. Returns <code>true</code> if the image was successfully loaded; otherwise invalidates the image and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the image using the specified <i>format</i>, e.g., PNG or JPG. If <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_uchar_int_char(
        &mut self,
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        len: ::std::os::raw::c_int,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_loadFromData(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(buf)
                .as_raw_ptr(),
            len,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::loadFromData(const QByteArray& data, const char* aformat = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#loadFromData-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Loads an image from the given <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a> <i>data</i>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_q_byte_array_char(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        aformat: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_loadFromData1(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(aformat)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads an image from the first <i>len</i> bytes of the given binary <i>data</i>. Returns <code>true</code> if the image was successfully loaded; otherwise invalidates the image and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::loadFromData(const unsigned char* buf, int len)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#loadFromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads an image from the first <i>len</i> bytes of the given binary <i>data</i>. Returns <code>true</code> if the image was successfully loaded; otherwise invalidates the image and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the image using the specified <i>format</i>, e.g., PNG or JPG. If <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_uchar_int(
        &mut self,
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        len: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_loadFromData2(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(buf)
                .as_raw_ptr(),
            len,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::loadFromData(const QByteArray& data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#loadFromData-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Loads an image from the given <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a> <i>data</i>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_q_byte_array(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_loadFromData3(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a mirror of the image, mirrored in the horizontal and/or the vertical direction depending on whether <i>horizontal</i> and <i>vertical</i> are set to true or false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::mirrored(bool horizontally = …, bool vertically = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#mirrored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a mirror of the image, mirrored in the horizontal and/or the vertical direction depending on whether <i>horizontal</i> and <i>vertical</i> are set to true or false.</p>
    /// <p>Note that the original image is not changed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn mirrored_2a(
        &self,
        horizontally: bool,
        vertically: bool,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_mirrored(
            self as *const crate::QImage,
            horizontally,
            vertically,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a mirror of the image, mirrored in the horizontal and/or the vertical direction depending on whether <i>horizontal</i> and <i>vertical</i> are set to true or false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::mirrored(bool horizontally = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#mirrored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a mirror of the image, mirrored in the horizontal and/or the vertical direction depending on whether <i>horizontal</i> and <i>vertical</i> are set to true or false.</p>
    /// <p>Note that the original image is not changed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn mirrored_1a(&self, horizontally: bool) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_mirrored2(
            self as *const crate::QImage,
            horizontally,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a mirror of the image, mirrored in the horizontal and/or the vertical direction depending on whether <i>horizontal</i> and <i>vertical</i> are set to true or false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::mirrored() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#mirrored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a mirror of the image, mirrored in the horizontal and/or the vertical direction depending on whether <i>horizontal</i> and <i>vertical</i> are set to true or false.</p>
    /// <p>Note that the original image is not changed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn mirrored_0a(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_mirrored3(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a null image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a null image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#isNull">isNull</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>size</i> and <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const QSize& size, QImage::Format format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>size</i> and <i>format</i>.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qimage.html#isNull">null</a> image is returned if memory cannot be allocated.</p>
    /// <p><b>Warning:</b> This will create a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> with uninitialized data. Call <a href="http://doc.qt.io/qt-5/qimage.html#fill">fill</a>() to fill the image with an appropriate pixel value before drawing onto it with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_format(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        format: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(int width, int height, QImage::Format format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qimage.html#isNull">null</a> image will be returned if memory cannot be allocated.</p>
    /// <p><b>Warning:</b> This will create a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> with uninitialized data. Call <a href="http://doc.qt.io/qt-5/qimage.html#fill">fill</a>() to fill the image with an appropriate pixel value before drawing onto it with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int_format(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage2(width, height, format);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(unsigned char* data, int width, int height, QImage::Format format, void (*FN_PTR)(void*) cleanupFunction = …, void* cleanupInfo = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar2_int_format_option_fn_void(
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: crate::q_image::Format,
        cleanup_function: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void)>,
        cleanup_info: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage3(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_mut_raw_ptr(),
            width,
            height,
            format,
            cleanup_function,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(cleanup_info)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing read-only memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const unsigned char* data, int width, int height, QImage::Format format, void (*FN_PTR)(void*) cleanupFunction = …, void* cleanupInfo = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing read-only memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p>
    /// <p>Unlike the similar <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> constructor that takes a non-const data buffer, this version will never alter the contents of the buffer. For example, calling <a href="http://doc.qt.io/qt-5/qimage.html#bits">QImage::bits</a>() will return a deep copy of the image, rather than the buffer passed to the constructor. This allows for the efficiency of constructing a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from raw data, without the possibility of the raw data being changed.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar2_int_format_option_fn_void2(
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: crate::q_image::Format,
        cleanup_function: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void)>,
        cleanup_info: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage4(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_raw_ptr(),
            width,
            height,
            format,
            cleanup_function,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(cleanup_info)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(unsigned char* data, int width, int height, int bytesPerLine, QImage::Format format, void (*FN_PTR)(void*) cleanupFunction = …, void* cleanupInfo = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar3_int_format_option_fn_void(
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        bytes_per_line: ::std::os::raw::c_int,
        format: crate::q_image::Format,
        cleanup_function: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void)>,
        cleanup_info: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage5(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_mut_raw_ptr(),
            width,
            height,
            bytes_per_line,
            format,
            cleanup_function,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(cleanup_info)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const unsigned char* data, int width, int height, int bytesPerLine, QImage::Format format, void (*FN_PTR)(void*) cleanupFunction = …, void* cleanupInfo = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p>
    /// <p>Unlike the similar <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> constructor that takes a non-const data buffer, this version will never alter the contents of the buffer. For example, calling <a href="http://doc.qt.io/qt-5/qimage.html#bits">QImage::bits</a>() will return a deep copy of the image, rather than the buffer passed to the constructor. This allows for the efficiency of constructing a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from raw data, without the possibility of the raw data being changed.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar3_int_format_option_fn_void2(
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        bytes_per_line: ::std::os::raw::c_int,
        format: crate::q_image::Format,
        cleanup_function: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void)>,
        cleanup_info: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage6(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_raw_ptr(),
            width,
            height,
            bytes_per_line,
            format,
            cleanup_function,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(cleanup_info)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image and tries to load the image from the file with the given <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const QString& fileName, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image and tries to load the image from the file with the given <i>fileName</i>.</p>
    /// <p>The loader attempts to read the image using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), it is auto-detected based on the file's suffix and header. For details, see {<a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoDetectImageFormat">QImageReader::setAutoDetectImageFormat</a>()}{<a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>}.</p>
    /// <p>If the loading of the image failed, this object is a null image.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_char(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage7(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(unsigned char* data, int width, int height, QImage::Format format, void (*FN_PTR)(void*) cleanupFunction = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar2_int_format_option_fn(
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: crate::q_image::Format,
        cleanup_function: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void)>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage10(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_mut_raw_ptr(),
            width,
            height,
            format,
            cleanup_function,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(unsigned char* data, int width, int height, QImage::Format format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar2_int_format(
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage11(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_mut_raw_ptr(),
            width,
            height,
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing read-only memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const unsigned char* data, int width, int height, QImage::Format format, void (*FN_PTR)(void*) cleanupFunction = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing read-only memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p>
    /// <p>Unlike the similar <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> constructor that takes a non-const data buffer, this version will never alter the contents of the buffer. For example, calling <a href="http://doc.qt.io/qt-5/qimage.html#bits">QImage::bits</a>() will return a deep copy of the image, rather than the buffer passed to the constructor. This allows for the efficiency of constructing a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from raw data, without the possibility of the raw data being changed.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar2_int_format_option_fn2(
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: crate::q_image::Format,
        cleanup_function: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void)>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage12(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_raw_ptr(),
            width,
            height,
            format,
            cleanup_function,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing read-only memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const unsigned char* data, int width, int height, QImage::Format format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing read-only memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels, <i>data</i> must be 32-bit aligned, and each scanline of data in the image must also be 32-bit aligned.</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p>
    /// <p>Unlike the similar <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> constructor that takes a non-const data buffer, this version will never alter the contents of the buffer. For example, calling <a href="http://doc.qt.io/qt-5/qimage.html#bits">QImage::bits</a>() will return a deep copy of the image, rather than the buffer passed to the constructor. This allows for the efficiency of constructing a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from raw data, without the possibility of the raw data being changed.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar2_int_format2(
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage13(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_raw_ptr(),
            width,
            height,
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(unsigned char* data, int width, int height, int bytesPerLine, QImage::Format format, void (*FN_PTR)(void*) cleanupFunction = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar3_int_format_option_fn(
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        bytes_per_line: ::std::os::raw::c_int,
        format: crate::q_image::Format,
        cleanup_function: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void)>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage14(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_mut_raw_ptr(),
            width,
            height,
            bytes_per_line,
            format,
            cleanup_function,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(unsigned char* data, int width, int height, int bytesPerLine, QImage::Format format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar3_int_format(
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        bytes_per_line: ::std::os::raw::c_int,
        format: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage15(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_mut_raw_ptr(),
            width,
            height,
            bytes_per_line,
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const unsigned char* data, int width, int height, int bytesPerLine, QImage::Format format, void (*FN_PTR)(void*) cleanupFunction = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p>
    /// <p>Unlike the similar <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> constructor that takes a non-const data buffer, this version will never alter the contents of the buffer. For example, calling <a href="http://doc.qt.io/qt-5/qimage.html#bits">QImage::bits</a>() will return a deep copy of the image, rather than the buffer passed to the constructor. This allows for the efficiency of constructing a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from raw data, without the possibility of the raw data being changed.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar3_int_format_option_fn2(
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        bytes_per_line: ::std::os::raw::c_int,
        format: crate::q_image::Format,
        cleanup_function: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void)>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage16(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_raw_ptr(),
            width,
            height,
            bytes_per_line,
            format,
            cleanup_function,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const unsigned char* data, int width, int height, int bytesPerLine, QImage::Format format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image with the given <i>width</i>, <i>height</i> and <i>format</i>, that uses an existing memory buffer, <i>data</i>. The <i>width</i> and <i>height</i> must be specified in pixels. <i>bytesPerLine</i> specifies the number of bytes per line (stride).</p>
    /// <p>The buffer must remain valid throughout the life of the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and all copies that have not been modified or otherwise detached from the original buffer. The image does not delete the buffer at destruction. You can provide a function pointer <i>cleanupFunction</i> along with an extra pointer <i>cleanupInfo</i> that will be called when the last copy is destroyed.</p>
    /// <p>If <i>format</i> is an indexed color format, the image color table is initially empty and must be sufficiently expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>() before the image is used.</p>
    /// <p>Unlike the similar <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> constructor that takes a non-const data buffer, this version will never alter the contents of the buffer. For example, calling <a href="http://doc.qt.io/qt-5/qimage.html#bits">QImage::bits</a>() will return a deep copy of the image, rather than the buffer passed to the constructor. This allows for the efficiency of constructing a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> from raw data, without the possibility of the raw data being changed.</p></div>
    #[inline(always)]
    pub unsafe fn from_uchar3_int_format2(
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        bytes_per_line: ::std::os::raw::c_int,
        format: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage17(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_raw_ptr(),
            width,
            height,
            bytes_per_line,
            format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an image and tries to load the image from the file with the given <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an image and tries to load the image from the file with the given <i>fileName</i>.</p>
    /// <p>The loader attempts to read the image using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), it is auto-detected based on the file's suffix and header. For details, see {<a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoDetectImageFormat">QImageReader::setAutoDetectImageFormat</a>()}{<a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>}.</p>
    /// <p>If the loading of the image failed, this object is a null image.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage18(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a shallow copy of the given <i>image</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImage::QImage(const QImage& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#QImage-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a shallow copy of the given <i>image</i>.</p>
    /// <p>For more information about shallow copies, see the <a href="http://doc.qt.io/qt-5/implicit-sharing.html">Implicit Data Sharing</a> documentation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#copy">copy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_QImage8(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of pixels by which the image is intended to be offset by when positioning relative to other images.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QImage::offset() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#offset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of pixels by which the image is intended to be offset by when positioning relative to other images.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setOffset">setOffset</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn offset(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_offset(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual QPaintEngine* QImage::paintEngine() const```</span>.
    #[inline(always)]
    pub unsafe fn paint_engine(&self) -> ::cpp_core::MutPtr<crate::QPaintEngine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_paintEngine(self as *const crate::QImage);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QImage::pixel(int x, int y) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#pixel-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the color of the pixel at coordinates (<i>x</i>, <i>y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn pixel_2a(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QImage_pixel(self as *const crate::QImage, x, y)
    }

    /// <p>Returns the color of the pixel at the given <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QImage::pixel(const QPoint& pt) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#pixel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color of the pixel at the given <i>position</i>.</p>
    /// <p>If the <i>position</i> is not valid, the results are undefined.</p>
    /// <p><b>Warning:</b> This function is expensive when used for massive pixel manipulations. Use <a href="http://doc.qt.io/qt-5/qimage.html#constBits">constBits</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#constScanLine">constScanLine</a>() when many pixels needs to be read.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setPixel">setPixel</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#valid">valid</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#constBits">constBits</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#constScanLine">constScanLine</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn pixel_1a(
        &self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QImage_pixel1(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pt).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QImage::pixelColor(int x, int y) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#pixelColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the color of the pixel at coordinates (<i>x</i>, <i>y</i>) as a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn pixel_color_2a(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_pixelColor(self as *const crate::QImage, x, y);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the color of the pixel at the given <i>position</i> as a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QImage::pixelColor(const QPoint& pt) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#pixelColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color of the pixel at the given <i>position</i> as a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>.</p>
    /// <p>If the <i>position</i> is not valid, an invalid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> is returned.</p>
    /// <p><b>Warning:</b> This function is expensive when used for massive pixel manipulations. Use <a href="http://doc.qt.io/qt-5/qimage.html#constBits">constBits</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#constScanLine">constScanLine</a>() when many pixels needs to be read.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setPixelColor">setPixelColor</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#setPixel">setPixel</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#valid">valid</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#constBits">constBits</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#constScanLine">constScanLine</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn pixel_color_1a(
        &self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_pixelColor1(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pt).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format</a> as a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixelFormat QImage::pixelFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#pixelFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format</a> as a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a></p></div>
    #[inline(always)]
    pub unsafe fn pixel_format(&self) -> ::cpp_core::CppBox<crate::QPixelFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_pixelFormat(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::pixelIndex(int x, int y) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#pixelIndex-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the pixel index at (<i>x</i>, <i>y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn pixel_index_2a(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_pixelIndex(self as *const crate::QImage, x, y)
    }

    /// <p>Returns the pixel index at the given <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::pixelIndex(const QPoint& pt) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#pixelIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixel index at the given <i>position</i>.</p>
    /// <p>If <i>position</i> is not valid, or if the image is not a paletted image (<a href="http://doc.qt.io/qt-5/qimage.html#depth">depth</a>() &gt; 8), the results are undefined.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#valid">valid</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#depth">depth</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn pixel_index_1a(
        &self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_pixelIndex1(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pt).as_raw_ptr(),
        )
    }

    /// <p>Returns the enclosing rectangle (0, 0, <a href="http://doc.qt.io/qt-5/qimage.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#height">height</a>()) of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QImage::rect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the enclosing rectangle (0, 0, <a href="http://doc.qt.io/qt-5/qimage.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#height">height</a>()) of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_rect(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Changes the <i>format</i> of the image without changing the data. Only works between formats of the same depth.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::reinterpretAsFormat(QImage::Format f)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#reinterpretAsFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Changes the <i>format</i> of the image without changing the data. Only works between formats of the same depth.</p>
    /// <p>Returns <code>true</code> if successful.</p>
    /// <p>This function can be used to change images with alpha-channels to their corresponding opaque formats if the data is known to be opaque-only, or to change the format of a given image buffer before overwriting it with new data.</p>
    /// <p><b>Warning:</b> The function does not check if the image data is valid in the new format and will still return <code>true</code> if the depths are compatible. Operations on an image with invalid data are undefined.</p>
    /// <p><b>Warning:</b> If the image is not detached, this will cause the data to be copied.</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#hasAlphaChannel">hasAlphaChannel</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#convertToFormat">convertToFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reinterpret_as_format(&mut self, f: crate::q_image::Format) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_reinterpretAsFormat(self as *mut crate::QImage, f)
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> in which the values of the red and blue components of all pixels have been swapped, effectively converting an RGB image to an BGR image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::rgbSwapped() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#rgbSwapped">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> in which the values of the red and blue components of all pixels have been swapped, effectively converting an RGB image to an BGR image.</p>
    /// <p>The original <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> is not changed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn rgb_swapped(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_rgbSwapped(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Saves the image to the file with the given <i>fileName</i>, using the given image file <i>format</i> and <i>quality</i> factor. If <i>format</i> is 0, <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> will attempt to guess the format by looking at <i>fileName</i>'s suffix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::save(const QString& fileName, const char* format = …, int quality = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the image to the file with the given <i>fileName</i>, using the given image file <i>format</i> and <i>quality</i> factor. If <i>format</i> is 0, <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> will attempt to guess the format by looking at <i>fileName</i>'s suffix.</p>
    /// <p>The <i>quality</i> factor must be in the range 0 to 100 or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 (the default) to use the default settings.</p>
    /// <p>Returns <code>true</code> if the image was successfully saved; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn save_q_string_char_int(
        &self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        quality: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_save(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            quality,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::save(QIODevice* device, const char* format = …, int quality = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#save-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function writes a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> to the given <i>device</i>.</p>
    /// <p>This can, for example, be used to save an image directly into a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a>:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html#QImage">QImage</a></span> image;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a></span> ba;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbuffer.html">QBuffer</a></span> buffer(<span class="operator">&amp;</span>ba);
    /// &#32;   &#32;     buffer<span class="operator">.</span>open(<span class="type"><a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a></span><span class="operator">::</span>WriteOnly);
    /// &#32;   &#32;     image<span class="operator">.</span>save(<span class="operator">&amp;</span>buffer<span class="operator">,</span> <span class="string">"PNG"</span>); <span class="comment">// writes image into ba in PNG format</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn save_q_io_device_char_int(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        quality: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_save1(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            quality,
        )
    }

    /// <p>Saves the image to the file with the given <i>fileName</i>, using the given image file <i>format</i> and <i>quality</i> factor. If <i>format</i> is 0, <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> will attempt to guess the format by looking at <i>fileName</i>'s suffix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::save(const QString& fileName, const char* format = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the image to the file with the given <i>fileName</i>, using the given image file <i>format</i> and <i>quality</i> factor. If <i>format</i> is 0, <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> will attempt to guess the format by looking at <i>fileName</i>'s suffix.</p>
    /// <p>The <i>quality</i> factor must be in the range 0 to 100 or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 (the default) to use the default settings.</p>
    /// <p>Returns <code>true</code> if the image was successfully saved; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn save_q_string_char(
        &self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_save2(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Saves the image to the file with the given <i>fileName</i>, using the given image file <i>format</i> and <i>quality</i> factor. If <i>format</i> is 0, <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> will attempt to guess the format by looking at <i>fileName</i>'s suffix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::save(const QString& fileName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the image to the file with the given <i>fileName</i>, using the given image file <i>format</i> and <i>quality</i> factor. If <i>format</i> is 0, <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> will attempt to guess the format by looking at <i>fileName</i>'s suffix.</p>
    /// <p>The <i>quality</i> factor must be in the range 0 to 100 or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 (the default) to use the default settings.</p>
    /// <p>Returns <code>true</code> if the image was successfully saved; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn save_q_string(
        &self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_save3(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::save(QIODevice* device, const char* format = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#save-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function writes a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> to the given <i>device</i>.</p>
    /// <p>This can, for example, be used to save an image directly into a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a>:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html#QImage">QImage</a></span> image;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a></span> ba;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbuffer.html">QBuffer</a></span> buffer(<span class="operator">&amp;</span>ba);
    /// &#32;   &#32;     buffer<span class="operator">.</span>open(<span class="type"><a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a></span><span class="operator">::</span>WriteOnly);
    /// &#32;   &#32;     image<span class="operator">.</span>save(<span class="operator">&amp;</span>buffer<span class="operator">,</span> <span class="string">"PNG"</span>); <span class="comment">// writes image into ba in PNG format</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn save_q_io_device_char(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_save4(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::save(QIODevice* device) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#save-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function writes a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> to the given <i>device</i>.</p>
    /// <p>This can, for example, be used to save an image directly into a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a>:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html#QImage">QImage</a></span> image;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a></span> ba;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbuffer.html">QBuffer</a></span> buffer(<span class="operator">&amp;</span>ba);
    /// &#32;   &#32;     buffer<span class="operator">.</span>open(<span class="type"><a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a></span><span class="operator">::</span>WriteOnly);
    /// &#32;   &#32;     image<span class="operator">.</span>save(<span class="operator">&amp;</span>buffer<span class="operator">,</span> <span class="string">"PNG"</span>); <span class="comment">// writes image into ba in PNG format</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn save_q_io_device(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_save5(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaled(int w, int h, Qt::AspectRatioMode aspectMode = …, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaled-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the image scaled to a rectangle with the given <i>width</i> and <i>height</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p>If either the <i>width</i> or the <i>height</i> is zero or negative, this function returns a null image.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_2_int_aspect_ratio_mode_transformation_mode(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        aspect_mode: ::qt_core::AspectRatioMode,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_scaled(
            self as *const crate::QImage,
            w,
            h,
            aspect_mode,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image scaled to a rectangle defined by the given <i>size</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaled(const QSize& s, Qt::AspectRatioMode aspectMode = …, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image scaled to a rectangle defined by the given <i>size</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qimage-scaling.png" alt=""></p><ul>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::IgnoreAspectRatio</a>, the image is scaled to <i>size</i>.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatio</a>, the image is scaled to a rectangle as large as possible inside <i>size</i>, preserving the aspect ratio.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatioByExpanding</a>, the image is scaled to a rectangle as small as possible outside <i>size</i>, preserving the aspect ratio.</li>
    /// </ul>
    /// <p>If the given <i>size</i> is empty, this function returns a null image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_q_size_aspect_ratio_mode_transformation_mode(
        &self,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        aspect_mode: ::qt_core::AspectRatioMode,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_scaled1(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(s).as_raw_ptr(),
            aspect_mode,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaled(int w, int h, Qt::AspectRatioMode aspectMode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaled-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the image scaled to a rectangle with the given <i>width</i> and <i>height</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p>If either the <i>width</i> or the <i>height</i> is zero or negative, this function returns a null image.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_2_int_aspect_ratio_mode(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        aspect_mode: ::qt_core::AspectRatioMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_scaled2(
            self as *const crate::QImage,
            w,
            h,
            aspect_mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaled(int w, int h) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaled-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the image scaled to a rectangle with the given <i>width</i> and <i>height</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p>If either the <i>width</i> or the <i>height</i> is zero or negative, this function returns a null image.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_2_int(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_scaled3(self as *const crate::QImage, w, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image scaled to a rectangle defined by the given <i>size</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaled(const QSize& s, Qt::AspectRatioMode aspectMode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image scaled to a rectangle defined by the given <i>size</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qimage-scaling.png" alt=""></p><ul>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::IgnoreAspectRatio</a>, the image is scaled to <i>size</i>.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatio</a>, the image is scaled to a rectangle as large as possible inside <i>size</i>, preserving the aspect ratio.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatioByExpanding</a>, the image is scaled to a rectangle as small as possible outside <i>size</i>, preserving the aspect ratio.</li>
    /// </ul>
    /// <p>If the given <i>size</i> is empty, this function returns a null image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_q_size_aspect_ratio_mode(
        &self,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        aspect_mode: ::qt_core::AspectRatioMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_scaled4(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(s).as_raw_ptr(),
            aspect_mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image scaled to a rectangle defined by the given <i>size</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaled(const QSize& s) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image scaled to a rectangle defined by the given <i>size</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qimage-scaling.png" alt=""></p><ul>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::IgnoreAspectRatio</a>, the image is scaled to <i>size</i>.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatio</a>, the image is scaled to a rectangle as large as possible inside <i>size</i>, preserving the aspect ratio.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatioByExpanding</a>, the image is scaled to a rectangle as small as possible outside <i>size</i>, preserving the aspect ratio.</li>
    /// </ul>
    /// <p>If the given <i>size</i> is empty, this function returns a null image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_q_size(
        &self,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_scaled5(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(s).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a scaled copy of the image. The returned image is scaled to the given <i>height</i> using the specified transformation <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaledToHeight(int h, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaledToHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a scaled copy of the image. The returned image is scaled to the given <i>height</i> using the specified transformation <i>mode</i>.</p>
    /// <p>This function automatically calculates the width of the image so that the ratio of the image is preserved.</p>
    /// <p>If the given <i>height</i> is 0 or negative, a null image is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_to_height_2a(
        &self,
        h: ::std::os::raw::c_int,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_scaledToHeight(
            self as *const crate::QImage,
            h,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a scaled copy of the image. The returned image is scaled to the given <i>height</i> using the specified transformation <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaledToHeight(int h) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaledToHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a scaled copy of the image. The returned image is scaled to the given <i>height</i> using the specified transformation <i>mode</i>.</p>
    /// <p>This function automatically calculates the width of the image so that the ratio of the image is preserved.</p>
    /// <p>If the given <i>height</i> is 0 or negative, a null image is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_to_height_1a(
        &self,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_scaledToHeight1(self as *const crate::QImage, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a scaled copy of the image. The returned image is scaled to the given <i>width</i> using the specified transformation <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaledToWidth(int w, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaledToWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a scaled copy of the image. The returned image is scaled to the given <i>width</i> using the specified transformation <i>mode</i>.</p>
    /// <p>This function automatically calculates the height of the image so that its aspect ratio is preserved.</p>
    /// <p>If the given <i>width</i> is 0 or negative, a null image is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_to_width_2a(
        &self,
        w: ::std::os::raw::c_int,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_scaledToWidth(
            self as *const crate::QImage,
            w,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a scaled copy of the image. The returned image is scaled to the given <i>width</i> using the specified transformation <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::scaledToWidth(int w) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scaledToWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a scaled copy of the image. The returned image is scaled to the given <i>width</i> using the specified transformation <i>mode</i>.</p>
    /// <p>This function automatically calculates the height of the image so that its aspect ratio is preserved.</p>
    /// <p>If the given <i>width</i> is 0 or negative, a null image is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_to_width_1a(
        &self,
        w: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_scaledToWidth1(self as *const crate::QImage, w);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pointer to the pixel data at the scanline with index <i>i</i>. The first scanline is at index 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char* QImage::scanLine(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scanLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the pixel data at the scanline with index <i>i</i>. The first scanline is at index 0.</p>
    /// <p>The scanline data is aligned on a 32-bit boundary.</p>
    /// <p><b>Warning:</b> If you are accessing 32-bpp image data, cast the returned pointer to <code>QRgb*</code> (<a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> has a 32-bit size) and use it to read/write the pixel value. You cannot use the <code>uchar*</code> pointer directly, because the pixel format depends on the byte order on the underlying platform. Use <a href="http://doc.qt.io/qt-5/qcolor.html#qRed">qRed</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen">qGreen</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue">qBlue</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#qAlpha">qAlpha</a>() to access the pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#bytesPerLine">bytesPerLine</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#bits">bits</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>, and <a href="http://doc.qt.io/qt-5/qimage.html#constScanLine">constScanLine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scan_line_mut(
        &mut self,
        arg1: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<::std::os::raw::c_uchar> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_scanLine(self as *mut crate::QImage, arg1);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to the pixel data at the scanline with index <i>i</i>. The first scanline is at index 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const unsigned char* QImage::scanLine(int arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#scanLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the pixel data at the scanline with index <i>i</i>. The first scanline is at index 0.</p>
    /// <p>The scanline data is aligned on a 32-bit boundary.</p>
    /// <p><b>Warning:</b> If you are accessing 32-bpp image data, cast the returned pointer to <code>QRgb*</code> (<a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> has a 32-bit size) and use it to read/write the pixel value. You cannot use the <code>uchar*</code> pointer directly, because the pixel format depends on the byte order on the underlying platform. Use <a href="http://doc.qt.io/qt-5/qcolor.html#qRed">qRed</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen">qGreen</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue">qBlue</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#qAlpha">qAlpha</a>() to access the pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#bytesPerLine">bytesPerLine</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#bits">bits</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>, and <a href="http://doc.qt.io/qt-5/qimage.html#constScanLine">constScanLine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scan_line(
        &self,
        arg1: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ptr<::std::os::raw::c_uchar> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_scanLine1(self as *const crate::QImage, arg1);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Sets the alpha channel of this image to the given <i>alphaChannel</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setAlphaChannel(const QImage& alphaChannel)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage-obsolete.html#setAlphaChannel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the alpha channel of this image to the given <i>alphaChannel</i>.</p>
    /// <p>If <i>alphaChannel</i> is an 8 bit grayscale image, the intensity values are written into this buffer directly. Otherwise, <i>alphaChannel</i> is converted to 32 bit and the intensity of the RGB pixel values is used.</p>
    /// <p>Note that the image will be converted to the <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">Format_ARGB32_Premultiplied</a> format if the function succeeds.</p>
    /// <p>Use one of the composition modes in <a href="http://doc.qt.io/qt-5/qpainter.html#CompositionMode-enum">QPainter::CompositionMode</a> instead.</p>
    /// <p><b>Warning:</b> This function is expensive.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage-obsolete.html#alphaChannel">alphaChannel</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>, and <a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_alpha_channel(
        &mut self,
        alpha_channel: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setAlphaChannel(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(alpha_channel)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the color at the given <i>index</i> in the color table, to the given to <i>colorValue</i>. The color value is an ARGB quadruplet.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setColor(int i, unsigned int c)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color at the given <i>index</i> in the color table, to the given to <i>colorValue</i>. The color value is an ARGB quadruplet.</p>
    /// <p>If <i>index</i> is outside the current size of the color table, it is expanded with <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">setColorCount</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#color">color</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#colorCount">colorCount</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">setColorTable</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_color(&mut self, i: ::std::os::raw::c_int, c: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setColor(self as *mut crate::QImage, i, c)
    }

    /// <p>Resizes the color table to contain <i>colorCount</i> entries.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setColorCount(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setColorCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resizes the color table to contain <i>colorCount</i> entries.</p>
    /// <p>If the color table is expanded, all the extra colors will be set to transparent (i.e <a href="http://doc.qt.io/qt-5/qcolor.html#qRgba">qRgba</a>(0, 0, 0, 0)).</p>
    /// <p>When the image is used, the color table must be large enough to have entries for all the pixel/index values present in the image, otherwise the results are undefined.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#colorCount">colorCount</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#colorTable">colorTable</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#setColor">setColor</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_color_count(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setColorCount(self as *mut crate::QImage, arg1)
    }

    /// <p>Sets the color table used to translate color indexes to <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> values, to the specified <i>colors</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setColorTable(QVector<unsigned int> colors)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setColorTable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color table used to translate color indexes to <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> values, to the specified <i>colors</i>.</p>
    /// <p>When the image is used, the color table must be large enough to have entries for all the pixel/index values present in the image, otherwise the results are undefined.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#colorTable">colorTable</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#setColor">setColor</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_color_table(
        &mut self,
        colors: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfUint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setColorTable(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfUint>>::cast_into(colors)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the device pixel ratio for the image. This is the ratio between image pixels and device-independent pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setDevicePixelRatio(double scaleFactor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setDevicePixelRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the device pixel ratio for the image. This is the ratio between image pixels and device-independent pixels.</p>
    /// <p>The default <i>scaleFactor</i> is 1.0. Setting it to something else has two effects:</p>
    /// <p>QPainters that are opened on the image will be scaled. For example, painting on a 200x200 image if with a ratio of 2.0 will result in effective (device-independent) painting bounds of 100x100.</p>
    /// <p>Code paths in Qt that calculate layout geometry based on the image size will take the ratio into account: <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> layoutSize = image.<a href="http://doc.qt.io/qt-5/qimage.html#size">size</a>() / image.<a href="http://doc.qt.io/qt-5/qimage.html#devicePixelRatio">devicePixelRatio</a>() The net effect of this is that the image is displayed as high-DPI image rather than a large image (see <a href="http://doc.qt.io/qt-5/qpainter.html#drawing-high-resolution-versions-of-pixmaps-and-images">Drawing High Resolution Versions of Pixmaps and Images</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#devicePixelRatio">devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_device_pixel_ratio(&mut self, scale_factor: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setDevicePixelRatio(
            self as *mut crate::QImage,
            scale_factor,
        )
    }

    /// <p>Sets the number of pixels that fit horizontally in a physical meter, to <i>x</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setDotsPerMeterX(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setDotsPerMeterX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of pixels that fit horizontally in a physical meter, to <i>x</i>.</p>
    /// <p>Together with <a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterY">dotsPerMeterY</a>(), this number defines the intended scale and aspect ratio of the image, and determines the scale at which <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> will draw graphics on the image. It does not change the scale or aspect ratio of the image when it is rendered on other paint devices.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterX">dotsPerMeterX</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_dots_per_meter_x(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setDotsPerMeterX(self as *mut crate::QImage, arg1)
    }

    /// <p>Sets the number of pixels that fit vertically in a physical meter, to <i>y</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setDotsPerMeterY(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setDotsPerMeterY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of pixels that fit vertically in a physical meter, to <i>y</i>.</p>
    /// <p>Together with <a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterX">dotsPerMeterX</a>(), this number defines the intended scale and aspect ratio of the image, and determines the scale at which <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> will draw graphics on the image. It does not change the scale or aspect ratio of the image when it is rendered on other paint devices.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#dotsPerMeterY">dotsPerMeterY</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_dots_per_meter_y(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setDotsPerMeterY(self as *mut crate::QImage, arg1)
    }

    /// <p>Sets the number of pixels by which the image is intended to be offset by when positioning relative to other images, to <i>offset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setOffset(const QPoint& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of pixels by which the image is intended to be offset by when positioning relative to other images, to <i>offset</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#offset">offset</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_offset(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setOffset(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setPixel(int x, int y, unsigned int index_or_rgb)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setPixel-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the pixel index or color at (<i>x</i>, <i>y</i>) to <i>index_or_rgb</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_pixel_3a(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        index_or_rgb: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setPixel(self as *mut crate::QImage, x, y, index_or_rgb)
    }

    /// <p>Sets the pixel index or color at the given <i>position</i> to <i>index_or_rgb</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setPixel(const QPoint& pt, unsigned int index_or_rgb)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setPixel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pixel index or color at the given <i>position</i> to <i>index_or_rgb</i>.</p>
    /// <p>If the image's format is either monochrome or paletted, the given <i>index_or_rgb</i> value must be an index in the image's color table, otherwise the parameter must be a <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value.</p>
    /// <p>If <i>position</i> is not a valid coordinate pair in the image, or if <i>index_or_rgb</i> &gt;= <a href="http://doc.qt.io/qt-5/qimage.html#colorCount">colorCount</a>() in the case of monochrome and paletted images, the result is undefined.</p>
    /// <p><b>Warning:</b> This function is expensive due to the call of the internal <code>detach()</code> function called within; if performance is a concern, we recommend the use of <a href="http://doc.qt.io/qt-5/qimage.html#scanLine">scanLine</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#bits">bits</a>() to access pixel data directly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#pixel">pixel</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_pixel_2a(
        &mut self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        index_or_rgb: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setPixel1(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pt).as_raw_ptr(),
            index_or_rgb,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setPixelColor(int x, int y, const QColor& c)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setPixelColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the pixel color at (<i>x</i>, <i>y</i>) to <i>color</i>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn set_pixel_color_3a(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        c: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setPixelColor(
            self as *mut crate::QImage,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(c).as_raw_ptr(),
        )
    }

    /// <p>Sets the color at the given <i>position</i> to <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setPixelColor(const QPoint& pt, const QColor& c)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#setPixelColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color at the given <i>position</i> to <i>color</i>.</p>
    /// <p>If <i>position</i> is not a valid coordinate pair in the image, or the image's format is either monochrome or paletted, the result is undefined.</p>
    /// <p><b>Warning:</b> This function is expensive due to the call of the internal <code>detach()</code> function called within; if performance is a concern, we recommend the use of <a href="http://doc.qt.io/qt-5/qimage.html#scanLine">scanLine</a>() or <a href="http://doc.qt.io/qt-5/qimage.html#bits">bits</a>() to access pixel data directly.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#pixelColor">pixelColor</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#pixel">pixel</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#bits">bits</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#scanLine">scanLine</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#pixel-manipulation">Pixel Manipulation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_pixel_color_2a(
        &mut self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setPixelColor1(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pt).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(c).as_raw_ptr(),
        )
    }

    /// <p>Sets the image text to the given <i>text</i> and associate it with the given <i>key</i>. The text is recorded in the specified <i>language</i>, or in a default language if <i>language</i> is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::setText(const QString& key, const QString& value)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qimage-obsolete.html#setText-1">C++ documentation</a> for <span style='color: green;'>```void QImage::setText(const char *key, const char *language, const QString &text)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the image text to the given <i>text</i> and associate it with the given <i>key</i>. The text is recorded in the specified <i>language</i>, or in a default language if <i>language</i> is 0.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qimage.html#setText">setText</a>() instead.</p>
    /// <p>The language the text is recorded in is no longer relevant since the text is always set using <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and UTF-8 representation.</p></div>
    #[inline(always)]
    pub unsafe fn set_text(
        &mut self,
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_setText(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the size of the image, i.e. its <a href="http://doc.qt.io/qt-5/qimage.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#height">height</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QImage::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the image, i.e. its <a href="http://doc.qt.io/qt-5/qimage.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#height">height</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_size(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the image data size in bytes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```long long QImage::sizeInBytes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#sizeInBytes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the image data size in bytes.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage-obsolete.html#byteCount">byteCount</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#bytesPerLine">bytesPerLine</a>(), <a href="http://doc.qt.io/qt-5/qimage.html#bits">bits</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn size_in_bytes(&self) -> ::std::os::raw::c_longlong {
        crate::__ffi::ctr_qt_gui_ffi_QImage_sizeInBytes(self as *const crate::QImage)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Swaps image <i>other</i> with this image. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImage::swap(QImage& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps image <i>other</i> with this image. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_swap(
            self as *mut crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QImage>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the text recorded for the given <i>key</i> in the given <i>language</i>, or in a default language if <i>language</i> is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QImage::text(const QString& key = …) const```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qimage-obsolete.html#text-1">C++ documentation</a> for <span style='color: green;'>```QString QImage::text(const char *key, const char *language = Q_NULLPTR) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text recorded for the given <i>key</i> in the given <i>language</i>, or in a default language if <i>language</i> is 0.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qimage.html#text">text</a>() instead.</p>
    /// <p>The language the text is recorded in is no longer relevant since the text is always set using <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and UTF-8 representation.</p></div>
    #[inline(always)]
    pub unsafe fn text_1a(
        &self,
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_text(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text recorded for the given <i>key</i> in the given <i>language</i>, or in a default language if <i>language</i> is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QImage::text() const```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qimage-obsolete.html#text-1">C++ documentation</a> for <span style='color: green;'>```QString QImage::text(const char *key, const char *language = Q_NULLPTR) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text recorded for the given <i>key</i> in the given <i>language</i>, or in a default language if <i>language</i> is 0.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qimage.html#text">text</a>() instead.</p>
    /// <p>The language the text is recorded in is no longer relevant since the text is always set using <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and UTF-8 representation.</p></div>
    #[inline(always)]
    pub unsafe fn text_0a(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_text1(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text keys for this image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QImage::textKeys() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#textKeys">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text keys for this image.</p>
    /// <p>You can use these keys with <a href="http://doc.qt.io/qt-5/qimage.html#text">text</a>() to list the image text for a certain key.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#text">text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_keys(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_textKeys(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Converts <i>format</i> into a <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QImage::Format QImage::toImageFormat(QPixelFormat format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#toImageFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts <i>format</i> into a <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format</a></p></div>
    #[inline(always)]
    pub unsafe fn to_image_format(
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixelFormat>>,
    ) -> crate::q_image::Format {
        crate::__ffi::ctr_qt_gui_ffi_QImage_toImageFormat(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixelFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Converts <i>format</i> into a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixelFormat QImage::toPixelFormat(QImage::Format format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#toPixelFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts <i>format</i> into a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a></p></div>
    #[inline(always)]
    pub unsafe fn to_pixel_format(
        format: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QPixelFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_toPixelFormat(format);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the image as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QImage::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the image as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImage_operator_QVariant(self as *const crate::QImage);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image that is transformed using the given transformation <i>matrix</i> and transformation <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::transformed(const QMatrix& matrix, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#transformed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image that is transformed using the given transformation <i>matrix</i> and transformation <i>mode</i>.</p>
    /// <p>The transformation <i>matrix</i> is internally adjusted to compensate for unwanted translation; i.e. the image produced is the smallest image that contains all the transformed points of the original image. Use the <a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">trueMatrix</a>() function to retrieve the actual matrix used for transforming an image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">trueMatrix</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_matrix_transformation_mode(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_transformed(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image that is transformed using the given transformation <i>matrix</i> and transformation <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::transformed(const QTransform& matrix, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#transformed-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image that is transformed using the given transformation <i>matrix</i> and transformation <i>mode</i>.</p>
    /// <p>The transformation <i>matrix</i> is internally adjusted to compensate for unwanted translation; i.e. the image produced is the smallest image that contains all the transformed points of the original image. Use the <a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">trueMatrix</a>() function to retrieve the actual matrix used for transforming an image.</p>
    /// <p>Unlike the other overload, this function can be used to perform perspective transformations on images.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">trueMatrix</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_transform_transformation_mode(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_transformed1(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image that is transformed using the given transformation <i>matrix</i> and transformation <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::transformed(const QMatrix& matrix) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#transformed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image that is transformed using the given transformation <i>matrix</i> and transformation <i>mode</i>.</p>
    /// <p>The transformation <i>matrix</i> is internally adjusted to compensate for unwanted translation; i.e. the image produced is the smallest image that contains all the transformed points of the original image. Use the <a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">trueMatrix</a>() function to retrieve the actual matrix used for transforming an image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">trueMatrix</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_matrix(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_transformed2(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the image that is transformed using the given transformation <i>matrix</i> and transformation <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImage::transformed(const QTransform& matrix) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#transformed-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the image that is transformed using the given transformation <i>matrix</i> and transformation <i>mode</i>.</p>
    /// <p>The transformation <i>matrix</i> is internally adjusted to compensate for unwanted translation; i.e. the image produced is the smallest image that contains all the transformed points of the original image. Use the <a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">trueMatrix</a>() function to retrieve the actual matrix used for transforming an image.</p>
    /// <p>Unlike the other overload, this function can be used to perform perspective transformations on images.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">trueMatrix</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_transform(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_transformed3(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the actual matrix used for transforming an image with the given <i>width</i>, <i>height</i> and <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QMatrix QImage::trueMatrix(const QMatrix& arg1, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual matrix used for transforming an image with the given <i>width</i>, <i>height</i> and <i>matrix</i>.</p>
    /// <p>When transforming an image using the <a href="http://doc.qt.io/qt-5/qimage.html#transformed">transformed</a>() function, the transformation matrix is internally adjusted to compensate for unwanted translation, i.e. <a href="http://doc.qt.io/qt-5/qimage.html#transformed">transformed</a>() returns the smallest image containing all transformed points of the original image. This function returns the modified matrix, which maps points correctly from the original image into the new image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#transformed">transformed</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn true_matrix_q_matrix2_int(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_trueMatrix(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(arg1).as_raw_ptr(),
            w,
            h,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the actual matrix used for transforming an image with the given <i>width</i>, <i>height</i> and <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QTransform QImage::trueMatrix(const QTransform& arg1, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#trueMatrix-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual matrix used for transforming an image with the given <i>width</i>, <i>height</i> and <i>matrix</i>.</p>
    /// <p>When transforming an image using the <a href="http://doc.qt.io/qt-5/qimage.html#transformed">transformed</a>() function, the transformation matrix is internally adjusted to compensate for unwanted translation, i.e. <a href="http://doc.qt.io/qt-5/qimage.html#transformed">transformed</a>() returns the smallest image containing all transformed points of the original image. This function returns the modified matrix, which maps points correctly from the original image into the new image.</p>
    /// <p>Unlike the other overload, this function creates transformation matrices that can be used to perform perspective transformations on images.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#transformed">transformed</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-transformations">Image Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn true_matrix_q_transform2_int(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_trueMatrix1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(arg1)
                .as_raw_ptr(),
            w,
            h,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::valid(int x, int y) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#valid-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>(<i>x</i>, <i>y</i>) is a valid coordinate pair within the image; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn valid_2a(&self, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_valid(self as *const crate::QImage, x, y)
    }

    /// <p>Returns <code>true</code> if <i>pos</i> is a valid coordinate pair within the image; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::valid(const QPoint& pt) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#valid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>pos</i> is a valid coordinate pair within the image; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#rect">rect</a>() and <a href="http://doc.qt.io/qt-5/qrect.html#contains">QRect::contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn valid_1a(
        &self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImage_valid1(
            self as *const crate::QImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pt).as_raw_ptr(),
        )
    }

    /// <p>Returns the width of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImage::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImage_width(self as *const crate::QImage)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> class is an off-screen image representation that can be used as a paint device.</p>
///
/// C++ class: <span style='color: green;'>```QPixmap```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixmap.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> class is an off-screen image representation that can be used as a paint device.</p>
/// <p>Qt provides four classes for handling image data: <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>, <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> and <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a>. <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> is designed and optimized for I/O, and for direct pixel access and manipulation, while <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> is designed and optimized for showing images on screen. <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> is only a convenience class that inherits <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>, ensuring a depth of 1. The <a href="http://doc.qt.io/qt-5/qpixmap.html#isQBitmap">isQBitmap</a>() function returns <code>true</code> if a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> object is really a bitmap, otherwise returns <code>false</code>. Finally, the <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> class is a paint device that records and replays <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> commands.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> can easily be displayed on the screen using <a href="http://doc.qt.io/qt-5/qlabel.html">QLabel</a> or one of <a href="http://doc.qt.io/qt-5/qabstractbutton.html">QAbstractButton</a>'s subclasses (such as <a href="http://doc.qt.io/qt-5/qpushbutton.html">QPushButton</a> and <a href="http://doc.qt.io/qt-5/qtoolbutton.html">QToolButton</a>). <a href="http://doc.qt.io/qt-5/qlabel.html">QLabel</a> has a pixmap property, whereas <a href="http://doc.qt.io/qt-5/qabstractbutton.html">QAbstractButton</a> has an icon property.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> objects can be passed around by value since the <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> class uses implicit data sharing. For more information, see the <a href="http://doc.qt.io/qt-5/implicit-sharing.html">Implicit Data Sharing</a> documentation. <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> objects can also be streamed.</p>
/// <p>Note that the pixel data in a pixmap is internal and is managed by the underlying window system. Because <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> is a <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> subclass, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> can be used to draw directly onto pixmaps. Pixels can only be accessed through <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> functions or by converting the <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. However, the <a href="http://doc.qt.io/qt-5/qpixmap.html#fill">fill</a>() function is available for initializing the entire pixmap with a given color.</p>
/// <p>There are functions to convert between <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>. Typically, the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> class is used to load an image file, optionally manipulating the image data, before the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> object is converted into a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to be shown on screen. Alternatively, if no manipulation is desired, the image file can be loaded directly into a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> provides a collection of functions that can be used to obtain a variety of information about the pixmap. In addition, there are several functions that enables transformation of the pixmap.</p>
/// <a name="reading-and-writing-image-files"></a></div>
#[repr(C)]
pub struct QPixmap {
    _unused: u8,
}
impl QPixmap {
    /// <p>Returns a number that identifies this <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>. Distinct <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> objects can only have the same cache key if they refer to the same contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```qint64 QPixmap::cacheKey() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#cacheKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a number that identifies this <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>. Distinct <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> objects can only have the same cache key if they refer to the same contents.</p>
    /// <p>The cacheKey() will change when the pixmap is altered.</p></div>
    #[inline(always)]
    pub unsafe fn cache_key(&self) -> i64 {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_cacheKey(self as *const crate::QPixmap)
    }

    /// <p>Replaces this pixmap's data with the given <i>image</i> using the specified <i>flags</i> to control the conversion. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options. Returns <code>true</code> if the result is that this pixmap is not null.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::convertFromImage(const QImage& img, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#convertFromImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces this pixmap's data with the given <i>image</i> using the specified <i>flags</i> to control the conversion. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options. Returns <code>true</code> if the result is that this pixmap is not null.</p>
    /// <p>Note: this function was part of Qt 3 support in Qt 4.6 and earlier. It has been promoted to official API status in 4.7 to support updating the pixmap's image without creating a new <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> as <a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">fromImage</a>() would.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">fromImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn convert_from_image_2a(
        &mut self,
        img: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_convertFromImage(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(img).as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>Replaces this pixmap's data with the given <i>image</i> using the specified <i>flags</i> to control the conversion. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options. Returns <code>true</code> if the result is that this pixmap is not null.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::convertFromImage(const QImage& img)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#convertFromImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces this pixmap's data with the given <i>image</i> using the specified <i>flags</i> to control the conversion. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options. Returns <code>true</code> if the result is that this pixmap is not null.</p>
    /// <p>Note: this function was part of Qt 3 support in Qt 4.6 and earlier. It has been promoted to official API status in 4.7 to support updating the pixmap's image without creating a new <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> as <a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">fromImage</a>() would.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">fromImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn convert_from_image_1a(
        &mut self,
        img: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_convertFromImage1(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(img).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::copy(int x, int y, int width, int height) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#copy-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a deep copy of the subset of the pixmap that is specified by the rectangle <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>( <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p></div>
    #[inline(always)]
    pub unsafe fn copy_4a(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_copy(
            self as *const crate::QPixmap,
            x,
            y,
            width,
            height,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a deep copy of the subset of the pixmap that is specified by the given <i>rectangle</i>. For more information on deep copies, see the <a href="http://doc.qt.io/qt-5/implicit-sharing.html">Implicit Data Sharing</a> documentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::copy(const QRect& rect = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#copy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a deep copy of the subset of the pixmap that is specified by the given <i>rectangle</i>. For more information on deep copies, see the <a href="http://doc.qt.io/qt-5/implicit-sharing.html">Implicit Data Sharing</a> documentation.</p>
    /// <p>If the given <i>rectangle</i> is empty, the whole image is copied.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#operator-eq">operator=</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_1a(
        &self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_copy1(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a deep copy of the subset of the pixmap that is specified by the given <i>rectangle</i>. For more information on deep copies, see the <a href="http://doc.qt.io/qt-5/implicit-sharing.html">Implicit Data Sharing</a> documentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::copy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#copy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a deep copy of the subset of the pixmap that is specified by the given <i>rectangle</i>. For more information on deep copies, see the <a href="http://doc.qt.io/qt-5/implicit-sharing.html">Implicit Data Sharing</a> documentation.</p>
    /// <p>If the given <i>rectangle</i> is empty, the whole image is copied.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#operator-eq">operator=</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_0a(&self) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_copy2(self as *const crate::QPixmap);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns the given <i>pixmap</i> to this pixmap and returns a reference to this pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap& QPixmap::operator=(const QPixmap& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the given <i>pixmap</i> to this pixmap and returns a reference to this pixmap.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#copy">copy</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::MutRef<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_operator_(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates and returns a heuristic mask for this pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap QPixmap::createHeuristicMask(bool clipTight = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#createHeuristicMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a heuristic mask for this pixmap.</p>
    /// <p>The function works by selecting a color from one of the corners and then chipping away pixels of that color, starting at all the edges. If <i>clipTight</i> is true (the default) the mask is just large enough to cover the pixels; otherwise, the mask is larger than the data pixels.</p>
    /// <p>The mask may not be perfect but it should be reasonable, so you can do things such as the following:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a></span> myPixmap;
    ///   myPixmap<span class="operator">.</span>setMask(myPixmap<span class="operator">.</span>createHeuristicMask());
    ///
    /// </pre>
    /// <p>This function is slow because it involves converting to/from a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>, and non-trivial computations.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#createHeuristicMask">QImage::createHeuristicMask</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#createMaskFromColor">createMaskFromColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_heuristic_mask_1a(
        &self,
        clip_tight: bool,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_createHeuristicMask(
            self as *const crate::QPixmap,
            clip_tight,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a heuristic mask for this pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap QPixmap::createHeuristicMask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#createHeuristicMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a heuristic mask for this pixmap.</p>
    /// <p>The function works by selecting a color from one of the corners and then chipping away pixels of that color, starting at all the edges. If <i>clipTight</i> is true (the default) the mask is just large enough to cover the pixels; otherwise, the mask is larger than the data pixels.</p>
    /// <p>The mask may not be perfect but it should be reasonable, so you can do things such as the following:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a></span> myPixmap;
    ///   myPixmap<span class="operator">.</span>setMask(myPixmap<span class="operator">.</span>createHeuristicMask());
    ///
    /// </pre>
    /// <p>This function is slow because it involves converting to/from a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>, and non-trivial computations.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#createHeuristicMask">QImage::createHeuristicMask</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#createMaskFromColor">createMaskFromColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_heuristic_mask_0a(&self) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_createHeuristicMask1(
            self as *const crate::QPixmap,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a mask for this pixmap based on the given <i>maskColor</i>. If the <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#MaskMode-enum">Qt::MaskInColor</a>, all pixels matching the maskColor will be transparent. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#MaskMode-enum">Qt::MaskOutColor</a>, all pixels matching the maskColor will be opaque.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap QPixmap::createMaskFromColor(const QColor& maskColor, Qt::MaskMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#createMaskFromColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a mask for this pixmap based on the given <i>maskColor</i>. If the <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#MaskMode-enum">Qt::MaskInColor</a>, all pixels matching the maskColor will be transparent. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#MaskMode-enum">Qt::MaskOutColor</a>, all pixels matching the maskColor will be opaque.</p>
    /// <p>This function is slow because it involves converting to/from a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#createHeuristicMask">createHeuristicMask</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#createMaskFromColor">QImage::createMaskFromColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_mask_from_color_2a(
        &self,
        mask_color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        mode: ::qt_core::MaskMode,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_createMaskFromColor(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(mask_color)
                .as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a mask for this pixmap based on the given <i>maskColor</i>. If the <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#MaskMode-enum">Qt::MaskInColor</a>, all pixels matching the maskColor will be transparent. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#MaskMode-enum">Qt::MaskOutColor</a>, all pixels matching the maskColor will be opaque.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap QPixmap::createMaskFromColor(const QColor& maskColor) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#createMaskFromColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a mask for this pixmap based on the given <i>maskColor</i>. If the <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#MaskMode-enum">Qt::MaskInColor</a>, all pixels matching the maskColor will be transparent. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#MaskMode-enum">Qt::MaskOutColor</a>, all pixels matching the maskColor will be opaque.</p>
    /// <p>This function is slow because it involves converting to/from a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#createHeuristicMask">createHeuristicMask</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#createMaskFromColor">QImage::createMaskFromColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_mask_from_color_1a(
        &self,
        mask_color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_createMaskFromColor1(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(mask_color)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the default pixmap depth used by the application.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static int QPixmap::defaultDepth()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#defaultDepth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the default pixmap depth used by the application.</p>
    /// <p>On all platforms the depth of the primary screen will be returned.</p>
    /// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> must be created before calling this function.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#depth">depth</a>(), <a href="http://doc.qt.io/qt-5/qcolormap.html#depth">QColormap::depth</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn default_depth() -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_defaultDepth()
    }

    /// <p>Returns the depth of the pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPixmap::depth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#depth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the depth of the pixmap.</p>
    /// <p>The pixmap depth is also called bits per pixel (bpp) or bit planes of a pixmap. A null pixmap has depth 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#defaultDepth">defaultDepth</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn depth(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_depth(self as *const crate::QPixmap)
    }

    /// <p>Detaches the pixmap from shared pixmap data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::detach()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#detach">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Detaches the pixmap from shared pixmap data.</p>
    /// <p>A pixmap is automatically detached by Qt whenever its contents are about to change. This is done in almost all <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> member functions that modify the pixmap (<a href="http://doc.qt.io/qt-5/qpixmap.html#fill">fill</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">fromImage</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#load">load</a>(), etc.), and in <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() on a pixmap.</p>
    /// <p>There are two exceptions in which detach() must be called explicitly, that is when calling the handle() or the x11PictureHandle() function (only available on X11). Otherwise, any modifications done using system calls, will be performed on the shared data.</p>
    /// <p>The detach() function returns immediately if there is just a single reference or if the pixmap has not been initialized yet.</p></div>
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_detach(self as *mut crate::QPixmap)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QPixmap::devType() const```</span>.
    #[inline(always)]
    pub unsafe fn dev_type(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_devType(self as *const crate::QPixmap)
    }

    /// <p>Returns the device pixel ratio for the pixmap. This is the ratio between <i>device pixels</i> and <i>device independent pixels</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPixmap::devicePixelRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device pixel ratio for the pixmap. This is the ratio between <i>device pixels</i> and <i>device independent pixels</i>.</p>
    /// <p>Use this function when calculating layout geometry based on the pixmap size: <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> layoutSize = image.<a href="http://doc.qt.io/qt-5/qpixmap.html#size">size</a>() / image.devicePixelRatio()</p>
    /// <p>The default value is 1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#setDevicePixelRatio">setDevicePixelRatio</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p></div>
    #[inline(always)]
    pub unsafe fn device_pixel_ratio(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_devicePixelRatio(self as *const crate::QPixmap)
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> or the fill(<a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) overload instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::fill(const QColor& fillColor = …)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#fill-1">C++ documentation</a> for <span style='color: green;'>```void QPixmap::fill(const QPaintDevice *device, const QPoint &p)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> or the fill(<a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) overload instead.</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        fill_color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_fill(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(fill_color)
                .as_raw_ptr(),
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> or the fill(<a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) overload instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::fill(const QPaintDevice* device, const QPoint& ofs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#fill-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> or the fill(<a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) overload instead.</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
        ofs: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_fill1(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(device)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(ofs).as_raw_ptr(),
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> or the fill(<a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) overload instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::fill(const QPaintDevice* device, int xofs, int yofs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#fill-1">C++ documentation</a> for <span style='color: green;'>```void QPixmap::fill(const QPaintDevice *device, const QPoint &p)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> or the fill(<a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) overload instead.</p></div>
    #[inline(always)]
    pub unsafe fn fill_3a(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
        xofs: ::std::os::raw::c_int,
        yofs: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_fill2(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(device)
                .as_raw_ptr(),
            xofs,
            yofs,
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> or the fill(<a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) overload instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::fill()```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#fill-1">C++ documentation</a> for <span style='color: green;'>```void QPixmap::fill(const QPaintDevice *device, const QPoint &p)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> or the fill(<a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) overload instead.</p></div>
    #[inline(always)]
    pub unsafe fn fill_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_fill3(self as *mut crate::QPixmap)
    }

    /// <p>Converts the given <i>image</i> to a pixmap using the specified <i>flags</i> to control the conversion. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::fromImage(const QImage& image, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the given <i>image</i> to a pixmap using the specified <i>flags</i> to control the conversion. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options.</p>
    /// <p>In case of monochrome and 8-bit images, the image is first converted to a 32-bit pixmap and then filled with the colors in the color table. If this is too expensive an operation, you can use <a href="http://doc.qt.io/qt-5/qbitmap.html#fromImage">QBitmap::fromImage</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#fromImageReader">fromImageReader</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#toImage">toImage</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-conversion">Pixmap Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_image_2a(
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_fromImage(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Converts the given <i>image</i> to a pixmap using the specified <i>flags</i> to control the conversion. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::fromImage(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the given <i>image</i> to a pixmap using the specified <i>flags</i> to control the conversion. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options.</p>
    /// <p>In case of monochrome and 8-bit images, the image is first converted to a 32-bit pixmap and then filled with the colors in the color table. If this is too expensive an operation, you can use <a href="http://doc.qt.io/qt-5/qbitmap.html#fromImage">QBitmap::fromImage</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#fromImageReader">fromImageReader</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#toImage">toImage</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-conversion">Pixmap Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_image_1a(
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_fromImage2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Create a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> from an image read directly from an <i>imageReader</i>. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::fromImageReader(QImageReader* imageReader, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#fromImageReader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Create a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> from an image read directly from an <i>imageReader</i>. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options.</p>
    /// <p>On some systems, reading an image directly to <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> can use less memory than reading a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> to convert it to <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">fromImage</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#toImage">toImage</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-conversion">Pixmap Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_image_reader_2a(
        image_reader: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QImageReader>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_fromImageReader(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QImageReader>>::cast_into(
                image_reader,
            )
            .as_mut_raw_ptr(),
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Create a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> from an image read directly from an <i>imageReader</i>. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::fromImageReader(QImageReader* imageReader)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#fromImageReader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Create a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> from an image read directly from an <i>imageReader</i>. The <i>flags</i> argument is a bitwise-OR of the <a href="http://doc.qt.io/qt-5/qt.html#ImageConversionFlag-enum">Qt::ImageConversionFlags</a>. Passing 0 for <i>flags</i> sets all the default options.</p>
    /// <p>On some systems, reading an image directly to <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> can use less memory than reading a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> to convert it to <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">fromImage</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#toImage">toImage</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-conversion">Pixmap Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_image_reader_1a(
        image_reader: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QImageReader>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_fromImageReader1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QImageReader>>::cast_into(
                image_reader,
            )
            .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWidget(QObject* widget, const QRect& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn grab_widget_q_object_q_rect(
        widget: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWidget(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(widget)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWidget(QObject* widget, int x = …, int y = …, int w = …, int h = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn grab_widget_q_object4_int(
        widget: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWidget1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(widget)
                .as_mut_raw_ptr(),
            x,
            y,
            w,
            h,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWidget(QObject* widget, int x = …, int y = …, int w = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn grab_widget_q_object3_int(
        widget: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWidget2(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(widget)
                .as_mut_raw_ptr(),
            x,
            y,
            w,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWidget(QObject* widget, int x = …, int y = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn grab_widget_q_object2_int(
        widget: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWidget3(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(widget)
                .as_mut_raw_ptr(),
            x,
            y,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWidget(QObject* widget, int x = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn grab_widget_q_object_int(
        widget: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        x: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWidget4(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(widget)
                .as_mut_raw_ptr(),
            x,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWidget(QObject* widget)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qwidget.html#grab">QWidget::grab</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn grab_widget_q_object(
        widget: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWidget5(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(widget)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWindow(unsigned long long arg1, int x = …, int y = …, int w = …, int h = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p>
    /// <p><b>Warning:</b> The function is deprecated in Qt 5.0 since there might be platform plugins in which window system identifiers (<code>WId</code>) are local to a screen. Use <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">QScreen::grabWindow</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget">grabWidget</a>(), <a href="http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html">Screenshot Example</a>, and <a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a>.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_5a(
        arg1: ::std::os::raw::c_ulonglong,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWindow(arg1, x, y, w, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWindow(unsigned long long arg1, int x = …, int y = …, int w = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p>
    /// <p><b>Warning:</b> The function is deprecated in Qt 5.0 since there might be platform plugins in which window system identifiers (<code>WId</code>) are local to a screen. Use <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">QScreen::grabWindow</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget">grabWidget</a>(), <a href="http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html">Screenshot Example</a>, and <a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a>.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_4a(
        arg1: ::std::os::raw::c_ulonglong,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWindow1(arg1, x, y, w);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWindow(unsigned long long arg1, int x = …, int y = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p>
    /// <p><b>Warning:</b> The function is deprecated in Qt 5.0 since there might be platform plugins in which window system identifiers (<code>WId</code>) are local to a screen. Use <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">QScreen::grabWindow</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget">grabWidget</a>(), <a href="http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html">Screenshot Example</a>, and <a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a>.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_3a(
        arg1: ::std::os::raw::c_ulonglong,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWindow2(arg1, x, y);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWindow(unsigned long long arg1, int x = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p>
    /// <p><b>Warning:</b> The function is deprecated in Qt 5.0 since there might be platform plugins in which window system identifiers (<code>WId</code>) are local to a screen. Use <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">QScreen::grabWindow</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget">grabWidget</a>(), <a href="http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html">Screenshot Example</a>, and <a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a>.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_2a(
        arg1: ::std::os::raw::c_ulonglong,
        x: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWindow3(arg1, x);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap QPixmap::grabWindow(unsigned long long arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p>
    /// <p><b>Warning:</b> The function is deprecated in Qt 5.0 since there might be platform plugins in which window system identifiers (<code>WId</code>) are local to a screen. Use <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">QScreen::grabWindow</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap-obsolete.html#grabWidget">grabWidget</a>(), <a href="http://doc.qt.io/qt-5/qtwidgets-desktop-screenshot-example.html">Screenshot Example</a>, and <a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a>.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_1a(
        arg1: ::std::os::raw::c_ulonglong,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_grabWindow4(arg1);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this pixmap has an alpha channel, <i>or</i> has a mask, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::hasAlpha() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#hasAlpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this pixmap has an alpha channel, <i>or</i> has a mask, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#hasAlphaChannel">hasAlphaChannel</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#mask">mask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_alpha(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_hasAlpha(self as *const crate::QPixmap)
    }

    /// <p>Returns <code>true</code> if the pixmap has a format that respects the alpha channel, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::hasAlphaChannel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#hasAlphaChannel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the pixmap has a format that respects the alpha channel, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#hasAlpha">hasAlpha</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_alpha_channel(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_hasAlphaChannel(self as *const crate::QPixmap)
    }

    /// <p>Returns the height of the pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPixmap::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the pixmap.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_height(self as *const crate::QPixmap)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_isDetached(self as *const crate::QPixmap)
    }

    /// <p>Returns <code>true</code> if this is a null pixmap; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this is a null pixmap; otherwise returns <code>false</code>.</p>
    /// <p>A null pixmap has zero width, zero height and no contents. You cannot draw in a null pixmap.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_isNull(self as *const crate::QPixmap)
    }

    /// <p>Returns <code>true</code> if this is a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::isQBitmap() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#isQBitmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this is a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_q_bitmap(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_isQBitmap(self as *const crate::QPixmap)
    }

    /// <p>Loads a pixmap from the file with the given <i>fileName</i>. Returns true if the pixmap was successfully loaded; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::load(const QString& fileName, const char* format = …, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#load">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads a pixmap from the file with the given <i>fileName</i>. Returns true if the pixmap was successfully loaded; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed pixmaps and other resource files in the application's executable.</p>
    /// <p>If the data needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p>Note that QPixmaps are automatically added to the <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> when loaded from a file; the key used is internal and can not be acquired.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData">loadFromData</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_3a(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_load(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>Loads a pixmap from the file with the given <i>fileName</i>. Returns true if the pixmap was successfully loaded; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::load(const QString& fileName, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#load">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads a pixmap from the file with the given <i>fileName</i>. Returns true if the pixmap was successfully loaded; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed pixmaps and other resource files in the application's executable.</p>
    /// <p>If the data needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p>Note that QPixmaps are automatically added to the <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> when loaded from a file; the key used is internal and can not be acquired.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData">loadFromData</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_2a(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_load1(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads a pixmap from the file with the given <i>fileName</i>. Returns true if the pixmap was successfully loaded; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::load(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#load">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads a pixmap from the file with the given <i>fileName</i>. Returns true if the pixmap was successfully loaded; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed pixmaps and other resource files in the application's executable.</p>
    /// <p>If the data needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p>Note that QPixmaps are automatically added to the <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> when loaded from a file; the key used is internal and can not be acquired.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData">loadFromData</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_1a(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_load2(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads a pixmap from the <i>len</i> first bytes of the given binary <i>data</i>. Returns <code>true</code> if the pixmap was loaded successfully; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::loadFromData(const unsigned char* buf, unsigned int len, const char* format = …, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads a pixmap from the <i>len</i> first bytes of the given binary <i>data</i>. Returns <code>true</code> if the pixmap was loaded successfully; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>If the data needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#load">load</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_uchar_uint_char_q_flags_image_conversion_flag(
        &mut self,
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        len: ::std::os::raw::c_uint,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_loadFromData(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(buf)
                .as_raw_ptr(),
            len,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::loadFromData(const QByteArray& data, const char* format = …, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Loads a pixmap from the binary <i>data</i> using the specified <i>format</i> and conversion <i>flags</i>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_q_byte_array_char_q_flags_image_conversion_flag(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_loadFromData1(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>Loads a pixmap from the <i>len</i> first bytes of the given binary <i>data</i>. Returns <code>true</code> if the pixmap was loaded successfully; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::loadFromData(const unsigned char* buf, unsigned int len, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads a pixmap from the <i>len</i> first bytes of the given binary <i>data</i>. Returns <code>true</code> if the pixmap was loaded successfully; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>If the data needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#load">load</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_uchar_uint_char(
        &mut self,
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        len: ::std::os::raw::c_uint,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_loadFromData2(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(buf)
                .as_raw_ptr(),
            len,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads a pixmap from the <i>len</i> first bytes of the given binary <i>data</i>. Returns <code>true</code> if the pixmap was loaded successfully; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::loadFromData(const unsigned char* buf, unsigned int len)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads a pixmap from the <i>len</i> first bytes of the given binary <i>data</i>. Returns <code>true</code> if the pixmap was loaded successfully; otherwise invalidates the pixmap and returns <code>false</code>.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>If the data needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#load">load</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_uchar_uint(
        &mut self,
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        len: ::std::os::raw::c_uint,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_loadFromData3(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(buf)
                .as_raw_ptr(),
            len,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::loadFromData(const QByteArray& data, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Loads a pixmap from the binary <i>data</i> using the specified <i>format</i> and conversion <i>flags</i>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_q_byte_array_char(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_loadFromData4(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::loadFromData(const QByteArray& data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#loadFromData-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Loads a pixmap from the binary <i>data</i> using the specified <i>format</i> and conversion <i>flags</i>.</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data_q_byte_array(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_loadFromData5(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>Extracts a bitmap mask from the pixmap's alpha channel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap QPixmap::mask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#mask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Extracts a bitmap mask from the pixmap's alpha channel.</p>
    /// <p><b>Warning:</b> This is potentially an expensive operation. The mask of the pixmap is extracted dynamically from the pixeldata.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">setMask</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn mask(&self) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_mask(self as *const crate::QPixmap);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a null pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmap::QPixmap()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a null pixmap.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_QPixmap();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pixmap with the given <i>width</i> and <i>height</i>. If either <i>width</i> or <i>height</i> is zero, a null pixmap is constructed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmap::QPixmap(int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pixmap with the given <i>width</i> and <i>height</i>. If either <i>width</i> or <i>height</i> is zero, a null pixmap is constructed.</p>
    /// <p><b>Warning:</b> This will create a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> with uninitialized data. Call <a href="http://doc.qt.io/qt-5/qpixmap.html#fill">fill</a>() to fill the pixmap with an appropriate color before drawing onto it with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int(
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_QPixmap2(w, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmap::QPixmap(const QSize& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs a pixmap of the given <i>size</i>.</p>
    /// <p><b>Warning:</b> This will create a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> with uninitialized data. Call <a href="http://doc.qt.io/qt-5/qpixmap.html#fill">fill</a>() to fill the pixmap with an appropriate color before drawing onto it with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_QPixmap3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pixmap from the file with the given <i>fileName</i>. If the file does not exist or is of an unknown format, the pixmap becomes a null pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmap::QPixmap(const QString& fileName, const char* format = …, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pixmap from the file with the given <i>fileName</i>. If the file does not exist or is of an unknown format, the pixmap becomes a null pixmap.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p>If the image needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p>The <i>fileName</i>, <i>format</i> and <i>flags</i> parameters are passed on to <a href="http://doc.qt.io/qt-5/qpixmap.html#load">load</a>(). This means that the data in <i>fileName</i> is not compiled into the binary. If <i>fileName</i> contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_char_q_flags_image_conversion_flag(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_QPixmap4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pixmap from the file with the given <i>fileName</i>. If the file does not exist or is of an unknown format, the pixmap becomes a null pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmap::QPixmap(const QString& fileName, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pixmap from the file with the given <i>fileName</i>. If the file does not exist or is of an unknown format, the pixmap becomes a null pixmap.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p>If the image needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p>The <i>fileName</i>, <i>format</i> and <i>flags</i> parameters are passed on to <a href="http://doc.qt.io/qt-5/qpixmap.html#load">load</a>(). This means that the data in <i>fileName</i> is not compiled into the binary. If <i>fileName</i> contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_char(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_QPixmap6(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pixmap from the file with the given <i>fileName</i>. If the file does not exist or is of an unknown format, the pixmap becomes a null pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmap::QPixmap(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pixmap from the file with the given <i>fileName</i>. If the file does not exist or is of an unknown format, the pixmap becomes a null pixmap.</p>
    /// <p>The loader attempts to read the pixmap using the specified <i>format</i>. If the <i>format</i> is not specified (which is the default), the loader probes the file for a header to guess the file format.</p>
    /// <p>The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p>If the image needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to control the conversion.</p>
    /// <p>The <i>fileName</i>, <i>format</i> and <i>flags</i> parameters are passed on to <a href="http://doc.qt.io/qt-5/qpixmap.html#load">load</a>(). This means that the data in <i>fileName</i> is not compiled into the binary. If <i>fileName</i> contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_QPixmap7(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pixmap that is a copy of the given <i>pixmap</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmap::QPixmap(const QPixmap& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pixmap that is a copy of the given <i>pixmap</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#copy">copy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_QPixmap5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual QPaintEngine* QPixmap::paintEngine() const```</span>.
    #[inline(always)]
    pub unsafe fn paint_engine(&self) -> ::cpp_core::MutPtr<crate::QPaintEngine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPixmap_paintEngine(self as *const crate::QPixmap);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the pixmap's enclosing rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPixmap::rect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixmap's enclosing rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_rect(self as *const crate::QPixmap);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Saves the pixmap to the file with the given <i>fileName</i> using the specified image file <i>format</i> and <i>quality</i> factor. Returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::save(const QString& fileName, const char* format = …, int quality = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the pixmap to the file with the given <i>fileName</i> using the specified image file <i>format</i> and <i>quality</i> factor. Returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    /// <p>The <i>quality</i> factor must be in the range [0,100] or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 to use the default settings.</p>
    /// <p>If <i>format</i> is 0, an image format will be chosen from <i>fileName</i>'s suffix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn save_q_string_char_int(
        &self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        quality: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_save(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            quality,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::save(QIODevice* device, const char* format = …, int quality = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#save-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function writes a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to the given <i>device</i> using the specified image file <i>format</i> and <i>quality</i> factor. This can be used, for example, to save a pixmap directly into a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a>:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a></span> pixmap;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a></span> bytes;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbuffer.html">QBuffer</a></span> buffer(<span class="operator">&amp;</span>bytes);
    /// &#32;   &#32;     buffer<span class="operator">.</span>open(<span class="type"><a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a></span><span class="operator">::</span>WriteOnly);
    /// &#32;   &#32;     pixmap<span class="operator">.</span>save(<span class="operator">&amp;</span>buffer<span class="operator">,</span> <span class="string">"PNG"</span>); <span class="comment">// writes pixmap into bytes in PNG format</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn save_q_io_device_char_int(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        quality: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_save1(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            quality,
        )
    }

    /// <p>Saves the pixmap to the file with the given <i>fileName</i> using the specified image file <i>format</i> and <i>quality</i> factor. Returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::save(const QString& fileName, const char* format = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the pixmap to the file with the given <i>fileName</i> using the specified image file <i>format</i> and <i>quality</i> factor. Returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    /// <p>The <i>quality</i> factor must be in the range [0,100] or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 to use the default settings.</p>
    /// <p>If <i>format</i> is 0, an image format will be chosen from <i>fileName</i>'s suffix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn save_q_string_char(
        &self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_save2(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Saves the pixmap to the file with the given <i>fileName</i> using the specified image file <i>format</i> and <i>quality</i> factor. Returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::save(const QString& fileName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the pixmap to the file with the given <i>fileName</i> using the specified image file <i>format</i> and <i>quality</i> factor. Returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    /// <p>The <i>quality</i> factor must be in the range [0,100] or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 to use the default settings.</p>
    /// <p>If <i>format</i> is 0, an image format will be chosen from <i>fileName</i>'s suffix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#reading-and-writing-image-files">Reading and Writing Image Files</a>.</p></div>
    #[inline(always)]
    pub unsafe fn save_q_string(
        &self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_save3(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::save(QIODevice* device, const char* format = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#save-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function writes a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to the given <i>device</i> using the specified image file <i>format</i> and <i>quality</i> factor. This can be used, for example, to save a pixmap directly into a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a>:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a></span> pixmap;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a></span> bytes;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbuffer.html">QBuffer</a></span> buffer(<span class="operator">&amp;</span>bytes);
    /// &#32;   &#32;     buffer<span class="operator">.</span>open(<span class="type"><a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a></span><span class="operator">::</span>WriteOnly);
    /// &#32;   &#32;     pixmap<span class="operator">.</span>save(<span class="operator">&amp;</span>buffer<span class="operator">,</span> <span class="string">"PNG"</span>); <span class="comment">// writes pixmap into bytes in PNG format</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn save_q_io_device_char(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_save4(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::save(QIODevice* device) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#save-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function writes a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to the given <i>device</i> using the specified image file <i>format</i> and <i>quality</i> factor. This can be used, for example, to save a pixmap directly into a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a>:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a></span> pixmap;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a></span> bytes;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbuffer.html">QBuffer</a></span> buffer(<span class="operator">&amp;</span>bytes);
    /// &#32;   &#32;     buffer<span class="operator">.</span>open(<span class="type"><a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a></span><span class="operator">::</span>WriteOnly);
    /// &#32;   &#32;     pixmap<span class="operator">.</span>save(<span class="operator">&amp;</span>buffer<span class="operator">,</span> <span class="string">"PNG"</span>); <span class="comment">// writes pixmap into bytes in PNG format</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn save_q_io_device(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_save5(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaled(int w, int h, Qt::AspectRatioMode aspectMode = …, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaled-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the pixmap scaled to a rectangle with the given <i>width</i> and <i>height</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p>If either the <i>width</i> or the <i>height</i> is zero or negative, this function returns a null pixmap.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_2_int_aspect_ratio_mode_transformation_mode(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        aspect_mode: ::qt_core::AspectRatioMode,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaled(
            self as *const crate::QPixmap,
            w,
            h,
            aspect_mode,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Scales the pixmap to the given <i>size</i>, using the aspect ratio and transformation modes specified by <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaled(const QSize& s, Qt::AspectRatioMode aspectMode = …, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scales the pixmap to the given <i>size</i>, using the aspect ratio and transformation modes specified by <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qimage-scaling.png" alt=""></p><ul>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::IgnoreAspectRatio</a>, the pixmap is scaled to <i>size</i>.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatio</a>, the pixmap is scaled to a rectangle as large as possible inside <i>size</i>, preserving the aspect ratio.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatioByExpanding</a>, the pixmap is scaled to a rectangle as small as possible outside <i>size</i>, preserving the aspect ratio.</li>
    /// </ul>
    /// <p>If the given <i>size</i> is empty, this function returns a null pixmap.</p>
    /// <p>In some cases it can be more beneficial to draw the pixmap to a painter with a scale set rather than scaling the pixmap. This is the case when the painter is for instance based on OpenGL or when the scale factor changes rapidly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_q_size_aspect_ratio_mode_transformation_mode(
        &self,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        aspect_mode: ::qt_core::AspectRatioMode,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaled1(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(s).as_raw_ptr(),
            aspect_mode,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaled(int w, int h, Qt::AspectRatioMode aspectMode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaled-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the pixmap scaled to a rectangle with the given <i>width</i> and <i>height</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p>If either the <i>width</i> or the <i>height</i> is zero or negative, this function returns a null pixmap.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_2_int_aspect_ratio_mode(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        aspect_mode: ::qt_core::AspectRatioMode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaled2(
            self as *const crate::QPixmap,
            w,
            h,
            aspect_mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaled(int w, int h) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaled-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a copy of the pixmap scaled to a rectangle with the given <i>width</i> and <i>height</i> according to the given <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p>If either the <i>width</i> or the <i>height</i> is zero or negative, this function returns a null pixmap.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_2_int(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaled3(self as *const crate::QPixmap, w, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Scales the pixmap to the given <i>size</i>, using the aspect ratio and transformation modes specified by <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaled(const QSize& s, Qt::AspectRatioMode aspectMode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scales the pixmap to the given <i>size</i>, using the aspect ratio and transformation modes specified by <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qimage-scaling.png" alt=""></p><ul>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::IgnoreAspectRatio</a>, the pixmap is scaled to <i>size</i>.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatio</a>, the pixmap is scaled to a rectangle as large as possible inside <i>size</i>, preserving the aspect ratio.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatioByExpanding</a>, the pixmap is scaled to a rectangle as small as possible outside <i>size</i>, preserving the aspect ratio.</li>
    /// </ul>
    /// <p>If the given <i>size</i> is empty, this function returns a null pixmap.</p>
    /// <p>In some cases it can be more beneficial to draw the pixmap to a painter with a scale set rather than scaling the pixmap. This is the case when the painter is for instance based on OpenGL or when the scale factor changes rapidly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_q_size_aspect_ratio_mode(
        &self,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        aspect_mode: ::qt_core::AspectRatioMode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaled4(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(s).as_raw_ptr(),
            aspect_mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Scales the pixmap to the given <i>size</i>, using the aspect ratio and transformation modes specified by <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaled(const QSize& s) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scales the pixmap to the given <i>size</i>, using the aspect ratio and transformation modes specified by <i>aspectRatioMode</i> and <i>transformMode</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qimage-scaling.png" alt=""></p><ul>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::IgnoreAspectRatio</a>, the pixmap is scaled to <i>size</i>.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatio</a>, the pixmap is scaled to a rectangle as large as possible inside <i>size</i>, preserving the aspect ratio.</li>
    /// <li>If <i>aspectRatioMode</i> is <a href="http://doc.qt.io/qt-5/qt.html#AspectRatioMode-enum">Qt::KeepAspectRatioByExpanding</a>, the pixmap is scaled to a rectangle as small as possible outside <i>size</i>, preserving the aspect ratio.</li>
    /// </ul>
    /// <p>If the given <i>size</i> is empty, this function returns a null pixmap.</p>
    /// <p>In some cases it can be more beneficial to draw the pixmap to a painter with a scale set rather than scaling the pixmap. This is the case when the painter is for instance based on OpenGL or when the scale factor changes rapidly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_q_size(
        &self,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaled5(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(s).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a scaled copy of the image. The returned image is scaled to the given <i>height</i> using the specified transformation <i>mode</i>. The width of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaledToHeight(int h, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaledToHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a scaled copy of the image. The returned image is scaled to the given <i>height</i> using the specified transformation <i>mode</i>. The width of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.</p>
    /// <p>If <i>height</i> is 0 or negative, a null pixmap is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_to_height_2a(
        &self,
        h: ::std::os::raw::c_int,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaledToHeight(
            self as *const crate::QPixmap,
            h,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a scaled copy of the image. The returned image is scaled to the given <i>height</i> using the specified transformation <i>mode</i>. The width of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaledToHeight(int h) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaledToHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a scaled copy of the image. The returned image is scaled to the given <i>height</i> using the specified transformation <i>mode</i>. The width of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.</p>
    /// <p>If <i>height</i> is 0 or negative, a null pixmap is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_to_height_1a(
        &self,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaledToHeight1(self as *const crate::QPixmap, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a scaled copy of the image. The returned image is scaled to the given <i>width</i> using the specified transformation <i>mode</i>. The height of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaledToWidth(int w, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaledToWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a scaled copy of the image. The returned image is scaled to the given <i>width</i> using the specified transformation <i>mode</i>. The height of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.</p>
    /// <p>If <i>width</i> is 0 or negative, a null pixmap is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_to_width_2a(
        &self,
        w: ::std::os::raw::c_int,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaledToWidth(
            self as *const crate::QPixmap,
            w,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a scaled copy of the image. The returned image is scaled to the given <i>width</i> using the specified transformation <i>mode</i>. The height of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::scaledToWidth(int w) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scaledToWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a scaled copy of the image. The returned image is scaled to the given <i>width</i> using the specified transformation <i>mode</i>. The height of the pixmap is automatically calculated so that the aspect ratio of the pixmap is preserved.</p>
    /// <p>If <i>width</i> is 0 or negative, a null pixmap is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_to_width_1a(
        &self,
        w: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPixmap_scaledToWidth1(self as *const crate::QPixmap, w);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This convenience function is equivalent to calling QPixmap::scroll(<i>dx</i>, <i>dy</i>, <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>), <i>exposed</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::scroll(int dx, int dy, int x, int y, int width, int height, QRegion* exposed = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scroll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This convenience function is equivalent to calling QPixmap::scroll(<i>dx</i>, <i>dy</i>, <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>), <i>exposed</i>).</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwidget.html#scroll">QWidget::scroll</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#scroll">QGraphicsItem::scroll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scroll_7a(
        &mut self,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        exposed: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_scroll(
            self as *mut crate::QPixmap,
            dx,
            dy,
            x,
            y,
            width,
            height,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QRegion>>::cast_into(exposed)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Scrolls the area <i>rect</i> of this pixmap by (<i>dx</i>, <i>dy</i>). The exposed region is left unchanged. You can optionally pass a pointer to an empty <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> to get the region that is <i>exposed</i> by the scroll operation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::scroll(int dx, int dy, const QRect& rect, QRegion* exposed = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scroll-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scrolls the area <i>rect</i> of this pixmap by (<i>dx</i>, <i>dy</i>). The exposed region is left unchanged. You can optionally pass a pointer to an empty <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> to get the region that is <i>exposed</i> by the scroll operation.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a></span> pixmap(<span class="string">"background.png"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a></span> exposed;
    ///   pixmap<span class="operator">.</span>scroll(<span class="number">10</span><span class="operator">,</span> <span class="number">10</span><span class="operator">,</span> pixmap<span class="operator">.</span>rect()<span class="operator">,</span> <span class="operator">&amp;</span>exposed);
    ///
    /// </pre>
    /// <p>You cannot scroll while there is an active painter on the pixmap.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwidget.html#scroll">QWidget::scroll</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#scroll">QGraphicsItem::scroll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scroll_4a(
        &mut self,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        exposed: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_scroll1(
            self as *mut crate::QPixmap,
            dx,
            dy,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QRegion>>::cast_into(exposed)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This convenience function is equivalent to calling QPixmap::scroll(<i>dx</i>, <i>dy</i>, <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>), <i>exposed</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::scroll(int dx, int dy, int x, int y, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scroll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This convenience function is equivalent to calling QPixmap::scroll(<i>dx</i>, <i>dy</i>, <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>), <i>exposed</i>).</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwidget.html#scroll">QWidget::scroll</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#scroll">QGraphicsItem::scroll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scroll_6a(
        &mut self,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_scroll2(
            self as *mut crate::QPixmap,
            dx,
            dy,
            x,
            y,
            width,
            height,
        )
    }

    /// <p>Scrolls the area <i>rect</i> of this pixmap by (<i>dx</i>, <i>dy</i>). The exposed region is left unchanged. You can optionally pass a pointer to an empty <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> to get the region that is <i>exposed</i> by the scroll operation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::scroll(int dx, int dy, const QRect& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#scroll-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scrolls the area <i>rect</i> of this pixmap by (<i>dx</i>, <i>dy</i>). The exposed region is left unchanged. You can optionally pass a pointer to an empty <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> to get the region that is <i>exposed</i> by the scroll operation.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap</a></span> pixmap(<span class="string">"background.png"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a></span> exposed;
    ///   pixmap<span class="operator">.</span>scroll(<span class="number">10</span><span class="operator">,</span> <span class="number">10</span><span class="operator">,</span> pixmap<span class="operator">.</span>rect()<span class="operator">,</span> <span class="operator">&amp;</span>exposed);
    ///
    /// </pre>
    /// <p>You cannot scroll while there is an active painter on the pixmap.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwidget.html#scroll">QWidget::scroll</a>() and <a href="http://doc.qt.io/qt-5/qgraphicsitem.html#scroll">QGraphicsItem::scroll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scroll_3a(
        &mut self,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_scroll3(
            self as *mut crate::QPixmap,
            dx,
            dy,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>Sets the device pixel ratio for the pixmap. This is the ratio between image pixels and device-independent pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::setDevicePixelRatio(double scaleFactor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#setDevicePixelRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the device pixel ratio for the pixmap. This is the ratio between image pixels and device-independent pixels.</p>
    /// <p>The default <i>scaleFactor</i> is 1.0. Setting it to something else has two effects:</p>
    /// <p>QPainters that are opened on the pixmap will be scaled. For example, painting on a 200x200 image if with a ratio of 2.0 will result in effective (device-independent) painting bounds of 100x100.</p>
    /// <p>Code paths in Qt that calculate layout geometry based on the pixmap size will take the ratio into account: <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> layoutSize = pixmap.<a href="http://doc.qt.io/qt-5/qpixmap.html#size">size</a>() / pixmap.<a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">devicePixelRatio</a>() The net effect of this is that the pixmap is displayed as high-DPI pixmap rather than a large pixmap (see <a href="http://doc.qt.io/qt-5/qpainter.html#drawing-high-resolution-versions-of-pixmaps-and-images">Drawing High Resolution Versions of Pixmaps and Images</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_device_pixel_ratio(&mut self, scale_factor: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_setDevicePixelRatio(
            self as *mut crate::QPixmap,
            scale_factor,
        )
    }

    /// <p>Sets a mask bitmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::setMask(const QBitmap& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a mask bitmap.</p>
    /// <p>This function merges the <i>mask</i> with the pixmap's alpha channel. A pixel value of 1 on the mask means the pixmap's pixel is unchanged; a value of 0 means the pixel is transparent. The mask must have the same size as this pixmap.</p>
    /// <p>Setting a null mask resets the mask, leaving the previously transparent pixels black. The effect of this function is undefined when the pixmap is being painted on.</p>
    /// <p><b>Warning:</b> This is potentially an expensive operation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#mask">mask</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>, and <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_mask(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_setMask(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the size of the pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QPixmap::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the pixmap.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_size(self as *const crate::QPixmap);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps pixmap <i>other</i> with this pixmap. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPixmap::swap(QPixmap& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps pixmap <i>other</i> with this pixmap. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_swap(
            self as *mut crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPixmap>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Converts the pixmap to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. Returns a null image if the conversion fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QPixmap::toImage() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#toImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the pixmap to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. Returns a null image if the conversion fails.</p>
    /// <p>If the pixmap has 1-bit depth, the returned image will also be 1 bit deep. Images with more bits will be returned in a format closely represents the underlying system. Usually this will be <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_ARGB32_Premultiplied</a> for pixmaps with an alpha and <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB32</a> or <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB16</a> for pixmaps without alpha.</p>
    /// <p>Note that for the moment, alpha masks on monochrome images are ignored.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#fromImage">fromImage</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#image-formats">Image Formats</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_image(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPixmap_toImage(self as *const crate::QPixmap);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the pixmap as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QPixmap::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixmap as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPixmap_operator_QVariant(self as *const crate::QPixmap);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::transformed(const QMatrix& arg1, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#transformed-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This convenience function loads the <i>matrix</i> into a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> and calls the overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_matrix_transformation_mode(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_transformed(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(arg1).as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the pixmap that is transformed using the given transformation <i>transform</i> and transformation <i>mode</i>. The original pixmap is not changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::transformed(const QTransform& arg1, Qt::TransformationMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#transformed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the pixmap that is transformed using the given transformation <i>transform</i> and transformation <i>mode</i>. The original pixmap is not changed.</p>
    /// <p>The transformation <i>transform</i> is internally adjusted to compensate for unwanted translation; i.e. the pixmap produced is the smallest pixmap that contains all the transformed points of the original pixmap. Use the <a href="http://doc.qt.io/qt-5/qpixmap.html#trueMatrix">trueMatrix</a>() function to retrieve the actual matrix used for transforming the pixmap.</p>
    /// <p>This function is slow because it involves transformation to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>, non-trivial computations and a transformation back to a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#trueMatrix">trueMatrix</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_transform_transformation_mode(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
        mode: ::qt_core::TransformationMode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_transformed1(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(arg1)
                .as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::transformed(const QMatrix& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#transformed-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This convenience function loads the <i>matrix</i> into a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> and calls the overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_matrix(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_transformed2(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the pixmap that is transformed using the given transformation <i>transform</i> and transformation <i>mode</i>. The original pixmap is not changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QPixmap::transformed(const QTransform& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#transformed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the pixmap that is transformed using the given transformation <i>transform</i> and transformation <i>mode</i>. The original pixmap is not changed.</p>
    /// <p>The transformation <i>transform</i> is internally adjusted to compensate for unwanted translation; i.e. the pixmap produced is the smallest pixmap that contains all the transformed points of the original pixmap. Use the <a href="http://doc.qt.io/qt-5/qpixmap.html#trueMatrix">trueMatrix</a>() function to retrieve the actual matrix used for transforming the pixmap.</p>
    /// <p>This function is slow because it involves transformation to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>, non-trivial computations and a transformation back to a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#trueMatrix">trueMatrix</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_transform(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_transformed3(
            self as *const crate::QPixmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QMatrix QPixmap::trueMatrix(const QMatrix& m, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#trueMatrix-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This convenience function loads the matrix <i>m</i> into a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> and calls the overloaded function with the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> and the width <i>w</i> and the height <i>h</i>.</p></div>
    #[inline(always)]
    pub unsafe fn true_matrix_q_matrix2_int(
        m: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_trueMatrix(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(m).as_raw_ptr(),
            w,
            h,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the actual matrix used for transforming a pixmap with the given <i>width</i>, <i>height</i> and <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QTransform QPixmap::trueMatrix(const QTransform& m, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#trueMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual matrix used for transforming a pixmap with the given <i>width</i>, <i>height</i> and <i>matrix</i>.</p>
    /// <p>When transforming a pixmap using the <a href="http://doc.qt.io/qt-5/qpixmap.html#transformed">transformed</a>() function, the transformation matrix is internally adjusted to compensate for unwanted translation, i.e. <a href="http://doc.qt.io/qt-5/qpixmap.html#transformed">transformed</a>() returns the smallest pixmap containing all transformed points of the original pixmap. This function returns the modified matrix, which maps points correctly from the original pixmap into the new pixmap.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#transformed">transformed</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-transformations">Pixmap Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn true_matrix_q_transform2_int(
        m: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_trueMatrix1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(m).as_raw_ptr(),
            w,
            h,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the width of the pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPixmap::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the pixmap.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap Information</a>.</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_width(self as *const crate::QPixmap)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> class defines the fill pattern of shapes drawn by <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
///
/// C++ class: <span style='color: green;'>```QBrush```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qbrush.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> class defines the fill pattern of shapes drawn by <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
/// <p>A brush has a style, a color, a gradient and a texture.</p>
/// <p>The brush <a href="http://doc.qt.io/qt-5/qbrush.html#style">style</a>() defines the fill pattern using the <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::BrushStyle</a> enum. The default brush style is <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::NoBrush</a> (depending on how you construct a brush). This style tells the painter to not fill shapes. The standard style for filling is <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::SolidPattern</a>. The style can be set when the brush is created using the appropriate constructor, and in addition the <a href="http://doc.qt.io/qt-5/qbrush.html#setStyle">setStyle</a>() function provides means for altering the style once the brush is constructed.</p>
/// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/brush-styles.png" alt="Brush Styles"></p><p>The brush <a href="http://doc.qt.io/qt-5/qbrush.html#color">color</a>() defines the color of the fill pattern. The color can either be one of Qt's predefined colors, <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::GlobalColor</a>, or any other custom <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>. The currently set color can be retrieved and altered using the <a href="http://doc.qt.io/qt-5/qbrush.html#color">color</a>() and <a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>() functions, respectively.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qbrush.html#gradient">gradient</a>() defines the gradient fill used when the current style is either <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::LinearGradientPattern</a>, <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::RadialGradientPattern</a> or <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::ConicalGradientPattern</a>. Gradient brushes are created by giving a <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> as a constructor argument when creating the <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a>. Qt provides three different gradients: <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a>, <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a>, and <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> - all of which inherit <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>.</p>
/// <pre class="cpp">
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></span> gradient(<span class="number">50</span><span class="operator">,</span> <span class="number">50</span><span class="operator">,</span> <span class="number">50</span><span class="operator">,</span> <span class="number">50</span><span class="operator">,</span> <span class="number">50</span>);
/// &#32;     gradient<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span>));
/// &#32;     gradient<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">0</span>));
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbrush.html#QBrush">QBrush</a></span> brush(gradient);
///
/// </pre>
/// <p>The <a href="http://doc.qt.io/qt-5/qbrush.html#texture">texture</a>() defines the pixmap used when the current style is <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>. You can create a brush with a texture by providing the pixmap when the brush is created or by using <a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">setTexture</a>().</p>
/// <p>Note that applying <a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">setTexture</a>() makes <a href="http://doc.qt.io/qt-5/qbrush.html#style">style</a>() == <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>, regardless of previous style settings. Also, calling <a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>() will not make a difference if the style is a gradient. The same is the case if the style is <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a> style unless the current texture is a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qbrush.html#isOpaque">isOpaque</a>() function returns <code>true</code> if the brush is fully opaque otherwise false. A brush is considered opaque if:</p>
/// <ul>
/// <li>The alpha component of the <a href="http://doc.qt.io/qt-5/qbrush.html#color">color</a>() is 255.</li>
/// <li>Its <a href="http://doc.qt.io/qt-5/qbrush.html#texture">texture</a>() does not have an alpha channel and is not a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>.</li>
/// <li>The colors in the <a href="http://doc.qt.io/qt-5/qbrush.html#gradient">gradient</a>() all have an alpha component that is 255.</li>
/// </ul>
/// <div class="table"><table class="generic" width="100%">
///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/brush-outline.png" alt="Outlines"></td><td>To specify the style and color of lines and outlines, use the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>'s <a href="http://doc.qt.io/qt-5/qpen.html">pen</a> combined with <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::PenStyle</a> and <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::GlobalColor</a>:<pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
///
///   painter<span class="operator">.</span>setBrush(<span class="type">Qt</span><span class="operator">::</span>cyan);
///   painter<span class="operator">.</span>setPen(<span class="type">Qt</span><span class="operator">::</span>darkCyan);
///   painter<span class="operator">.</span>drawRect(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">100</span><span class="operator">,</span><span class="number">100</span>);
///
///   painter<span class="operator">.</span>setBrush(<span class="type">Qt</span><span class="operator">::</span>NoBrush);
///   painter<span class="operator">.</span>setPen(<span class="type">Qt</span><span class="operator">::</span>darkGreen);
///   painter<span class="operator">.</span>drawRect(<span class="number">40</span><span class="operator">,</span> <span class="number">40</span><span class="operator">,</span> <span class="number">100</span><span class="operator">,</span> <span class="number">100</span>);
///
/// </pre>
/// <p>Note that, by default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> renders the outline (using the currently set pen) when drawing shapes. Use <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum"><code>painter.setPen(Qt::NoPen)</code></a> to disable this behavior.</p>
/// </td></tr>
/// </tbody></table></div>
/// <p>For more information about painting in general, see the <a href="http://doc.qt.io/qt-5/paintsystem.html">Paint System</a>.</p></div>
#[repr(C)]
pub struct QBrush {
    _unused: u8,
}
impl QBrush {
    /// <p>Returns the brush color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QColor& QBrush::color() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#color">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn color(&self) -> ::cpp_core::Ref<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_color(self as *const crate::QBrush);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns the given <i>brush</i> to <i>this</i> brush and returns a reference to <i>this</i> brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush& QBrush::operator=(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the given <i>brush</i> to <i>this</i> brush and returns a reference to <i>this</i> brush.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) -> ::cpp_core::MutRef<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_operator_(
            self as *mut crate::QBrush,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the gradient describing this brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGradient* QBrush::gradient() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#gradient">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the gradient describing this brush.</p></div>
    #[inline(always)]
    pub unsafe fn gradient(&self) -> ::cpp_core::Ptr<crate::QGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_gradient(self as *const crate::QBrush);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QBrush::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_isDetached(self as *const crate::QBrush)
    }

    /// <p>Returns <code>true</code> if the brush is fully opaque otherwise false. A brush is considered opaque if:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QBrush::isOpaque() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#isOpaque">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the brush is fully opaque otherwise false. A brush is considered opaque if:</p>
    /// <ul>
    /// <li>The alpha component of the <a href="http://doc.qt.io/qt-5/qbrush.html#color">color</a>() is 255.</li>
    /// <li>Its <a href="http://doc.qt.io/qt-5/qbrush.html#texture">texture</a>() does not have an alpha channel and is not a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>.</li>
    /// <li>The colors in the <a href="http://doc.qt.io/qt-5/qbrush.html#gradient">gradient</a>() all have an alpha component that is 255.</li>
    /// <li>It is an extended radial gradient.</li>
    /// </ul></div>
    #[inline(always)]
    pub unsafe fn is_opaque(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_isOpaque(self as *const crate::QBrush)
    }

    /// <p>Returns the current transformation matrix for the brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QMatrix& QBrush::matrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#matrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current transformation matrix for the brush.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setMatrix">setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn matrix(&self) -> ::cpp_core::Ref<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_matrix(self as *const crate::QBrush);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a default black brush with the style <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::NoBrush</a> (i.e. this brush will not fill shapes).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a default black brush with the style <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::NoBrush</a> (i.e. this brush will not fill shapes).</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a black brush with the given <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(Qt::BrushStyle bs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a black brush with the given <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_brush_style(bs: ::qt_core::BrushStyle) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush1(bs);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush with the given <i>color</i> and <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(const QColor& color, Qt::BrushStyle bs = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush with the given <i>color</i> and <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>() and <a href="http://doc.qt.io/qt-5/qbrush.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_color_brush_style(
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        bs: ::qt_core::BrushStyle,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
            bs,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush with the given <i>color</i> and <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(Qt::GlobalColor color, Qt::BrushStyle bs = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush with the given <i>color</i> and <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>() and <a href="http://doc.qt.io/qt-5/qbrush.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_global_color_brush_style(
        color: ::qt_core::GlobalColor,
        bs: ::qt_core::BrushStyle,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush3(color, bs);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush with the given <i>color</i> and the custom pattern stored in <i>pixmap</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(const QColor& color, const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush with the given <i>color</i> and the custom pattern stored in <i>pixmap</i>.</p>
    /// <p>The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>. The color will only have an effect for QBitmaps.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>() and <a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">setTexture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_color_q_pixmap(
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush with the given <i>color</i> and the custom pattern stored in <i>pixmap</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(Qt::GlobalColor color, const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush with the given <i>color</i> and the custom pattern stored in <i>pixmap</i>.</p>
    /// <p>The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>. The color will only have an effect for QBitmaps.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>() and <a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">setTexture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_global_color_q_pixmap(
        color: ::qt_core::GlobalColor,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush5(
            color,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush with a black color and a texture set to the given <i>pixmap</i>. The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush with a black color and a texture set to the given <i>pixmap</i>. The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">setTexture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_pixmap(
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush with a black color and a texture set to the given <i>image</i>. The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush with a black color and a texture set to the given <i>image</i>. The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setTextureImage">setTextureImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_image(
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush7(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush based on the given <i>gradient</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(const QGradient& gradient)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush based on the given <i>gradient</i>.</p>
    /// <p>The brush style is set to the corresponding gradient style (either <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::LinearGradientPattern</a>, <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::RadialGradientPattern</a> or <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::ConicalGradientPattern</a>).</p></div>
    #[inline(always)]
    pub unsafe fn from_q_gradient(
        gradient: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGradient>>,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush9(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGradient>>::cast_into(gradient)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush with the given <i>color</i> and <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush with the given <i>color</i> and <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>() and <a href="http://doc.qt.io/qt-5/qbrush.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_color(
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush10(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a brush with the given <i>color</i> and <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(Qt::GlobalColor color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a brush with the given <i>color</i> and <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setColor">setColor</a>() and <a href="http://doc.qt.io/qt-5/qbrush.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_global_color(
        color: ::qt_core::GlobalColor,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush11(color);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBrush::QBrush(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#QBrush-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_QBrush8(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the brush color to the given <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBrush::setColor(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#setColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush color to the given <i>color</i>.</p>
    /// <p>Note that calling setColor() will not make a difference if the style is a gradient. The same is the case if the style is <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a> style unless the current texture is a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#color">color</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_color_q_color(
        &mut self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_setColor(
            self as *mut crate::QBrush,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBrush::setColor(Qt::GlobalColor color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#setColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the brush color to the given <i>color</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_color_global_color(&mut self, color: ::qt_core::GlobalColor) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_setColor1(self as *mut crate::QBrush, color)
    }

    /// <p>Sets <i>matrix</i> as an explicit transformation matrix on the current brush. The brush transformation matrix is merged with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> transformation matrix to produce the final result.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBrush::setMatrix(const QMatrix& mat)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#setMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <i>matrix</i> as an explicit transformation matrix on the current brush. The brush transformation matrix is merged with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> transformation matrix to produce the final result.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#matrix">matrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_matrix(
        &mut self,
        mat: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_setMatrix(
            self as *mut crate::QBrush,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(mat).as_raw_ptr(),
        )
    }

    /// <p>Sets the brush style to <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBrush::setStyle(Qt::BrushStyle arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#setStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush style to <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#style">style</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_style(&mut self, arg1: ::qt_core::BrushStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_setStyle(self as *mut crate::QBrush, arg1)
    }

    /// <p>Sets the brush pixmap to <i>pixmap</i>. The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBrush::setTexture(const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush pixmap to <i>pixmap</i>. The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>.</p>
    /// <p>The current brush color will only have an effect for monochrome pixmaps, i.e. for <a href="http://doc.qt.io/qt-5/qpixmap.html#depth">QPixmap::depth</a>() == 1 (<a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmaps</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#texture">texture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_texture(
        &mut self,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_setTexture(
            self as *mut crate::QBrush,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        )
    }

    /// <p>Sets the brush image to <i>image</i>. The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBrush::setTextureImage(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#setTextureImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush image to <i>image</i>. The style is set to <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::TexturePattern</a>.</p>
    /// <p>Note the current brush color will <i>not</i> have any affect on monochrome images, as opposed to calling <a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">setTexture</a>() with a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>. If you want to change the color of monochrome image brushes, either convert the image to <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> with <code>QBitmap::fromImage()</code> and set the resulting <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> as a texture, or change the entries in the color table for the image.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#textureImage">textureImage</a>() and <a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">setTexture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_texture_image(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_setTextureImage(
            self as *mut crate::QBrush,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }

    /// <p>Sets <i>matrix</i> as an explicit transformation matrix on the current brush. The brush transformation matrix is merged with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> transformation matrix to produce the final result.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBrush::setTransform(const QTransform& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#setTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <i>matrix</i> as an explicit transformation matrix on the current brush. The brush transformation matrix is merged with <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> transformation matrix to produce the final result.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#transform">transform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_transform(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_setTransform(
            self as *mut crate::QBrush,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the brush style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::BrushStyle QBrush::style() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#style">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn style(&self) -> ::qt_core::BrushStyle {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_style(self as *const crate::QBrush)
    }

    /// <p>Swaps brush <i>other</i> with this brush. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBrush::swap(QBrush& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps brush <i>other</i> with this brush. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_swap(
            self as *mut crate::QBrush,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QBrush>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the custom brush pattern, or a null pixmap if no custom brush pattern has been set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QBrush::texture() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#texture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the custom brush pattern, or a null pixmap if no custom brush pattern has been set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setTexture">setTexture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn texture(&self) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBrush_texture(self as *const crate::QBrush);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the custom brush pattern, or a null image if no custom brush pattern has been set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QBrush::textureImage() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#textureImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the custom brush pattern, or a null image if no custom brush pattern has been set.</p>
    /// <p>If the texture was set as a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> it will be converted to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setTextureImage">setTextureImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn texture_image(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QBrush_textureImage(self as *const crate::QBrush);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the brush as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QBrush::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QBrush_operator_QVariant(self as *const crate::QBrush);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current transformation matrix for the brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QBrush::transform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#transform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current transformation matrix for the brush.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#setTransform">setTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transform(&self) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QBrush_transform(self as *const crate::QBrush);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_gradient {
    //! C++ type: <span style='color: green;'>```QGradient```</span>

    /// <p>Specifies the type of gradient.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QGradient::Type```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#Type-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of gradient.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#type">type</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Type(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Type {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Type(value)
        }
    }

    impl From<Type> for ::std::os::raw::c_int {
        fn from(value: Type) -> Self {
            value.0
        }
    }

    impl Type {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Type {
        /// Interpolates colors between start and end points (<a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a>). (C++ enum variant: <span style='color: green;'>```LinearGradient = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const LinearGradient: crate::q_gradient::Type = crate::q_gradient::Type(0);
        /// Interpolate colors between a focal point and end points on a circle surrounding it (<a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a>). (C++ enum variant: <span style='color: green;'>```RadialGradient = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const RadialGradient: crate::q_gradient::Type = crate::q_gradient::Type(1);
        /// Interpolate colors around a center point (<a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a>). (C++ enum variant: <span style='color: green;'>```ConicalGradient = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ConicalGradient: crate::q_gradient::Type = crate::q_gradient::Type(2);
        /// No gradient is used. (C++ enum variant: <span style='color: green;'>```NoGradient = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoGradient: crate::q_gradient::Type = crate::q_gradient::Type(3);
    }

    /// <p>Specifies how the area outside the gradient area should be filled.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QGradient::Spread```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies how the area outside the gradient area should be filled.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#spread">spread</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Spread(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Spread {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Spread(value)
        }
    }

    impl From<Spread> for ::std::os::raw::c_int {
        fn from(value: Spread) -> Self {
            value.0
        }
    }

    impl Spread {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Spread {
        /// The area is filled with the closest stop color. This is the default. (C++ enum variant: <span style='color: green;'>```PadSpread = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const PadSpread: crate::q_gradient::Spread = crate::q_gradient::Spread(0);
        /// The gradient is reflected outside the gradient area. (C++ enum variant: <span style='color: green;'>```ReflectSpread = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ReflectSpread: crate::q_gradient::Spread = crate::q_gradient::Spread(1);
        /// The gradient is repeated outside the gradient area. (C++ enum variant: <span style='color: green;'>```RepeatSpread = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const RepeatSpread: crate::q_gradient::Spread = crate::q_gradient::Spread(2);
    }

    /// <p>This enum specifies how gradient coordinates map to the paint device on which the gradient is used.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QGradient::CoordinateMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies how gradient coordinates map to the paint device on which the gradient is used.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.4.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CoordinateMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CoordinateMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CoordinateMode(value)
        }
    }

    impl From<CoordinateMode> for ::std::os::raw::c_int {
        fn from(value: CoordinateMode) -> Self {
            value.0
        }
    }

    impl CoordinateMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CoordinateMode {
        /// This is the default mode. The gradient coordinates are specified logical space just like the object coordinates. (C++ enum variant: <span style='color: green;'>```LogicalMode = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const LogicalMode: crate::q_gradient::CoordinateMode =
            crate::q_gradient::CoordinateMode(0);
        /// In this mode the gradient coordinates are relative to the bounding rectangle of the paint device, with (0,0) in the top left corner, and (1,1) in the bottom right corner of the paint device. (C++ enum variant: <span style='color: green;'>```StretchToDeviceMode = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const StretchToDeviceMode: crate::q_gradient::CoordinateMode =
            crate::q_gradient::CoordinateMode(1);
        /// In this mode the gradient coordinates are relative to the bounding rectangle of the object being drawn, with (0,0) in the top left corner, and (1,1) in the bottom right corner of the object's bounding rectangle. (C++ enum variant: <span style='color: green;'>```ObjectBoundingMode = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectBoundingMode: crate::q_gradient::CoordinateMode =
            crate::q_gradient::CoordinateMode(2);
        /// In this mode the gradient coordinates are relative to the bounding rectangle of the object being drawn, with (0,0) in the top left corner, and (1,1) in the bottom right corner of the object's bounding rectangle. This value was added in Qt 5.12. (C++ enum variant: <span style='color: green;'>```ObjectMode = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectMode: crate::q_gradient::CoordinateMode =
            crate::q_gradient::CoordinateMode(3);
    }

    /// C++ enum: <span style='color: green;'>```QGradient::InterpolationMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct InterpolationMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for InterpolationMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            InterpolationMode(value)
        }
    }

    impl From<InterpolationMode> for ::std::os::raw::c_int {
        fn from(value: InterpolationMode) -> Self {
            value.0
        }
    }

    impl InterpolationMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl InterpolationMode {
        /// C++ enum variant: <span style='color: green;'>```ColorInterpolation = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const ColorInterpolation: crate::q_gradient::InterpolationMode =
            crate::q_gradient::InterpolationMode(0);
        /// C++ enum variant: <span style='color: green;'>```ComponentInterpolation = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const ComponentInterpolation: crate::q_gradient::InterpolationMode =
            crate::q_gradient::InterpolationMode(1);
    }

    /// <p>This enum specifies a set of predefined presets for <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, based on the gradients from https://webgradients.com/.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QGradient::Preset```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#Preset-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies a set of predefined presets for <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, based on the gradients from https://webgradients.com/.</p>
    /// <p>This enum was introduced or modified in  Qt 5.12.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Preset(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Preset {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Preset(value)
        }
    }

    impl From<Preset> for ::std::os::raw::c_int {
        fn from(value: Preset) -> Self {
            value.0
        }
    }

    impl Preset {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Preset {
        /// C++ enum variant: <span style='color: green;'>```WarmFlame = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const WarmFlame: crate::q_gradient::Preset = crate::q_gradient::Preset(1);
        /// C++ enum variant: <span style='color: green;'>```NightFade = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const NightFade: crate::q_gradient::Preset = crate::q_gradient::Preset(2);
        /// C++ enum variant: <span style='color: green;'>```SpringWarmth = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const SpringWarmth: crate::q_gradient::Preset = crate::q_gradient::Preset(3);
        /// C++ enum variant: <span style='color: green;'>```JuicyPeach = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const JuicyPeach: crate::q_gradient::Preset = crate::q_gradient::Preset(4);
        /// C++ enum variant: <span style='color: green;'>```YoungPassion = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const YoungPassion: crate::q_gradient::Preset = crate::q_gradient::Preset(5);
        /// C++ enum variant: <span style='color: green;'>```LadyLips = 6```</span>
        #[allow(non_upper_case_globals)]
        pub const LadyLips: crate::q_gradient::Preset = crate::q_gradient::Preset(6);
        /// C++ enum variant: <span style='color: green;'>```SunnyMorning = 7```</span>
        #[allow(non_upper_case_globals)]
        pub const SunnyMorning: crate::q_gradient::Preset = crate::q_gradient::Preset(7);
        /// C++ enum variant: <span style='color: green;'>```RainyAshville = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const RainyAshville: crate::q_gradient::Preset = crate::q_gradient::Preset(8);
        /// C++ enum variant: <span style='color: green;'>```FrozenDreams = 9```</span>
        #[allow(non_upper_case_globals)]
        pub const FrozenDreams: crate::q_gradient::Preset = crate::q_gradient::Preset(9);
        /// C++ enum variant: <span style='color: green;'>```WinterNeva = 10```</span>
        #[allow(non_upper_case_globals)]
        pub const WinterNeva: crate::q_gradient::Preset = crate::q_gradient::Preset(10);
        /// C++ enum variant: <span style='color: green;'>```DustyGrass = 11```</span>
        #[allow(non_upper_case_globals)]
        pub const DustyGrass: crate::q_gradient::Preset = crate::q_gradient::Preset(11);
        /// C++ enum variant: <span style='color: green;'>```TemptingAzure = 12```</span>
        #[allow(non_upper_case_globals)]
        pub const TemptingAzure: crate::q_gradient::Preset = crate::q_gradient::Preset(12);
        /// C++ enum variant: <span style='color: green;'>```HeavyRain = 13```</span>
        #[allow(non_upper_case_globals)]
        pub const HeavyRain: crate::q_gradient::Preset = crate::q_gradient::Preset(13);
        /// C++ enum variant: <span style='color: green;'>```AmyCrisp = 14```</span>
        #[allow(non_upper_case_globals)]
        pub const AmyCrisp: crate::q_gradient::Preset = crate::q_gradient::Preset(14);
        /// C++ enum variant: <span style='color: green;'>```MeanFruit = 15```</span>
        #[allow(non_upper_case_globals)]
        pub const MeanFruit: crate::q_gradient::Preset = crate::q_gradient::Preset(15);
        /// C++ enum variant: <span style='color: green;'>```DeepBlue = 16```</span>
        #[allow(non_upper_case_globals)]
        pub const DeepBlue: crate::q_gradient::Preset = crate::q_gradient::Preset(16);
        /// C++ enum variant: <span style='color: green;'>```RipeMalinka = 17```</span>
        #[allow(non_upper_case_globals)]
        pub const RipeMalinka: crate::q_gradient::Preset = crate::q_gradient::Preset(17);
        /// C++ enum variant: <span style='color: green;'>```CloudyKnoxville = 18```</span>
        #[allow(non_upper_case_globals)]
        pub const CloudyKnoxville: crate::q_gradient::Preset = crate::q_gradient::Preset(18);
        /// C++ enum variant: <span style='color: green;'>```MalibuBeach = 19```</span>
        #[allow(non_upper_case_globals)]
        pub const MalibuBeach: crate::q_gradient::Preset = crate::q_gradient::Preset(19);
        /// C++ enum variant: <span style='color: green;'>```NewLife = 20```</span>
        #[allow(non_upper_case_globals)]
        pub const NewLife: crate::q_gradient::Preset = crate::q_gradient::Preset(20);
        /// C++ enum variant: <span style='color: green;'>```TrueSunset = 21```</span>
        #[allow(non_upper_case_globals)]
        pub const TrueSunset: crate::q_gradient::Preset = crate::q_gradient::Preset(21);
        /// C++ enum variant: <span style='color: green;'>```MorpheusDen = 22```</span>
        #[allow(non_upper_case_globals)]
        pub const MorpheusDen: crate::q_gradient::Preset = crate::q_gradient::Preset(22);
        /// C++ enum variant: <span style='color: green;'>```RareWind = 23```</span>
        #[allow(non_upper_case_globals)]
        pub const RareWind: crate::q_gradient::Preset = crate::q_gradient::Preset(23);
        /// C++ enum variant: <span style='color: green;'>```NearMoon = 24```</span>
        #[allow(non_upper_case_globals)]
        pub const NearMoon: crate::q_gradient::Preset = crate::q_gradient::Preset(24);
        /// C++ enum variant: <span style='color: green;'>```WildApple = 25```</span>
        #[allow(non_upper_case_globals)]
        pub const WildApple: crate::q_gradient::Preset = crate::q_gradient::Preset(25);
        /// C++ enum variant: <span style='color: green;'>```SaintPetersburg = 26```</span>
        #[allow(non_upper_case_globals)]
        pub const SaintPetersburg: crate::q_gradient::Preset = crate::q_gradient::Preset(26);
        /// C++ enum variant: <span style='color: green;'>```PlumPlate = 28```</span>
        #[allow(non_upper_case_globals)]
        pub const PlumPlate: crate::q_gradient::Preset = crate::q_gradient::Preset(28);
        /// C++ enum variant: <span style='color: green;'>```EverlastingSky = 29```</span>
        #[allow(non_upper_case_globals)]
        pub const EverlastingSky: crate::q_gradient::Preset = crate::q_gradient::Preset(29);
        /// C++ enum variant: <span style='color: green;'>```HappyFisher = 30```</span>
        #[allow(non_upper_case_globals)]
        pub const HappyFisher: crate::q_gradient::Preset = crate::q_gradient::Preset(30);
        /// C++ enum variant: <span style='color: green;'>```Blessing = 31```</span>
        #[allow(non_upper_case_globals)]
        pub const Blessing: crate::q_gradient::Preset = crate::q_gradient::Preset(31);
        /// C++ enum variant: <span style='color: green;'>```SharpeyeEagle = 32```</span>
        #[allow(non_upper_case_globals)]
        pub const SharpeyeEagle: crate::q_gradient::Preset = crate::q_gradient::Preset(32);
        /// C++ enum variant: <span style='color: green;'>```LadogaBottom = 33```</span>
        #[allow(non_upper_case_globals)]
        pub const LadogaBottom: crate::q_gradient::Preset = crate::q_gradient::Preset(33);
        /// C++ enum variant: <span style='color: green;'>```LemonGate = 34```</span>
        #[allow(non_upper_case_globals)]
        pub const LemonGate: crate::q_gradient::Preset = crate::q_gradient::Preset(34);
        /// C++ enum variant: <span style='color: green;'>```ItmeoBranding = 35```</span>
        #[allow(non_upper_case_globals)]
        pub const ItmeoBranding: crate::q_gradient::Preset = crate::q_gradient::Preset(35);
        /// C++ enum variant: <span style='color: green;'>```ZeusMiracle = 36```</span>
        #[allow(non_upper_case_globals)]
        pub const ZeusMiracle: crate::q_gradient::Preset = crate::q_gradient::Preset(36);
        /// C++ enum variant: <span style='color: green;'>```OldHat = 37```</span>
        #[allow(non_upper_case_globals)]
        pub const OldHat: crate::q_gradient::Preset = crate::q_gradient::Preset(37);
        /// C++ enum variant: <span style='color: green;'>```StarWine = 38```</span>
        #[allow(non_upper_case_globals)]
        pub const StarWine: crate::q_gradient::Preset = crate::q_gradient::Preset(38);
        /// C++ enum variant: <span style='color: green;'>```HappyAcid = 41```</span>
        #[allow(non_upper_case_globals)]
        pub const HappyAcid: crate::q_gradient::Preset = crate::q_gradient::Preset(41);
        /// C++ enum variant: <span style='color: green;'>```AwesomePine = 42```</span>
        #[allow(non_upper_case_globals)]
        pub const AwesomePine: crate::q_gradient::Preset = crate::q_gradient::Preset(42);
        /// C++ enum variant: <span style='color: green;'>```NewYork = 43```</span>
        #[allow(non_upper_case_globals)]
        pub const NewYork: crate::q_gradient::Preset = crate::q_gradient::Preset(43);
        /// C++ enum variant: <span style='color: green;'>```ShyRainbow = 44```</span>
        #[allow(non_upper_case_globals)]
        pub const ShyRainbow: crate::q_gradient::Preset = crate::q_gradient::Preset(44);
        /// C++ enum variant: <span style='color: green;'>```MixedHopes = 46```</span>
        #[allow(non_upper_case_globals)]
        pub const MixedHopes: crate::q_gradient::Preset = crate::q_gradient::Preset(46);
        /// C++ enum variant: <span style='color: green;'>```FlyHigh = 47```</span>
        #[allow(non_upper_case_globals)]
        pub const FlyHigh: crate::q_gradient::Preset = crate::q_gradient::Preset(47);
        /// C++ enum variant: <span style='color: green;'>```StrongBliss = 48```</span>
        #[allow(non_upper_case_globals)]
        pub const StrongBliss: crate::q_gradient::Preset = crate::q_gradient::Preset(48);
        /// C++ enum variant: <span style='color: green;'>```FreshMilk = 49```</span>
        #[allow(non_upper_case_globals)]
        pub const FreshMilk: crate::q_gradient::Preset = crate::q_gradient::Preset(49);
        /// C++ enum variant: <span style='color: green;'>```SnowAgain = 50```</span>
        #[allow(non_upper_case_globals)]
        pub const SnowAgain: crate::q_gradient::Preset = crate::q_gradient::Preset(50);
        /// C++ enum variant: <span style='color: green;'>```FebruaryInk = 51```</span>
        #[allow(non_upper_case_globals)]
        pub const FebruaryInk: crate::q_gradient::Preset = crate::q_gradient::Preset(51);
        /// C++ enum variant: <span style='color: green;'>```KindSteel = 52```</span>
        #[allow(non_upper_case_globals)]
        pub const KindSteel: crate::q_gradient::Preset = crate::q_gradient::Preset(52);
        /// C++ enum variant: <span style='color: green;'>```SoftGrass = 53```</span>
        #[allow(non_upper_case_globals)]
        pub const SoftGrass: crate::q_gradient::Preset = crate::q_gradient::Preset(53);
        /// C++ enum variant: <span style='color: green;'>```GrownEarly = 54```</span>
        #[allow(non_upper_case_globals)]
        pub const GrownEarly: crate::q_gradient::Preset = crate::q_gradient::Preset(54);
        /// C++ enum variant: <span style='color: green;'>```SharpBlues = 55```</span>
        #[allow(non_upper_case_globals)]
        pub const SharpBlues: crate::q_gradient::Preset = crate::q_gradient::Preset(55);
        /// C++ enum variant: <span style='color: green;'>```ShadyWater = 56```</span>
        #[allow(non_upper_case_globals)]
        pub const ShadyWater: crate::q_gradient::Preset = crate::q_gradient::Preset(56);
        /// C++ enum variant: <span style='color: green;'>```DirtyBeauty = 57```</span>
        #[allow(non_upper_case_globals)]
        pub const DirtyBeauty: crate::q_gradient::Preset = crate::q_gradient::Preset(57);
        /// C++ enum variant: <span style='color: green;'>```GreatWhale = 58```</span>
        #[allow(non_upper_case_globals)]
        pub const GreatWhale: crate::q_gradient::Preset = crate::q_gradient::Preset(58);
        /// C++ enum variant: <span style='color: green;'>```TeenNotebook = 59```</span>
        #[allow(non_upper_case_globals)]
        pub const TeenNotebook: crate::q_gradient::Preset = crate::q_gradient::Preset(59);
        /// C++ enum variant: <span style='color: green;'>```PoliteRumors = 60```</span>
        #[allow(non_upper_case_globals)]
        pub const PoliteRumors: crate::q_gradient::Preset = crate::q_gradient::Preset(60);
        /// C++ enum variant: <span style='color: green;'>```SweetPeriod = 61```</span>
        #[allow(non_upper_case_globals)]
        pub const SweetPeriod: crate::q_gradient::Preset = crate::q_gradient::Preset(61);
        /// C++ enum variant: <span style='color: green;'>```WideMatrix = 62```</span>
        #[allow(non_upper_case_globals)]
        pub const WideMatrix: crate::q_gradient::Preset = crate::q_gradient::Preset(62);
        /// C++ enum variant: <span style='color: green;'>```SoftCherish = 63```</span>
        #[allow(non_upper_case_globals)]
        pub const SoftCherish: crate::q_gradient::Preset = crate::q_gradient::Preset(63);
        /// C++ enum variant: <span style='color: green;'>```RedSalvation = 64```</span>
        #[allow(non_upper_case_globals)]
        pub const RedSalvation: crate::q_gradient::Preset = crate::q_gradient::Preset(64);
        /// C++ enum variant: <span style='color: green;'>```BurningSpring = 65```</span>
        #[allow(non_upper_case_globals)]
        pub const BurningSpring: crate::q_gradient::Preset = crate::q_gradient::Preset(65);
        /// C++ enum variant: <span style='color: green;'>```NightParty = 66```</span>
        #[allow(non_upper_case_globals)]
        pub const NightParty: crate::q_gradient::Preset = crate::q_gradient::Preset(66);
        /// C++ enum variant: <span style='color: green;'>```SkyGlider = 67```</span>
        #[allow(non_upper_case_globals)]
        pub const SkyGlider: crate::q_gradient::Preset = crate::q_gradient::Preset(67);
        /// C++ enum variant: <span style='color: green;'>```HeavenPeach = 68```</span>
        #[allow(non_upper_case_globals)]
        pub const HeavenPeach: crate::q_gradient::Preset = crate::q_gradient::Preset(68);
        /// C++ enum variant: <span style='color: green;'>```PurpleDivision = 69```</span>
        #[allow(non_upper_case_globals)]
        pub const PurpleDivision: crate::q_gradient::Preset = crate::q_gradient::Preset(69);
        /// C++ enum variant: <span style='color: green;'>```AquaSplash = 70```</span>
        #[allow(non_upper_case_globals)]
        pub const AquaSplash: crate::q_gradient::Preset = crate::q_gradient::Preset(70);
        /// C++ enum variant: <span style='color: green;'>```SpikyNaga = 72```</span>
        #[allow(non_upper_case_globals)]
        pub const SpikyNaga: crate::q_gradient::Preset = crate::q_gradient::Preset(72);
        /// C++ enum variant: <span style='color: green;'>```LoveKiss = 73```</span>
        #[allow(non_upper_case_globals)]
        pub const LoveKiss: crate::q_gradient::Preset = crate::q_gradient::Preset(73);
        /// C++ enum variant: <span style='color: green;'>```CleanMirror = 75```</span>
        #[allow(non_upper_case_globals)]
        pub const CleanMirror: crate::q_gradient::Preset = crate::q_gradient::Preset(75);
        /// C++ enum variant: <span style='color: green;'>```PremiumDark = 76```</span>
        #[allow(non_upper_case_globals)]
        pub const PremiumDark: crate::q_gradient::Preset = crate::q_gradient::Preset(76);
        /// C++ enum variant: <span style='color: green;'>```ColdEvening = 77```</span>
        #[allow(non_upper_case_globals)]
        pub const ColdEvening: crate::q_gradient::Preset = crate::q_gradient::Preset(77);
        /// C++ enum variant: <span style='color: green;'>```CochitiLake = 78```</span>
        #[allow(non_upper_case_globals)]
        pub const CochitiLake: crate::q_gradient::Preset = crate::q_gradient::Preset(78);
        /// C++ enum variant: <span style='color: green;'>```SummerGames = 79```</span>
        #[allow(non_upper_case_globals)]
        pub const SummerGames: crate::q_gradient::Preset = crate::q_gradient::Preset(79);
        /// C++ enum variant: <span style='color: green;'>```PassionateBed = 80```</span>
        #[allow(non_upper_case_globals)]
        pub const PassionateBed: crate::q_gradient::Preset = crate::q_gradient::Preset(80);
        /// C++ enum variant: <span style='color: green;'>```MountainRock = 81```</span>
        #[allow(non_upper_case_globals)]
        pub const MountainRock: crate::q_gradient::Preset = crate::q_gradient::Preset(81);
        /// C++ enum variant: <span style='color: green;'>```DesertHump = 82```</span>
        #[allow(non_upper_case_globals)]
        pub const DesertHump: crate::q_gradient::Preset = crate::q_gradient::Preset(82);
        /// C++ enum variant: <span style='color: green;'>```JungleDay = 83```</span>
        #[allow(non_upper_case_globals)]
        pub const JungleDay: crate::q_gradient::Preset = crate::q_gradient::Preset(83);
        /// C++ enum variant: <span style='color: green;'>```PhoenixStart = 84```</span>
        #[allow(non_upper_case_globals)]
        pub const PhoenixStart: crate::q_gradient::Preset = crate::q_gradient::Preset(84);
        /// C++ enum variant: <span style='color: green;'>```OctoberSilence = 85```</span>
        #[allow(non_upper_case_globals)]
        pub const OctoberSilence: crate::q_gradient::Preset = crate::q_gradient::Preset(85);
        /// C++ enum variant: <span style='color: green;'>```FarawayRiver = 86```</span>
        #[allow(non_upper_case_globals)]
        pub const FarawayRiver: crate::q_gradient::Preset = crate::q_gradient::Preset(86);
        /// C++ enum variant: <span style='color: green;'>```AlchemistLab = 87```</span>
        #[allow(non_upper_case_globals)]
        pub const AlchemistLab: crate::q_gradient::Preset = crate::q_gradient::Preset(87);
        /// C++ enum variant: <span style='color: green;'>```OverSun = 88```</span>
        #[allow(non_upper_case_globals)]
        pub const OverSun: crate::q_gradient::Preset = crate::q_gradient::Preset(88);
        /// C++ enum variant: <span style='color: green;'>```PremiumWhite = 89```</span>
        #[allow(non_upper_case_globals)]
        pub const PremiumWhite: crate::q_gradient::Preset = crate::q_gradient::Preset(89);
        /// C++ enum variant: <span style='color: green;'>```MarsParty = 90```</span>
        #[allow(non_upper_case_globals)]
        pub const MarsParty: crate::q_gradient::Preset = crate::q_gradient::Preset(90);
        /// C++ enum variant: <span style='color: green;'>```EternalConstance = 91```</span>
        #[allow(non_upper_case_globals)]
        pub const EternalConstance: crate::q_gradient::Preset = crate::q_gradient::Preset(91);
        /// C++ enum variant: <span style='color: green;'>```JapanBlush = 92```</span>
        #[allow(non_upper_case_globals)]
        pub const JapanBlush: crate::q_gradient::Preset = crate::q_gradient::Preset(92);
        /// C++ enum variant: <span style='color: green;'>```SmilingRain = 93```</span>
        #[allow(non_upper_case_globals)]
        pub const SmilingRain: crate::q_gradient::Preset = crate::q_gradient::Preset(93);
        /// C++ enum variant: <span style='color: green;'>```CloudyApple = 94```</span>
        #[allow(non_upper_case_globals)]
        pub const CloudyApple: crate::q_gradient::Preset = crate::q_gradient::Preset(94);
        /// C++ enum variant: <span style='color: green;'>```BigMango = 95```</span>
        #[allow(non_upper_case_globals)]
        pub const BigMango: crate::q_gradient::Preset = crate::q_gradient::Preset(95);
        /// C++ enum variant: <span style='color: green;'>```HealthyWater = 96```</span>
        #[allow(non_upper_case_globals)]
        pub const HealthyWater: crate::q_gradient::Preset = crate::q_gradient::Preset(96);
        /// C++ enum variant: <span style='color: green;'>```AmourAmour = 97```</span>
        #[allow(non_upper_case_globals)]
        pub const AmourAmour: crate::q_gradient::Preset = crate::q_gradient::Preset(97);
        /// C++ enum variant: <span style='color: green;'>```RiskyConcrete = 98```</span>
        #[allow(non_upper_case_globals)]
        pub const RiskyConcrete: crate::q_gradient::Preset = crate::q_gradient::Preset(98);
        /// C++ enum variant: <span style='color: green;'>```StrongStick = 99```</span>
        #[allow(non_upper_case_globals)]
        pub const StrongStick: crate::q_gradient::Preset = crate::q_gradient::Preset(99);
        /// C++ enum variant: <span style='color: green;'>```ViciousStance = 100```</span>
        #[allow(non_upper_case_globals)]
        pub const ViciousStance: crate::q_gradient::Preset = crate::q_gradient::Preset(100);
        /// C++ enum variant: <span style='color: green;'>```PaloAlto = 101```</span>
        #[allow(non_upper_case_globals)]
        pub const PaloAlto: crate::q_gradient::Preset = crate::q_gradient::Preset(101);
        /// C++ enum variant: <span style='color: green;'>```HappyMemories = 102```</span>
        #[allow(non_upper_case_globals)]
        pub const HappyMemories: crate::q_gradient::Preset = crate::q_gradient::Preset(102);
        /// C++ enum variant: <span style='color: green;'>```MidnightBloom = 103```</span>
        #[allow(non_upper_case_globals)]
        pub const MidnightBloom: crate::q_gradient::Preset = crate::q_gradient::Preset(103);
        /// C++ enum variant: <span style='color: green;'>```Crystalline = 104```</span>
        #[allow(non_upper_case_globals)]
        pub const Crystalline: crate::q_gradient::Preset = crate::q_gradient::Preset(104);
        /// C++ enum variant: <span style='color: green;'>```PartyBliss = 106```</span>
        #[allow(non_upper_case_globals)]
        pub const PartyBliss: crate::q_gradient::Preset = crate::q_gradient::Preset(106);
        /// C++ enum variant: <span style='color: green;'>```ConfidentCloud = 107```</span>
        #[allow(non_upper_case_globals)]
        pub const ConfidentCloud: crate::q_gradient::Preset = crate::q_gradient::Preset(107);
        /// C++ enum variant: <span style='color: green;'>```LeCocktail = 108```</span>
        #[allow(non_upper_case_globals)]
        pub const LeCocktail: crate::q_gradient::Preset = crate::q_gradient::Preset(108);
        /// C++ enum variant: <span style='color: green;'>```RiverCity = 109```</span>
        #[allow(non_upper_case_globals)]
        pub const RiverCity: crate::q_gradient::Preset = crate::q_gradient::Preset(109);
        /// C++ enum variant: <span style='color: green;'>```FrozenBerry = 110```</span>
        #[allow(non_upper_case_globals)]
        pub const FrozenBerry: crate::q_gradient::Preset = crate::q_gradient::Preset(110);
        /// C++ enum variant: <span style='color: green;'>```ChildCare = 112```</span>
        #[allow(non_upper_case_globals)]
        pub const ChildCare: crate::q_gradient::Preset = crate::q_gradient::Preset(112);
        /// C++ enum variant: <span style='color: green;'>```FlyingLemon = 113```</span>
        #[allow(non_upper_case_globals)]
        pub const FlyingLemon: crate::q_gradient::Preset = crate::q_gradient::Preset(113);
        /// C++ enum variant: <span style='color: green;'>```NewRetrowave = 114```</span>
        #[allow(non_upper_case_globals)]
        pub const NewRetrowave: crate::q_gradient::Preset = crate::q_gradient::Preset(114);
        /// C++ enum variant: <span style='color: green;'>```HiddenJaguar = 115```</span>
        #[allow(non_upper_case_globals)]
        pub const HiddenJaguar: crate::q_gradient::Preset = crate::q_gradient::Preset(115);
        /// C++ enum variant: <span style='color: green;'>```AboveTheSky = 116```</span>
        #[allow(non_upper_case_globals)]
        pub const AboveTheSky: crate::q_gradient::Preset = crate::q_gradient::Preset(116);
        /// C++ enum variant: <span style='color: green;'>```Nega = 117```</span>
        #[allow(non_upper_case_globals)]
        pub const Nega: crate::q_gradient::Preset = crate::q_gradient::Preset(117);
        /// C++ enum variant: <span style='color: green;'>```DenseWater = 118```</span>
        #[allow(non_upper_case_globals)]
        pub const DenseWater: crate::q_gradient::Preset = crate::q_gradient::Preset(118);
        /// C++ enum variant: <span style='color: green;'>```Seashore = 120```</span>
        #[allow(non_upper_case_globals)]
        pub const Seashore: crate::q_gradient::Preset = crate::q_gradient::Preset(120);
        /// C++ enum variant: <span style='color: green;'>```MarbleWall = 121```</span>
        #[allow(non_upper_case_globals)]
        pub const MarbleWall: crate::q_gradient::Preset = crate::q_gradient::Preset(121);
        /// C++ enum variant: <span style='color: green;'>```CheerfulCaramel = 122```</span>
        #[allow(non_upper_case_globals)]
        pub const CheerfulCaramel: crate::q_gradient::Preset = crate::q_gradient::Preset(122);
        /// C++ enum variant: <span style='color: green;'>```NightSky = 123```</span>
        #[allow(non_upper_case_globals)]
        pub const NightSky: crate::q_gradient::Preset = crate::q_gradient::Preset(123);
        /// C++ enum variant: <span style='color: green;'>```MagicLake = 124```</span>
        #[allow(non_upper_case_globals)]
        pub const MagicLake: crate::q_gradient::Preset = crate::q_gradient::Preset(124);
        /// C++ enum variant: <span style='color: green;'>```YoungGrass = 125```</span>
        #[allow(non_upper_case_globals)]
        pub const YoungGrass: crate::q_gradient::Preset = crate::q_gradient::Preset(125);
        /// C++ enum variant: <span style='color: green;'>```ColorfulPeach = 126```</span>
        #[allow(non_upper_case_globals)]
        pub const ColorfulPeach: crate::q_gradient::Preset = crate::q_gradient::Preset(126);
        /// C++ enum variant: <span style='color: green;'>```GentleCare = 127```</span>
        #[allow(non_upper_case_globals)]
        pub const GentleCare: crate::q_gradient::Preset = crate::q_gradient::Preset(127);
        /// C++ enum variant: <span style='color: green;'>```PlumBath = 128```</span>
        #[allow(non_upper_case_globals)]
        pub const PlumBath: crate::q_gradient::Preset = crate::q_gradient::Preset(128);
        /// C++ enum variant: <span style='color: green;'>```HappyUnicorn = 129```</span>
        #[allow(non_upper_case_globals)]
        pub const HappyUnicorn: crate::q_gradient::Preset = crate::q_gradient::Preset(129);
        /// C++ enum variant: <span style='color: green;'>```AfricanField = 131```</span>
        #[allow(non_upper_case_globals)]
        pub const AfricanField: crate::q_gradient::Preset = crate::q_gradient::Preset(131);
        /// C++ enum variant: <span style='color: green;'>```SolidStone = 132```</span>
        #[allow(non_upper_case_globals)]
        pub const SolidStone: crate::q_gradient::Preset = crate::q_gradient::Preset(132);
        /// C++ enum variant: <span style='color: green;'>```OrangeJuice = 133```</span>
        #[allow(non_upper_case_globals)]
        pub const OrangeJuice: crate::q_gradient::Preset = crate::q_gradient::Preset(133);
        /// C++ enum variant: <span style='color: green;'>```GlassWater = 134```</span>
        #[allow(non_upper_case_globals)]
        pub const GlassWater: crate::q_gradient::Preset = crate::q_gradient::Preset(134);
        /// C++ enum variant: <span style='color: green;'>```NorthMiracle = 136```</span>
        #[allow(non_upper_case_globals)]
        pub const NorthMiracle: crate::q_gradient::Preset = crate::q_gradient::Preset(136);
        /// C++ enum variant: <span style='color: green;'>```FruitBlend = 137```</span>
        #[allow(non_upper_case_globals)]
        pub const FruitBlend: crate::q_gradient::Preset = crate::q_gradient::Preset(137);
        /// C++ enum variant: <span style='color: green;'>```MillenniumPine = 138```</span>
        #[allow(non_upper_case_globals)]
        pub const MillenniumPine: crate::q_gradient::Preset = crate::q_gradient::Preset(138);
        /// C++ enum variant: <span style='color: green;'>```HighFlight = 139```</span>
        #[allow(non_upper_case_globals)]
        pub const HighFlight: crate::q_gradient::Preset = crate::q_gradient::Preset(139);
        /// C++ enum variant: <span style='color: green;'>```MoleHall = 140```</span>
        #[allow(non_upper_case_globals)]
        pub const MoleHall: crate::q_gradient::Preset = crate::q_gradient::Preset(140);
        /// C++ enum variant: <span style='color: green;'>```SpaceShift = 142```</span>
        #[allow(non_upper_case_globals)]
        pub const SpaceShift: crate::q_gradient::Preset = crate::q_gradient::Preset(142);
        /// C++ enum variant: <span style='color: green;'>```ForestInei = 143```</span>
        #[allow(non_upper_case_globals)]
        pub const ForestInei: crate::q_gradient::Preset = crate::q_gradient::Preset(143);
        /// C++ enum variant: <span style='color: green;'>```RoyalGarden = 144```</span>
        #[allow(non_upper_case_globals)]
        pub const RoyalGarden: crate::q_gradient::Preset = crate::q_gradient::Preset(144);
        /// C++ enum variant: <span style='color: green;'>```RichMetal = 145```</span>
        #[allow(non_upper_case_globals)]
        pub const RichMetal: crate::q_gradient::Preset = crate::q_gradient::Preset(145);
        /// C++ enum variant: <span style='color: green;'>```JuicyCake = 146```</span>
        #[allow(non_upper_case_globals)]
        pub const JuicyCake: crate::q_gradient::Preset = crate::q_gradient::Preset(146);
        /// C++ enum variant: <span style='color: green;'>```SmartIndigo = 147```</span>
        #[allow(non_upper_case_globals)]
        pub const SmartIndigo: crate::q_gradient::Preset = crate::q_gradient::Preset(147);
        /// C++ enum variant: <span style='color: green;'>```SandStrike = 148```</span>
        #[allow(non_upper_case_globals)]
        pub const SandStrike: crate::q_gradient::Preset = crate::q_gradient::Preset(148);
        /// C++ enum variant: <span style='color: green;'>```NorseBeauty = 149```</span>
        #[allow(non_upper_case_globals)]
        pub const NorseBeauty: crate::q_gradient::Preset = crate::q_gradient::Preset(149);
        /// C++ enum variant: <span style='color: green;'>```AquaGuidance = 150```</span>
        #[allow(non_upper_case_globals)]
        pub const AquaGuidance: crate::q_gradient::Preset = crate::q_gradient::Preset(150);
        /// C++ enum variant: <span style='color: green;'>```SunVeggie = 151```</span>
        #[allow(non_upper_case_globals)]
        pub const SunVeggie: crate::q_gradient::Preset = crate::q_gradient::Preset(151);
        /// C++ enum variant: <span style='color: green;'>```SeaLord = 152```</span>
        #[allow(non_upper_case_globals)]
        pub const SeaLord: crate::q_gradient::Preset = crate::q_gradient::Preset(152);
        /// C++ enum variant: <span style='color: green;'>```BlackSea = 153```</span>
        #[allow(non_upper_case_globals)]
        pub const BlackSea: crate::q_gradient::Preset = crate::q_gradient::Preset(153);
        /// C++ enum variant: <span style='color: green;'>```GrassShampoo = 154```</span>
        #[allow(non_upper_case_globals)]
        pub const GrassShampoo: crate::q_gradient::Preset = crate::q_gradient::Preset(154);
        /// C++ enum variant: <span style='color: green;'>```LandingAircraft = 155```</span>
        #[allow(non_upper_case_globals)]
        pub const LandingAircraft: crate::q_gradient::Preset = crate::q_gradient::Preset(155);
        /// C++ enum variant: <span style='color: green;'>```WitchDance = 156```</span>
        #[allow(non_upper_case_globals)]
        pub const WitchDance: crate::q_gradient::Preset = crate::q_gradient::Preset(156);
        /// C++ enum variant: <span style='color: green;'>```SleeplessNight = 157```</span>
        #[allow(non_upper_case_globals)]
        pub const SleeplessNight: crate::q_gradient::Preset = crate::q_gradient::Preset(157);
        /// C++ enum variant: <span style='color: green;'>```AngelCare = 158```</span>
        #[allow(non_upper_case_globals)]
        pub const AngelCare: crate::q_gradient::Preset = crate::q_gradient::Preset(158);
        /// C++ enum variant: <span style='color: green;'>```CrystalRiver = 159```</span>
        #[allow(non_upper_case_globals)]
        pub const CrystalRiver: crate::q_gradient::Preset = crate::q_gradient::Preset(159);
        /// C++ enum variant: <span style='color: green;'>```SoftLipstick = 160```</span>
        #[allow(non_upper_case_globals)]
        pub const SoftLipstick: crate::q_gradient::Preset = crate::q_gradient::Preset(160);
        /// C++ enum variant: <span style='color: green;'>```SaltMountain = 161```</span>
        #[allow(non_upper_case_globals)]
        pub const SaltMountain: crate::q_gradient::Preset = crate::q_gradient::Preset(161);
        /// C++ enum variant: <span style='color: green;'>```PerfectWhite = 162```</span>
        #[allow(non_upper_case_globals)]
        pub const PerfectWhite: crate::q_gradient::Preset = crate::q_gradient::Preset(162);
        /// C++ enum variant: <span style='color: green;'>```FreshOasis = 163```</span>
        #[allow(non_upper_case_globals)]
        pub const FreshOasis: crate::q_gradient::Preset = crate::q_gradient::Preset(163);
        /// C++ enum variant: <span style='color: green;'>```StrictNovember = 164```</span>
        #[allow(non_upper_case_globals)]
        pub const StrictNovember: crate::q_gradient::Preset = crate::q_gradient::Preset(164);
        /// C++ enum variant: <span style='color: green;'>```MorningSalad = 165```</span>
        #[allow(non_upper_case_globals)]
        pub const MorningSalad: crate::q_gradient::Preset = crate::q_gradient::Preset(165);
        /// C++ enum variant: <span style='color: green;'>```DeepRelief = 166```</span>
        #[allow(non_upper_case_globals)]
        pub const DeepRelief: crate::q_gradient::Preset = crate::q_gradient::Preset(166);
        /// C++ enum variant: <span style='color: green;'>```SeaStrike = 167```</span>
        #[allow(non_upper_case_globals)]
        pub const SeaStrike: crate::q_gradient::Preset = crate::q_gradient::Preset(167);
        /// C++ enum variant: <span style='color: green;'>```NightCall = 168```</span>
        #[allow(non_upper_case_globals)]
        pub const NightCall: crate::q_gradient::Preset = crate::q_gradient::Preset(168);
        /// C++ enum variant: <span style='color: green;'>```SupremeSky = 169```</span>
        #[allow(non_upper_case_globals)]
        pub const SupremeSky: crate::q_gradient::Preset = crate::q_gradient::Preset(169);
        /// C++ enum variant: <span style='color: green;'>```LightBlue = 170```</span>
        #[allow(non_upper_case_globals)]
        pub const LightBlue: crate::q_gradient::Preset = crate::q_gradient::Preset(170);
        /// C++ enum variant: <span style='color: green;'>```MindCrawl = 171```</span>
        #[allow(non_upper_case_globals)]
        pub const MindCrawl: crate::q_gradient::Preset = crate::q_gradient::Preset(171);
        /// C++ enum variant: <span style='color: green;'>```LilyMeadow = 172```</span>
        #[allow(non_upper_case_globals)]
        pub const LilyMeadow: crate::q_gradient::Preset = crate::q_gradient::Preset(172);
        /// C++ enum variant: <span style='color: green;'>```SugarLollipop = 173```</span>
        #[allow(non_upper_case_globals)]
        pub const SugarLollipop: crate::q_gradient::Preset = crate::q_gradient::Preset(173);
        /// C++ enum variant: <span style='color: green;'>```SweetDessert = 174```</span>
        #[allow(non_upper_case_globals)]
        pub const SweetDessert: crate::q_gradient::Preset = crate::q_gradient::Preset(174);
        /// C++ enum variant: <span style='color: green;'>```MagicRay = 175```</span>
        #[allow(non_upper_case_globals)]
        pub const MagicRay: crate::q_gradient::Preset = crate::q_gradient::Preset(175);
        /// C++ enum variant: <span style='color: green;'>```TeenParty = 176```</span>
        #[allow(non_upper_case_globals)]
        pub const TeenParty: crate::q_gradient::Preset = crate::q_gradient::Preset(176);
        /// C++ enum variant: <span style='color: green;'>```FrozenHeat = 177```</span>
        #[allow(non_upper_case_globals)]
        pub const FrozenHeat: crate::q_gradient::Preset = crate::q_gradient::Preset(177);
        /// C++ enum variant: <span style='color: green;'>```GagarinView = 178```</span>
        #[allow(non_upper_case_globals)]
        pub const GagarinView: crate::q_gradient::Preset = crate::q_gradient::Preset(178);
        /// C++ enum variant: <span style='color: green;'>```FabledSunset = 179```</span>
        #[allow(non_upper_case_globals)]
        pub const FabledSunset: crate::q_gradient::Preset = crate::q_gradient::Preset(179);
        /// C++ enum variant: <span style='color: green;'>```PerfectBlue = 180```</span>
        #[allow(non_upper_case_globals)]
        pub const PerfectBlue: crate::q_gradient::Preset = crate::q_gradient::Preset(180);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify gradient fills.</p>
///
/// C++ class: <span style='color: green;'>```QGradient```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify gradient fills.</p>
/// <p>Qt currently supports three types of gradient fills:</p>
/// <ul>
/// <li><i>Linear</i> gradients interpolate colors between start and end points.</li>
/// <li><i>Simple</i> radial gradients interpolate colors between a focal point and end points on a circle surrounding it.</li>
/// <li><i>Extended</i> radial gradients interpolate colors between a center and a focal circle.</li>
/// <li><i>Conical</i> gradients interpolate colors around a center point.</li>
/// </ul>
/// <p>A gradient's type can be retrieved using the <a href="http://doc.qt.io/qt-5/qgradient.html#type">type</a>() function. Each of the types is represented by a subclass of <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>:</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></th><th><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></th><th><a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a></th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qgradient-linear.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qgradient-radial.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qgradient-conical.png" alt=""></td></tr>
/// </tbody></table></div>
/// <p>The colors in a gradient are defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type; i.e., a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">setColorAt</a>() function to define a single stop point. Alternatively, use the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">setStops</a>() function to define several stop points in one go. Note that the latter function <i>replaces</i> the current set of stop points.</p>
/// <p>It is the gradient's complete set of stop points (accessible through the <a href="http://doc.qt.io/qt-5/qgradient.html#stops">stops</a>() function) that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
/// <p>A diagonal linear gradient from black at (100, 100) to white at (200, 200) could be specified like this:</p>
/// <pre class="cpp">
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> linearGrad(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">100</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">200</span><span class="operator">,</span> <span class="number">200</span>));
/// &#32;     linearGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>black);
/// &#32;     linearGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>white);
///
/// </pre>
/// <p>A gradient can have an arbitrary number of stop points. The following would create a radial gradient starting with red in the center, blue and then green on the edges:</p>
/// <pre class="cpp">
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></span> radialGrad(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">100</span>)<span class="operator">,</span> <span class="number">100</span>);
/// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>red);
/// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">0.5</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>blue);
/// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>green);
///
/// </pre>
/// <p>It is possible to repeat or reflect the gradient outside its area by specifiying the <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread method</a> using the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function. The default is to pad the outside area with the color at the closest stop point. The currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread method</a> can be retrieved using the <a href="http://doc.qt.io/qt-5/qgradient.html#spread">spread</a>() function. The <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">QGradient::Spread</a> enum defines three different methods:</p>
/// <div class="table"><table class="generic">
///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-repeat.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-reflect.png" alt=""></td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td></tr>
/// </tbody></table></div>
/// <p>Note that the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function only has effect for linear and radial gradients. The reason is that the conical gradient is closed by definition, i.e. the <i>conical</i> gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.</p>
/// <p>The gradient coordinates can be specified in logical coordinates, relative to device coordinates, or relative to object bounding box coordinates. The <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">coordinate mode</a> can be set using the <a href="http://doc.qt.io/qt-5/qgradient.html#setCoordinateMode">setCoordinateMode</a>() function. The default is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">LogicalMode</a>, where the gradient coordinates are specified in the same way as the object coordinates. To retrieve the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">coordinate mode</a> use <a href="http://doc.qt.io/qt-5/qgradient.html#coordinateMode">coordinateMode</a>().</p></div>
#[repr(C)]
pub struct QGradient {
    _unused: u8,
}
impl QGradient {
    /// <p>Returns the coordinate mode of this gradient. The default mode is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">LogicalMode</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGradient::CoordinateMode QGradient::coordinateMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#coordinateMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the coordinate mode of this gradient. The default mode is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">LogicalMode</a>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setCoordinateMode">setCoordinateMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn coordinate_mode(&self) -> crate::q_gradient::CoordinateMode {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_coordinateMode(self as *const crate::QGradient)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify gradient fills.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGradient& QGradient::operator=(const QGradient& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify gradient fills.</p>
    /// <p>Qt currently supports three types of gradient fills:</p>
    /// <ul>
    /// <li><i>Linear</i> gradients interpolate colors between start and end points.</li>
    /// <li><i>Simple</i> radial gradients interpolate colors between a focal point and end points on a circle surrounding it.</li>
    /// <li><i>Extended</i> radial gradients interpolate colors between a center and a focal circle.</li>
    /// <li><i>Conical</i> gradients interpolate colors around a center point.</li>
    /// </ul>
    /// <p>A gradient's type can be retrieved using the <a href="http://doc.qt.io/qt-5/qgradient.html#type">type</a>() function. Each of the types is represented by a subclass of <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></th><th><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></th><th><a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a></th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qgradient-linear.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qgradient-radial.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qgradient-conical.png" alt=""></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient are defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type; i.e., a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">setColorAt</a>() function to define a single stop point. Alternatively, use the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">setStops</a>() function to define several stop points in one go. Note that the latter function <i>replaces</i> the current set of stop points.</p>
    /// <p>It is the gradient's complete set of stop points (accessible through the <a href="http://doc.qt.io/qt-5/qgradient.html#stops">stops</a>() function) that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>A diagonal linear gradient from black at (100, 100) to white at (200, 200) could be specified like this:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> linearGrad(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">100</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">200</span><span class="operator">,</span> <span class="number">200</span>));
    /// &#32;     linearGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>black);
    /// &#32;     linearGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>white);
    ///
    /// </pre>
    /// <p>A gradient can have an arbitrary number of stop points. The following would create a radial gradient starting with red in the center, blue and then green on the edges:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></span> radialGrad(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">100</span>)<span class="operator">,</span> <span class="number">100</span>);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>red);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">0.5</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>blue);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>green);
    ///
    /// </pre>
    /// <p>It is possible to repeat or reflect the gradient outside its area by specifiying the <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread method</a> using the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function. The default is to pad the outside area with the color at the closest stop point. The currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread method</a> can be retrieved using the <a href="http://doc.qt.io/qt-5/qgradient.html#spread">spread</a>() function. The <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">QGradient::Spread</a> enum defines three different methods:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-repeat.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-reflect.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function only has effect for linear and radial gradients. The reason is that the conical gradient is closed by definition, i.e. the <i>conical</i> gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.</p>
    /// <p>The gradient coordinates can be specified in logical coordinates, relative to device coordinates, or relative to object bounding box coordinates. The <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">coordinate mode</a> can be set using the <a href="http://doc.qt.io/qt-5/qgradient.html#setCoordinateMode">setCoordinateMode</a>() function. The default is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">LogicalMode</a>, where the gradient coordinates are specified in the same way as the object coordinates. To retrieve the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">coordinate mode</a> use <a href="http://doc.qt.io/qt-5/qgradient.html#coordinateMode">coordinateMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGradient>>,
    ) -> ::cpp_core::MutRef<crate::QGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGradient_operator_(
            self as *mut crate::QGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGradient>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```QGradient::InterpolationMode QGradient::interpolationMode() const```</span>.
    #[inline(always)]
    pub unsafe fn interpolation_mode(&self) -> crate::q_gradient::InterpolationMode {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_interpolationMode(self as *const crate::QGradient)
    }

    /// <p>Constructs a gradient based on a predefined <i>preset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGradient::QGradient()```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradient">C++ documentation</a> for <span style='color: green;'>```QGradient::QGradient(QGradient::Preset preset)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a gradient based on a predefined <i>preset</i>.</p>
    /// <p>The coordinate mode of the resulting gradient is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">QGradient::ObjectMode</a>, allowing the preset to be applied to arbitrary object sizes.</p>
    /// <p>This function was introduced in  Qt 5.12.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGradient_QGradient();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a gradient based on a predefined <i>preset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGradient::QGradient(QGradient::Preset arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#QGradient">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a gradient based on a predefined <i>preset</i>.</p>
    /// <p>The coordinate mode of the resulting gradient is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">QGradient::ObjectMode</a>, allowing the preset to be applied to arbitrary object sizes.</p>
    /// <p>This function was introduced in  Qt 5.12.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(arg1: crate::q_gradient::Preset) -> ::cpp_core::CppBox<crate::QGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGradient_QGradient4(arg1);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify gradient fills.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGradient::QGradient(const QGradient& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify gradient fills.</p>
    /// <p>Qt currently supports three types of gradient fills:</p>
    /// <ul>
    /// <li><i>Linear</i> gradients interpolate colors between start and end points.</li>
    /// <li><i>Simple</i> radial gradients interpolate colors between a focal point and end points on a circle surrounding it.</li>
    /// <li><i>Extended</i> radial gradients interpolate colors between a center and a focal circle.</li>
    /// <li><i>Conical</i> gradients interpolate colors around a center point.</li>
    /// </ul>
    /// <p>A gradient's type can be retrieved using the <a href="http://doc.qt.io/qt-5/qgradient.html#type">type</a>() function. Each of the types is represented by a subclass of <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></th><th><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></th><th><a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a></th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qgradient-linear.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qgradient-radial.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qgradient-conical.png" alt=""></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient are defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type; i.e., a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">setColorAt</a>() function to define a single stop point. Alternatively, use the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">setStops</a>() function to define several stop points in one go. Note that the latter function <i>replaces</i> the current set of stop points.</p>
    /// <p>It is the gradient's complete set of stop points (accessible through the <a href="http://doc.qt.io/qt-5/qgradient.html#stops">stops</a>() function) that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>A diagonal linear gradient from black at (100, 100) to white at (200, 200) could be specified like this:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> linearGrad(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">100</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">200</span><span class="operator">,</span> <span class="number">200</span>));
    /// &#32;     linearGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>black);
    /// &#32;     linearGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>white);
    ///
    /// </pre>
    /// <p>A gradient can have an arbitrary number of stop points. The following would create a radial gradient starting with red in the center, blue and then green on the edges:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></span> radialGrad(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">100</span>)<span class="operator">,</span> <span class="number">100</span>);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>red);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">0.5</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>blue);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>green);
    ///
    /// </pre>
    /// <p>It is possible to repeat or reflect the gradient outside its area by specifiying the <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread method</a> using the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function. The default is to pad the outside area with the color at the closest stop point. The currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread method</a> can be retrieved using the <a href="http://doc.qt.io/qt-5/qgradient.html#spread">spread</a>() function. The <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">QGradient::Spread</a> enum defines three different methods:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-repeat.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-reflect.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function only has effect for linear and radial gradients. The reason is that the conical gradient is closed by definition, i.e. the <i>conical</i> gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.</p>
    /// <p>The gradient coordinates can be specified in logical coordinates, relative to device coordinates, or relative to object bounding box coordinates. The <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">coordinate mode</a> can be set using the <a href="http://doc.qt.io/qt-5/qgradient.html#setCoordinateMode">setCoordinateMode</a>() function. The default is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">LogicalMode</a>, where the gradient coordinates are specified in the same way as the object coordinates. To retrieve the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">coordinate mode</a> use <a href="http://doc.qt.io/qt-5/qgradient.html#coordinateMode">coordinateMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGradient>>,
    ) -> ::cpp_core::CppBox<crate::QGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGradient_QGradient1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGradient>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a stop point at the given <i>position</i> with the given <i>color</i>. The given <i>position</i> must be in the range 0 to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGradient::setColorAt(double pos, const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a stop point at the given <i>position</i> with the given <i>color</i>. The given <i>position</i> must be in the range 0 to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setStops">setStops</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_color_at(
        &mut self,
        pos: ::std::os::raw::c_double,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_setColorAt(
            self as *mut crate::QGradient,
            pos,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>Sets the coordinate mode of this gradient to <i>mode</i>. The default mode is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">LogicalMode</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGradient::setCoordinateMode(QGradient::CoordinateMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#setCoordinateMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the coordinate mode of this gradient to <i>mode</i>. The default mode is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">LogicalMode</a>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#coordinateMode">coordinateMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_coordinate_mode(&mut self, mode: crate::q_gradient::CoordinateMode) {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_setCoordinateMode(
            self as *mut crate::QGradient,
            mode,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QGradient::setInterpolationMode(QGradient::InterpolationMode mode)```</span>.
    #[inline(always)]
    pub unsafe fn set_interpolation_mode(&mut self, mode: crate::q_gradient::InterpolationMode) {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_setInterpolationMode(
            self as *mut crate::QGradient,
            mode,
        )
    }

    /// <p>Specifies the spread <i>method</i> that should be used for this gradient.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGradient::setSpread(QGradient::Spread spread)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the spread <i>method</i> that should be used for this gradient.</p>
    /// <p>Note that this function only has effect for linear and radial gradients.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#spread">spread</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_spread(&mut self, spread: crate::q_gradient::Spread) {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_setSpread(self as *mut crate::QGradient, spread)
    }

    /// <p>Replaces the current set of stop points with the given <i>stopPoints</i>. The positions of the points must be in the range 0 to 1, and must be sorted with the lowest point first.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGradient::setStops(const QVector<QPair<double, QColor>>& stops)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the current set of stop points with the given <i>stopPoints</i>. The positions of the points must be in the range 0 to 1, and must be sorted with the lowest point first.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_stops(
        &mut self,
        stops: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_setStops(self as *mut crate::QGradient, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>::cast_into(stops).as_raw_ptr())
    }

    /// <p>Returns the spread method use by this gradient. The default is <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGradient::Spread QGradient::spread() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#spread">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the spread method use by this gradient. The default is <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>().</p></div>
    #[inline(always)]
    pub unsafe fn spread(&self) -> crate::q_gradient::Spread {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_spread(self as *const crate::QGradient)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGradient_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the stop points for this gradient.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>> QGradient::stops() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#stops">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the stop points for this gradient.</p>
    /// <p>If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setStops">setStops</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">setColorAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn stops(&self) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QGradient_stops(self as *const crate::QGradient);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the type of gradient.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGradient::Type QGradient::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of gradient.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_gradient::Type {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_type(self as *const crate::QGradient)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a linear gradient brush.</p>
///
/// C++ class: <span style='color: green;'>```QLinearGradient```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlineargradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a linear gradient brush.</p>
/// <p>Linear gradients interpolate colors between start and end points. Outside these points the gradient is either padded, reflected or repeated depending on the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread</a> method:</p>
/// <div class="table"><table class="generic">
///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-reflect.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-repeat.png" alt=""></td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a> (default)</td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td></tr>
/// </tbody></table></div>
/// <p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
/// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qlineargradient.html#finalStop">finalStop</a>() function which returns the final stop point of the gradient, and the <a href="http://doc.qt.io/qt-5/qlineargradient.html#start">start</a>() function returning the start point of the gradient.</p></div>
#[repr(C)]
pub struct QLinearGradient {
    _unused: u8,
}
impl QLinearGradient {
    /// <p>The <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a linear gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLinearGradient& QLinearGradient::operator=(const QLinearGradient& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a linear gradient brush.</p>
    /// <p>Linear gradients interpolate colors between start and end points. Outside these points the gradient is either padded, reflected or repeated depending on the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread</a> method:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-reflect.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-repeat.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a> (default)</td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qlineargradient.html#finalStop">finalStop</a>() function which returns the final stop point of the gradient, and the <a href="http://doc.qt.io/qt-5/qlineargradient.html#start">start</a>() function returning the start point of the gradient.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QLinearGradient>>,
    ) -> ::cpp_core::MutRef<crate::QLinearGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_operator_(
            self as *mut crate::QLinearGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QLinearGradient>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the final stop point of this linear gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QLinearGradient::finalStop() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#finalStop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the final stop point of this linear gradient in logical coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlineargradient.html#setFinalStop">setFinalStop</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">QGradient::stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn final_stop(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_finalStop(
            self as *const crate::QLinearGradient,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a default linear gradient with interpolation area between (0, 0) and (1, 1).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QLinearGradient::QLinearGradient()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#QLinearGradient">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a default linear gradient with interpolation area between (0, 0) and (1, 1).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>(), <a href="http://doc.qt.io/qt-5/qlineargradient.html#setStart">setStart</a>(), and <a href="http://doc.qt.io/qt-5/qlineargradient.html#setFinalStop">setFinalStop</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QLinearGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_QLinearGradient();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a linear gradient with interpolation area between the given <i>start</i> point and <i>finalStop</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QLinearGradient::QLinearGradient(const QPointF& start, const QPointF& finalStop)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#QLinearGradient-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a linear gradient with interpolation area between the given <i>start</i> point and <i>finalStop</i>.</p>
    /// <p><b>Note: </b>The expected parameter values are in pixels.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        start: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        final_stop: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QLinearGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_QLinearGradient1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(start)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(final_stop)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a linear gradient with interpolation area between (<i>x1</i>, <i>y1</i>) and (<i>x2</i>, <i>y2</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QLinearGradient::QLinearGradient(double xStart, double yStart, double xFinalStop, double yFinalStop)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#QLinearGradient-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a linear gradient with interpolation area between (<i>x1</i>, <i>y1</i>) and (<i>x2</i>, <i>y2</i>).</p>
    /// <p><b>Note: </b>The expected parameter values are in pixels.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        x_start: ::std::os::raw::c_double,
        y_start: ::std::os::raw::c_double,
        x_final_stop: ::std::os::raw::c_double,
        y_final_stop: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QLinearGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_QLinearGradient2(
            x_start,
            y_start,
            x_final_stop,
            y_final_stop,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a linear gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QLinearGradient::QLinearGradient(const QLinearGradient& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a linear gradient brush.</p>
    /// <p>Linear gradients interpolate colors between start and end points. Outside these points the gradient is either padded, reflected or repeated depending on the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread</a> method:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-reflect.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-repeat.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a> (default)</td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qlineargradient.html#finalStop">finalStop</a>() function which returns the final stop point of the gradient, and the <a href="http://doc.qt.io/qt-5/qlineargradient.html#start">start</a>() function returning the start point of the gradient.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QLinearGradient>>,
    ) -> ::cpp_core::CppBox<crate::QLinearGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_QLinearGradient3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QLinearGradient>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the final stop point of this linear gradient in logical coordinates to <i>stop</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QLinearGradient::setFinalStop(const QPointF& stop)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#setFinalStop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the final stop point of this linear gradient in logical coordinates to <i>stop</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlineargradient.html#finalStop">finalStop</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_final_stop_1a(
        &mut self,
        stop: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_setFinalStop(
            self as *mut crate::QLinearGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(stop)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QLinearGradient::setFinalStop(double x, double y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#setFinalStop-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the final stop point of this linear gradient in logical coordinates to <i>x</i>, <i>y</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlineargradient.html#start">start</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_final_stop_2a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_setFinalStop1(
            self as *mut crate::QLinearGradient,
            x,
            y,
        )
    }

    /// <p>Sets the start point of this linear gradient in logical coordinates to <i>start</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QLinearGradient::setStart(const QPointF& start)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#setStart">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the start point of this linear gradient in logical coordinates to <i>start</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlineargradient.html#start">start</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_start_1a(
        &mut self,
        start: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_setStart(
            self as *mut crate::QLinearGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(start)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QLinearGradient::setStart(double x, double y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#setStart-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the start point of this linear gradient in logical coordinates to <i>x</i>, <i>y</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlineargradient.html#start">start</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_start_2a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_setStart1(
            self as *mut crate::QLinearGradient,
            x,
            y,
        )
    }

    /// <p>Returns the start point of this linear gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QLinearGradient::start() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html#start">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the start point of this linear gradient in logical coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlineargradient.html#setStart">setStart</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">QGradient::stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn start(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_start(
            self as *const crate::QLinearGradient,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a radial gradient brush.</p>
///
/// C++ class: <span style='color: green;'>```QRadialGradient```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qradialgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a radial gradient brush.</p>
/// <p>Qt supports both simple and extended radial gradients.</p>
/// <p>Simple radial gradients interpolate colors between a focal point and end points on a circle surrounding it. Extended radial gradients interpolate colors between a focal circle and a center circle. Points outside the cone defined by the two circles will be transparent. For simple radial gradients the focal point is adjusted to lie inside the center circle, whereas the focal point can have any position in an extended radial gradient.</p>
/// <p>Outside the end points the gradient is either padded, reflected or repeated depending on the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread</a> method:</p>
/// <div class="table"><table class="generic">
///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-reflect.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-repeat.png" alt=""></td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a> (default)</td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td></tr>
/// </tbody></table></div>
/// <p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
/// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qradialgradient.html#center">center</a>(), <a href="http://doc.qt.io/qt-5/qradialgradient.html#focalPoint">focalPoint</a>() and <a href="http://doc.qt.io/qt-5/qradialgradient.html#radius">radius</a>() functions returning the gradient's center, focal point and radius respectively.</p></div>
#[repr(C)]
pub struct QRadialGradient {
    _unused: u8,
}
impl QRadialGradient {
    /// <p>Returns the center of this radial gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QRadialGradient::center() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#center">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the center of this radial gradient in logical coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#setCenter">setCenter</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">QGradient::stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn center(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_center(
            self as *const crate::QRadialGradient,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the center radius of this radial gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRadialGradient::centerRadius() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#centerRadius">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the center radius of this radial gradient in logical coordinates.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#setCenterRadius">setCenterRadius</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">QGradient::stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn center_radius(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_centerRadius(
            self as *const crate::QRadialGradient,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a radial gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRadialGradient& QRadialGradient::operator=(const QRadialGradient& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a radial gradient brush.</p>
    /// <p>Qt supports both simple and extended radial gradients.</p>
    /// <p>Simple radial gradients interpolate colors between a focal point and end points on a circle surrounding it. Extended radial gradients interpolate colors between a focal circle and a center circle. Points outside the cone defined by the two circles will be transparent. For simple radial gradients the focal point is adjusted to lie inside the center circle, whereas the focal point can have any position in an extended radial gradient.</p>
    /// <p>Outside the end points the gradient is either padded, reflected or repeated depending on the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread</a> method:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-reflect.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-repeat.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a> (default)</td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qradialgradient.html#center">center</a>(), <a href="http://doc.qt.io/qt-5/qradialgradient.html#focalPoint">focalPoint</a>() and <a href="http://doc.qt.io/qt-5/qradialgradient.html#radius">radius</a>() functions returning the gradient's center, focal point and radius respectively.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRadialGradient>>,
    ) -> ::cpp_core::MutRef<crate::QRadialGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_operator_(
            self as *mut crate::QRadialGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRadialGradient>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the focal point of this radial gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QRadialGradient::focalPoint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#focalPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the focal point of this radial gradient in logical coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#setFocalPoint">setFocalPoint</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">QGradient::stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn focal_point(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_focalPoint(
            self as *const crate::QRadialGradient,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the focal radius of this radial gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRadialGradient::focalRadius() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#focalRadius">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the focal radius of this radial gradient in logical coordinates.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#setFocalRadius">setFocalRadius</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">QGradient::stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn focal_radius(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_focalRadius(
            self as *const crate::QRadialGradient,
        )
    }

    /// <p>Constructs a simple radial gradient with the center and focal point at (0, 0) with a radius of 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRadialGradient::QRadialGradient()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#QRadialGradient">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a simple radial gradient with the center and focal point at (0, 0) with a radius of 1.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QRadialGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_QRadialGradient();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a simple radial gradient with the given <i>center</i>, <i>radius</i> and <i>focalPoint</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRadialGradient::QRadialGradient(const QPointF& center, double radius, const QPointF& focalPoint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#QRadialGradient-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a simple radial gradient with the given <i>center</i>, <i>radius</i> and <i>focalPoint</i>.</p>
    /// <p><b>Note: </b>If the given focal point is outside the circle defined by the <i>center</i> point and <i>radius</i>, it will be re-adjusted to lie at a point on the circle where it intersects with the line from <i>center</i> to <i>focalPoint</i>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point_f_double_q_point_f(
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        radius: ::std::os::raw::c_double,
        focal_point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QRadialGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_QRadialGradient1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(center)
                .as_raw_ptr(),
            radius,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(focal_point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a simple radial gradient with the given center (<i>cx</i>, <i>cy</i>), <i>radius</i> and focal point (<i>fx</i>, <i>fy</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRadialGradient::QRadialGradient(double cx, double cy, double radius, double fx, double fy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#QRadialGradient-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a simple radial gradient with the given center (<i>cx</i>, <i>cy</i>), <i>radius</i> and focal point (<i>fx</i>, <i>fy</i>).</p>
    /// <p><b>Note: </b>If the given focal point is outside the circle defined by the center (<i>cx</i>, <i>cy</i>) and the <i>radius</i> it will be re-adjusted to the intersection between the line from the center to the focal point and the circle.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_5_double(
        cx: ::std::os::raw::c_double,
        cy: ::std::os::raw::c_double,
        radius: ::std::os::raw::c_double,
        fx: ::std::os::raw::c_double,
        fy: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QRadialGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_QRadialGradient2(cx, cy, radius, fx, fy);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a simple radial gradient with the given <i>center</i>, <i>radius</i> and the focal point in the circle center.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRadialGradient::QRadialGradient(const QPointF& center, double radius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#QRadialGradient-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a simple radial gradient with the given <i>center</i>, <i>radius</i> and the focal point in the circle center.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point_f_double(
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        radius: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QRadialGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_QRadialGradient3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(center)
                .as_raw_ptr(),
            radius,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a simple radial gradient with the center at (<i>cx</i>, <i>cy</i>) and the specified <i>radius</i>. The focal point lies at the center of the circle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRadialGradient::QRadialGradient(double cx, double cy, double radius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#QRadialGradient-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a simple radial gradient with the center at (<i>cx</i>, <i>cy</i>) and the specified <i>radius</i>. The focal point lies at the center of the circle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_3_double(
        cx: ::std::os::raw::c_double,
        cy: ::std::os::raw::c_double,
        radius: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QRadialGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_QRadialGradient4(cx, cy, radius);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an extended radial gradient with the given <i>center</i>, <i>centerRadius</i>, <i>focalPoint</i>, and <i>focalRadius</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRadialGradient::QRadialGradient(const QPointF& center, double centerRadius, const QPointF& focalPoint, double focalRadius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#QRadialGradient-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an extended radial gradient with the given <i>center</i>, <i>centerRadius</i>, <i>focalPoint</i>, and <i>focalRadius</i>.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point_f_double_q_point_f_double(
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        center_radius: ::std::os::raw::c_double,
        focal_point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        focal_radius: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QRadialGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_QRadialGradient5(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(center)
                .as_raw_ptr(),
            center_radius,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(focal_point)
                .as_raw_ptr(),
            focal_radius,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an extended radial gradient with the given center (<i>cx</i>, <i>cy</i>), center radius, <i>centerRadius</i>, focal point, (<i>fx</i>, <i>fy</i>), and focal radius <i>focalRadius</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRadialGradient::QRadialGradient(double cx, double cy, double centerRadius, double fx, double fy, double focalRadius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#QRadialGradient-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an extended radial gradient with the given center (<i>cx</i>, <i>cy</i>), center radius, <i>centerRadius</i>, focal point, (<i>fx</i>, <i>fy</i>), and focal radius <i>focalRadius</i>.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn from_6_double(
        cx: ::std::os::raw::c_double,
        cy: ::std::os::raw::c_double,
        center_radius: ::std::os::raw::c_double,
        fx: ::std::os::raw::c_double,
        fy: ::std::os::raw::c_double,
        focal_radius: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QRadialGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_QRadialGradient6(
            cx,
            cy,
            center_radius,
            fx,
            fy,
            focal_radius,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a radial gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRadialGradient::QRadialGradient(const QRadialGradient& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a radial gradient brush.</p>
    /// <p>Qt supports both simple and extended radial gradients.</p>
    /// <p>Simple radial gradients interpolate colors between a focal point and end points on a circle surrounding it. Extended radial gradients interpolate colors between a focal circle and a center circle. Points outside the cone defined by the two circles will be transparent. For simple radial gradients the focal point is adjusted to lie inside the center circle, whereas the focal point can have any position in an extended radial gradient.</p>
    /// <p>Outside the end points the gradient is either padded, reflected or repeated depending on the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread</a> method:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-reflect.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-repeat.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a> (default)</td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qradialgradient.html#center">center</a>(), <a href="http://doc.qt.io/qt-5/qradialgradient.html#focalPoint">focalPoint</a>() and <a href="http://doc.qt.io/qt-5/qradialgradient.html#radius">radius</a>() functions returning the gradient's center, focal point and radius respectively.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRadialGradient>>,
    ) -> ::cpp_core::CppBox<crate::QRadialGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_QRadialGradient7(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRadialGradient>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the radius of this radial gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRadialGradient::radius() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#radius">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the radius of this radial gradient in logical coordinates.</p>
    /// <p>Equivalent to <a href="http://doc.qt.io/qt-5/qradialgradient.html#centerRadius">centerRadius</a>()</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#setRadius">setRadius</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">QGradient::stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn radius(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_radius(self as *const crate::QRadialGradient)
    }

    /// <p>Sets the center of this radial gradient in logical coordinates to <i>center</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRadialGradient::setCenter(const QPointF& center)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#setCenter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the center of this radial gradient in logical coordinates to <i>center</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#center">center</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_center_1a(
        &mut self,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_setCenter(
            self as *mut crate::QRadialGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(center)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRadialGradient::setCenter(double x, double y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#setCenter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the center of this radial gradient in logical coordinates to (<i>x</i>, <i>y</i>).</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#center">center</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_center_2a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_setCenter1(
            self as *mut crate::QRadialGradient,
            x,
            y,
        )
    }

    /// <p>Sets the center radius of this radial gradient in logical coordinates to <i>radius</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRadialGradient::setCenterRadius(double radius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#setCenterRadius">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the center radius of this radial gradient in logical coordinates to <i>radius</i></p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#centerRadius">centerRadius</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_center_radius(&mut self, radius: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_setCenterRadius(
            self as *mut crate::QRadialGradient,
            radius,
        )
    }

    /// <p>Sets the focal point of this radial gradient in logical coordinates to <i>focalPoint</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRadialGradient::setFocalPoint(const QPointF& focalPoint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#setFocalPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the focal point of this radial gradient in logical coordinates to <i>focalPoint</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#focalPoint">focalPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_focal_point_1a(
        &mut self,
        focal_point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_setFocalPoint(
            self as *mut crate::QRadialGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(focal_point)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRadialGradient::setFocalPoint(double x, double y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#setFocalPoint-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the focal point of this radial gradient in logical coordinates to (<i>x</i>, <i>y</i>).</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#focalPoint">focalPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_focal_point_2a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_setFocalPoint1(
            self as *mut crate::QRadialGradient,
            x,
            y,
        )
    }

    /// <p>Sets the focal radius of this radial gradient in logical coordinates to <i>radius</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRadialGradient::setFocalRadius(double radius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#setFocalRadius">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the focal radius of this radial gradient in logical coordinates to <i>radius</i></p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#focalRadius">focalRadius</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_focal_radius(&mut self, radius: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_setFocalRadius(
            self as *mut crate::QRadialGradient,
            radius,
        )
    }

    /// <p>Sets the radius of this radial gradient in logical coordinates to <i>radius</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRadialGradient::setRadius(double radius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html#setRadius">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the radius of this radial gradient in logical coordinates to <i>radius</i></p>
    /// <p>Equivalent to <a href="http://doc.qt.io/qt-5/qradialgradient.html#setCenterRadius">setCenterRadius</a>()</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qradialgradient.html#radius">radius</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_radius(&mut self, radius: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_setRadius(
            self as *mut crate::QRadialGradient,
            radius,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a conical gradient brush.</p>
///
/// C++ class: <span style='color: green;'>```QConicalGradient```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qconicalgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a conical gradient brush.</p>
/// <p>Conical gradients interpolate interpolate colors counter-clockwise around a center point.</p>
/// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qconicalgradient.png" alt=""></p><p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
/// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qconicalgradient.html#angle">angle</a>() and <a href="http://doc.qt.io/qt-5/qconicalgradient.html#center">center</a>() functions returning the start angle and center of the gradient.</p>
/// <p>Note that the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function has no effect for conical gradients. The reason is that the conical gradient is closed by definition, i.e. the conical gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.</p></div>
#[repr(C)]
pub struct QConicalGradient {
    _unused: u8,
}
impl QConicalGradient {
    /// <p>Returns the start angle of the conical gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QConicalGradient::angle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html#angle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the start angle of the conical gradient in logical coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qconicalgradient.html#setAngle">setAngle</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn angle(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_angle(self as *const crate::QConicalGradient)
    }

    /// <p>Returns the center of the conical gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QConicalGradient::center() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html#center">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the center of the conical gradient in logical coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qconicalgradient.html#setCenter">setCenter</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#stops">stops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn center(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_center(
            self as *const crate::QConicalGradient,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a conical gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QConicalGradient& QConicalGradient::operator=(const QConicalGradient& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a conical gradient brush.</p>
    /// <p>Conical gradients interpolate interpolate colors counter-clockwise around a center point.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qconicalgradient.png" alt=""></p><p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qconicalgradient.html#angle">angle</a>() and <a href="http://doc.qt.io/qt-5/qconicalgradient.html#center">center</a>() functions returning the start angle and center of the gradient.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function has no effect for conical gradients. The reason is that the conical gradient is closed by definition, i.e. the conical gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QConicalGradient>>,
    ) -> ::cpp_core::MutRef<crate::QConicalGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_operator_(
            self as *mut crate::QConicalGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QConicalGradient>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a conical with center at (0, 0) starting the interpolation at angle 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QConicalGradient::QConicalGradient()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html#QConicalGradient">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a conical with center at (0, 0) starting the interpolation at angle 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>(), <a href="http://doc.qt.io/qt-5/qconicalgradient.html#setCenter">setCenter</a>(), and <a href="http://doc.qt.io/qt-5/qconicalgradient.html#setAngle">setAngle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QConicalGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_QConicalGradient();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a conical gradient with the given <i>center</i>, starting the interpolation at the given <i>angle</i>. The <i>angle</i> must be specified in degrees between 0 and 360.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QConicalGradient::QConicalGradient(const QPointF& center, double startAngle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html#QConicalGradient-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a conical gradient with the given <i>center</i>, starting the interpolation at the given <i>angle</i>. The <i>angle</i> must be specified in degrees between 0 and 360.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        start_angle: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QConicalGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_QConicalGradient1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(center)
                .as_raw_ptr(),
            start_angle,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a conical gradient with the given center (<i>cx</i>, <i>cy</i>), starting the interpolation at the given <i>angle</i>. The angle must be specified in degrees between 0 and 360.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QConicalGradient::QConicalGradient(double cx, double cy, double startAngle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html#QConicalGradient-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a conical gradient with the given center (<i>cx</i>, <i>cy</i>), starting the interpolation at the given <i>angle</i>. The angle must be specified in degrees between 0 and 360.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() and <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        cx: ::std::os::raw::c_double,
        cy: ::std::os::raw::c_double,
        start_angle: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QConicalGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_QConicalGradient2(cx, cy, start_angle);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a conical gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QConicalGradient::QConicalGradient(const QConicalGradient& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a conical gradient brush.</p>
    /// <p>Conical gradients interpolate interpolate colors counter-clockwise around a center point.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qconicalgradient.png" alt=""></p><p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qconicalgradient.html#angle">angle</a>() and <a href="http://doc.qt.io/qt-5/qconicalgradient.html#center">center</a>() functions returning the start angle and center of the gradient.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function has no effect for conical gradients. The reason is that the conical gradient is closed by definition, i.e. the conical gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QConicalGradient>>,
    ) -> ::cpp_core::CppBox<crate::QConicalGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_QConicalGradient3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QConicalGradient>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets <i>angle</i> to be the start angle for this conical gradient in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QConicalGradient::setAngle(double angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html#setAngle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <i>angle</i> to be the start angle for this conical gradient in logical coordinates.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qconicalgradient.html#angle">angle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_angle(&mut self, angle: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_setAngle(
            self as *mut crate::QConicalGradient,
            angle,
        )
    }

    /// <p>Sets the center of this conical gradient in logical coordinates to <i>center</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QConicalGradient::setCenter(const QPointF& center)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html#setCenter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the center of this conical gradient in logical coordinates to <i>center</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qconicalgradient.html#center">center</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_center_1a(
        &mut self,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_setCenter(
            self as *mut crate::QConicalGradient,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(center)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QConicalGradient::setCenter(double x, double y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html#setCenter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the center of this conical gradient in logical coordinates to (<i>x</i>, <i>y</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qconicalgradient.html#center">center</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_center_2a(
        &mut self,
        x: ::std::os::raw::c_double,
        y: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_setCenter1(
            self as *mut crate::QConicalGradient,
            x,
            y,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpen.html">QPen</a> class defines how a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> should draw lines and outlines of shapes.</p>
///
/// C++ class: <span style='color: green;'>```QPen```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpen.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpen.html">QPen</a> class defines how a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> should draw lines and outlines of shapes.</p>
/// <p>A pen has a <a href="http://doc.qt.io/qt-5/qpen.html#style">style</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#brush">brush</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#capStyle">capStyle</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#joinStyle">joinStyle</a>().</p>
/// <p>The pen style defines the line type. The brush is used to fill strokes generated with the pen. Use the <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> class to specify fill styles. The cap style determines the line end caps that can be drawn using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>, while the join style describes how joins between two lines are drawn. The pen width can be specified in both integer (<a href="http://doc.qt.io/qt-5/qpen.html#width">width</a>()) and floating point (<a href="http://doc.qt.io/qt-5/qpen.html#widthF">widthF</a>()) precision. A line width of zero indicates a cosmetic pen. This means that the pen width is always drawn one pixel wide, independent of the <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">transformation</a> set on the painter.</p>
/// <p>The various settings can easily be modified using the corresponding <a href="http://doc.qt.io/qt-5/qpen.html#setStyle">setStyle</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setBrush">setBrush</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setCapStyle">setCapStyle</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#setJoinStyle">setJoinStyle</a>() functions (note that the painter's pen must be reset when altering the pen's properties).</p>
/// <p>For example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html#QPen">QPen</a></span> pen(<span class="type">Qt</span><span class="operator">::</span>green<span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>DashDotLine<span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>RoundCap<span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>RoundJoin);
///   painter<span class="operator">.</span>setPen(pen);
///
/// </pre>
/// <p>which is equivalent to</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html#QPen">QPen</a></span> pen;  <span class="comment">// creates a default pen</span>
///
///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DashDotLine);
///   pen<span class="operator">.</span>setWidth(<span class="number">3</span>);
///   pen<span class="operator">.</span>setBrush(<span class="type">Qt</span><span class="operator">::</span>green);
///   pen<span class="operator">.</span>setCapStyle(<span class="type">Qt</span><span class="operator">::</span>RoundCap);
///   pen<span class="operator">.</span>setJoinStyle(<span class="type">Qt</span><span class="operator">::</span>RoundJoin);
///
///   painter<span class="operator">.</span>setPen(pen);
///
/// </pre>
/// <p>The default pen is a solid black brush with 1 width, square cap style (<a href="http://doc.qt.io/qt-5/qt.html#PenCapStyle-enum">Qt::SquareCap</a>), and bevel join style (<a href="http://doc.qt.io/qt-5/qt.html#PenJoinStyle-enum">Qt::BevelJoin</a>).</p>
/// <p>In addition <a href="http://doc.qt.io/qt-5/qpen.html">QPen</a> provides the <a href="http://doc.qt.io/qt-5/qpen.html#color">color</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#setColor">setColor</a>() convenience functions to extract and set the color of the pen's brush, respectively. Pens may also be compared and streamed.</p>
/// <p>For more information about painting in general, see the <a href="http://doc.qt.io/qt-5/paintsystem.html">Paint System</a> documentation.</p>
/// <a name="pen-style"></a></div>
#[repr(C)]
pub struct QPen {
    _unused: u8,
}
impl QPen {
    /// <p>Returns the brush used to fill strokes generated with this pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QPen::brush() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#brush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush used to fill strokes generated with this pen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setBrush">setBrush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn brush(&self) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_brush(self as *const crate::QPen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the pen's cap style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::PenCapStyle QPen::capStyle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#capStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pen's cap style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setCapStyle">setCapStyle</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#cap-style">Cap Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn cap_style(&self) -> ::qt_core::PenCapStyle {
        crate::__ffi::ctr_qt_gui_ffi_QPen_capStyle(self as *const crate::QPen)
    }

    /// <p>Returns the color of this pen's brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QPen::color() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#color">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color of this pen's brush.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#brush">brush</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#setColor">setColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn color(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_color(self as *const crate::QPen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns the given <i>pen</i> to this pen and returns a reference to this pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPen& QPen::operator=(const QPen& pen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the given <i>pen</i> to this pen and returns a reference to this pen.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        pen: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPen>>,
    ) -> ::cpp_core::MutRef<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_operator_(
            self as *mut crate::QPen,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPen>>::cast_into(pen).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the dash offset for the pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPen::dashOffset() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#dashOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dash offset for the pen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setDashOffset">setDashOffset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn dash_offset(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPen_dashOffset(self as *const crate::QPen)
    }

    /// <p>Returns the dash pattern of this pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double> QPen::dashPattern() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#dashPattern">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dash pattern of this pen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setDashPattern">setDashPattern</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#style">style</a>(), and <a href="http://doc.qt.io/qt-5/qpen.html#isSolid">isSolid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn dash_pattern(&self) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_dashPattern(self as *const crate::QPen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the pen is cosmetic; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPen::isCosmetic() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#isCosmetic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the pen is cosmetic; otherwise returns <code>false</code>.</p>
    /// <p>Cosmetic pens are used to draw strokes that have a constant width regardless of any transformations applied to the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> they are used with. Drawing a shape with a cosmetic pen ensures that its outline will have the same thickness at different scale factors.</p>
    /// <p>A zero width pen is cosmetic by default.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setCosmetic">setCosmetic</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#widthF">widthF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_cosmetic(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPen_isCosmetic(self as *const crate::QPen)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QPen::isDetached()```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPen_isDetached(self as *mut crate::QPen)
    }

    /// <p>Returns <code>true</code> if the pen has a solid fill, otherwise false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPen::isSolid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#isSolid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the pen has a solid fill, otherwise false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#style">style</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#dashPattern">dashPattern</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_solid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPen_isSolid(self as *const crate::QPen)
    }

    /// <p>Returns the pen's join style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::PenJoinStyle QPen::joinStyle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#joinStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pen's join style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setJoinStyle">setJoinStyle</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#join-style">Join Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn join_style(&self) -> ::qt_core::PenJoinStyle {
        crate::__ffi::ctr_qt_gui_ffi_QPen_joinStyle(self as *const crate::QPen)
    }

    /// <p>Returns the miter limit of the pen. The miter limit is only relevant when the join style is set to <a href="http://doc.qt.io/qt-5/qt.html#PenJoinStyle-enum">Qt::MiterJoin</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPen::miterLimit() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#miterLimit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the miter limit of the pen. The miter limit is only relevant when the join style is set to <a href="http://doc.qt.io/qt-5/qt.html#PenJoinStyle-enum">Qt::MiterJoin</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setMiterLimit">setMiterLimit</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#join-style">Join Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn miter_limit(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPen_miterLimit(self as *const crate::QPen)
    }

    /// <p>Constructs a default black solid line pen with 1 width.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPen::QPen()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#QPen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a default black solid line pen with 1 width.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_QPen();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a black pen with 1 width and the given <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPen::QPen(Qt::PenStyle arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#QPen-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a black pen with 1 width and the given <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setStyle">setStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_pen_style(arg1: ::qt_core::PenStyle) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_QPen1(arg1);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a solid line pen with 1 width and the given <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPen::QPen(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#QPen-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a solid line pen with 1 width and the given <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setBrush">setBrush</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#setColor">setColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_color(
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_QPen2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pen with the specified <i>brush</i>, <i>width</i>, pen <i>style</i>, <i>cap</i> style and <i>join</i> style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPen::QPen(const QBrush& brush, double width, Qt::PenStyle s = …, Qt::PenCapStyle c = …, Qt::PenJoinStyle j = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#QPen-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pen with the specified <i>brush</i>, <i>width</i>, pen <i>style</i>, <i>cap</i> style and <i>join</i> style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setBrush">setBrush</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setStyle">setStyle</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setCapStyle">setCapStyle</a>(), and <a href="http://doc.qt.io/qt-5/qpen.html#setJoinStyle">setJoinStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_brush_double_pen_style_pen_cap_style_pen_join_style(
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        width: ::std::os::raw::c_double,
        s: ::qt_core::PenStyle,
        c: ::qt_core::PenCapStyle,
        j: ::qt_core::PenJoinStyle,
    ) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_QPen3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
            width,
            s,
            c,
            j,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pen with the specified <i>brush</i>, <i>width</i>, pen <i>style</i>, <i>cap</i> style and <i>join</i> style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPen::QPen(const QBrush& brush, double width, Qt::PenStyle s = …, Qt::PenCapStyle c = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#QPen-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pen with the specified <i>brush</i>, <i>width</i>, pen <i>style</i>, <i>cap</i> style and <i>join</i> style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setBrush">setBrush</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setStyle">setStyle</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setCapStyle">setCapStyle</a>(), and <a href="http://doc.qt.io/qt-5/qpen.html#setJoinStyle">setJoinStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_brush_double_pen_style_pen_cap_style(
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        width: ::std::os::raw::c_double,
        s: ::qt_core::PenStyle,
        c: ::qt_core::PenCapStyle,
    ) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_QPen6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
            width,
            s,
            c,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pen with the specified <i>brush</i>, <i>width</i>, pen <i>style</i>, <i>cap</i> style and <i>join</i> style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPen::QPen(const QBrush& brush, double width, Qt::PenStyle s = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#QPen-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pen with the specified <i>brush</i>, <i>width</i>, pen <i>style</i>, <i>cap</i> style and <i>join</i> style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setBrush">setBrush</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setStyle">setStyle</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setCapStyle">setCapStyle</a>(), and <a href="http://doc.qt.io/qt-5/qpen.html#setJoinStyle">setJoinStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_brush_double_pen_style(
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        width: ::std::os::raw::c_double,
        s: ::qt_core::PenStyle,
    ) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_QPen7(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
            width,
            s,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pen with the specified <i>brush</i>, <i>width</i>, pen <i>style</i>, <i>cap</i> style and <i>join</i> style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPen::QPen(const QBrush& brush, double width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#QPen-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pen with the specified <i>brush</i>, <i>width</i>, pen <i>style</i>, <i>cap</i> style and <i>join</i> style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setBrush">setBrush</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setStyle">setStyle</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setCapStyle">setCapStyle</a>(), and <a href="http://doc.qt.io/qt-5/qpen.html#setJoinStyle">setJoinStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_brush_double(
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        width: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_QPen8(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
            width,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pen that is a copy of the given <i>pen</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPen::QPen(const QPen& pen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#QPen-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pen that is a copy of the given <i>pen</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        pen: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPen>>,
    ) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPen_QPen4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPen>>::cast_into(pen).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the brush used to fill strokes generated with this pen to the given <i>brush</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setBrush(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setBrush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush used to fill strokes generated with this pen to the given <i>brush</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#brush">brush</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#setColor">setColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_brush(
        &mut self,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setBrush(
            self as *mut crate::QPen,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>Sets the pen's cap style to the given <i>style</i>. The default value is <a href="http://doc.qt.io/qt-5/qt.html#PenCapStyle-enum">Qt::SquareCap</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setCapStyle(Qt::PenCapStyle pcs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setCapStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pen's cap style to the given <i>style</i>. The default value is <a href="http://doc.qt.io/qt-5/qt.html#PenCapStyle-enum">Qt::SquareCap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#capStyle">capStyle</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#cap-style">Cap Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_cap_style(&mut self, pcs: ::qt_core::PenCapStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setCapStyle(self as *mut crate::QPen, pcs)
    }

    /// <p>Sets the color of this pen's brush to the given <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setColor(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color of this pen's brush to the given <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setBrush">setBrush</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#color">color</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_color(
        &mut self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setColor(
            self as *mut crate::QPen,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>Sets this pen to cosmetic or non-cosmetic, depending on the value of <i>cosmetic</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setCosmetic(bool cosmetic)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setCosmetic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets this pen to cosmetic or non-cosmetic, depending on the value of <i>cosmetic</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#isCosmetic">isCosmetic</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cosmetic(&mut self, cosmetic: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setCosmetic(self as *mut crate::QPen, cosmetic)
    }

    /// <p>Sets the dash offset (the starting point on the dash pattern) for this pen to the <i>offset</i> specified. The offset is measured in terms of the units used to specify the dash pattern.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setDashOffset(double doffset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setDashOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the dash offset (the starting point on the dash pattern) for this pen to the <i>offset</i> specified. The offset is measured in terms of the units used to specify the dash pattern.</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpen-dashpattern.png" alt=""></td><td>For example, a pattern where each stroke is four units long, followed by a gap of two units, will begin with the stroke when drawn as a line.<p>However, if the dash offset is set to 4.0, any line drawn will begin with the gap. Values of the offset up to 4.0 will cause part of the stroke to be drawn first, and values of the offset between 4.0 and 6.0 will cause the line to begin with part of the gap.</p>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>Note: </b>This implicitly converts the style of the pen to <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::CustomDashLine</a>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#dashOffset">dashOffset</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_dash_offset(&mut self, doffset: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setDashOffset(self as *mut crate::QPen, doffset)
    }

    /// <p>Sets the dash pattern for this pen to the given <i>pattern</i>. This implicitly converts the style of the pen to <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::CustomDashLine</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setDashPattern(const QVector<double>& pattern)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setDashPattern">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the dash pattern for this pen to the given <i>pattern</i>. This implicitly converts the style of the pen to <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::CustomDashLine</a>.</p>
    /// <p>The pattern must be specified as an even number of positive entries where the entries 1, 3, 5... are the dashes and 2, 4, 6... are the spaces. For example:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpen-custom.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html#QPen">QPen</a></span> pen;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span><span class="operator">&gt;</span> dashes;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span> space <span class="operator">=</span> <span class="number">4</span>;
    ///   dashes <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> space <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">3</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> space <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">9</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> space
    /// &#32;   &#32;   &#32;    <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">27</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> space <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">9</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> space;
    ///   pen<span class="operator">.</span>setDashPattern(dashes);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The dash pattern is specified in units of the pens width; e.g. a dash of length 5 in width 10 is 50 pixels long. Note that a pen with zero width is equivalent to a cosmetic pen with a width of 1 pixel.</p>
    /// <p>Each dash is also subject to cap styles so a dash of 1 with square cap set will extend 0.5 pixels out in each direction resulting in a total width of 2.</p>
    /// <p>Note that the default cap style is <a href="http://doc.qt.io/qt-5/qt.html#PenCapStyle-enum">Qt::SquareCap</a>, meaning that a square line end covers the end point and extends beyond it by half the line width.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setStyle">setStyle</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#dashPattern">dashPattern</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setCapStyle">setCapStyle</a>(), and <a href="http://doc.qt.io/qt-5/qpen.html#setCosmetic">setCosmetic</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_dash_pattern(
        &mut self,
        pattern: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setDashPattern(
            self as *mut crate::QPen,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(pattern)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the pen's join style to the given <i>style</i>. The default value is <a href="http://doc.qt.io/qt-5/qt.html#PenJoinStyle-enum">Qt::BevelJoin</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setJoinStyle(Qt::PenJoinStyle pcs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setJoinStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pen's join style to the given <i>style</i>. The default value is <a href="http://doc.qt.io/qt-5/qt.html#PenJoinStyle-enum">Qt::BevelJoin</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#joinStyle">joinStyle</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#join-style">Join Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_join_style(&mut self, pcs: ::qt_core::PenJoinStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setJoinStyle(self as *mut crate::QPen, pcs)
    }

    /// <p>Sets the miter limit of this pen to the given <i>limit</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setMiterLimit(double limit)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setMiterLimit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the miter limit of this pen to the given <i>limit</i>.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qpen-miterlimit.png" alt=""></p><p>The miter limit describes how far a miter join can extend from the join point. This is used to reduce artifacts between line joins where the lines are close to parallel.</p>
    /// <p>This value does only have effect when the pen style is set to <a href="http://doc.qt.io/qt-5/qt.html#PenJoinStyle-enum">Qt::MiterJoin</a>. The value is specified in units of the pen's width, e.g. a miter limit of 5 in width 10 is 50 pixels long. The default miter limit is 2, i.e. twice the pen width in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#miterLimit">miterLimit</a>(), <a href="http://doc.qt.io/qt-5/qpen.html#setJoinStyle">setJoinStyle</a>(), and <a href="http://doc.qt.io/qt-5/qpen.html#join-style">Join Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_miter_limit(&mut self, limit: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setMiterLimit(self as *mut crate::QPen, limit)
    }

    /// <p>Sets the pen style to the given <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setStyle(Qt::PenStyle arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pen style to the given <i>style</i>.</p>
    /// <p>See the <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::PenStyle</a> documentation for a list of the available styles. Since Qt 4.1 it is also possible to specify a custom dash pattern using the <a href="http://doc.qt.io/qt-5/qpen.html#setDashPattern">setDashPattern</a>() function which implicitly converts the style of the pen to <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::CustomDashLine</a>.</p>
    /// <p><b>Note: </b>This function resets the dash offset to zero.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#style">style</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#pen-style">Pen Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_style(&mut self, arg1: ::qt_core::PenStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setStyle(self as *mut crate::QPen, arg1)
    }

    /// <p>Sets the pen width to the given <i>width</i> in pixels with integer precision.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setWidth(int width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pen width to the given <i>width</i> in pixels with integer precision.</p>
    /// <p>A line width of zero indicates a cosmetic pen. This means that the pen width is always drawn one pixel wide, independent of the <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">transformation</a> set on the painter.</p>
    /// <p>Setting a pen width with a negative value is not supported.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setWidthF">setWidthF</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width(&mut self, width: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setWidth(self as *mut crate::QPen, width)
    }

    /// <p>Sets the pen width to the given <i>width</i> in pixels with floating point precision.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::setWidthF(double width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#setWidthF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pen width to the given <i>width</i> in pixels with floating point precision.</p>
    /// <p>A line width of zero indicates a cosmetic pen. This means that the pen width is always drawn one pixel wide, independent of the <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">transformation</a> on the painter.</p>
    /// <p>Setting a pen width with a negative value is not supported.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setWidth">setWidth</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#widthF">widthF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width_f(&mut self, width: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_setWidthF(self as *mut crate::QPen, width)
    }

    /// <p>Returns the pen style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::PenStyle QPen::style() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#style">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pen style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setStyle">setStyle</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#pen-style">Pen Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn style(&self) -> ::qt_core::PenStyle {
        crate::__ffi::ctr_qt_gui_ffi_QPen_style(self as *const crate::QPen)
    }

    /// <p>Swaps pen <i>other</i> with this pen. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPen::swap(QPen& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps pen <i>other</i> with this pen. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_swap(
            self as *mut crate::QPen,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPen>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the pen as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QPen::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pen as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPen_operator_QVariant(self as *const crate::QPen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the pen width with integer precision.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPen::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pen width with integer precision.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setWidth">setWidth</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#widthF">widthF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPen_width(self as *const crate::QPen)
    }

    /// <p>Returns the pen width with floating point precision.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPen::widthF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#widthF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pen width with floating point precision.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#setWidthF">setWidthF</a>() and <a href="http://doc.qt.io/qt-5/qpen.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPen_widthF(self as *const crate::QPen)
    }
}

pub mod q_text_option {
    //! C++ type: <span style='color: green;'>```QTextOption```</span>

    /// <p>This enum holds the different types of tabulator</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextOption::TabType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#TabType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum holds the different types of tabulator</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.4.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct TabType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for TabType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            TabType(value)
        }
    }

    impl From<TabType> for ::std::os::raw::c_int {
        fn from(value: TabType) -> Self {
            value.0
        }
    }

    impl TabType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl TabType {
        /// A left-tab (C++ enum variant: <span style='color: green;'>```LeftTab = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const LeftTab: crate::q_text_option::TabType = crate::q_text_option::TabType(0);
        /// A right-tab (C++ enum variant: <span style='color: green;'>```RightTab = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const RightTab: crate::q_text_option::TabType = crate::q_text_option::TabType(1);
        /// A centered-tab (C++ enum variant: <span style='color: green;'>```CenterTab = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const CenterTab: crate::q_text_option::TabType = crate::q_text_option::TabType(2);
        /// A tab stopping at a certain delimiter-character (C++ enum variant: <span style='color: green;'>```DelimiterTab = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const DelimiterTab: crate::q_text_option::TabType = crate::q_text_option::TabType(3);
    }

    /// <p>Each tab definition is represented by this struct.</p>
    ///
    /// C++ class: <span style='color: green;'>```QTextOption::Tab```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption-tab.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Each tab definition is represented by this struct.</p></div>
    #[repr(C)]
    pub struct Tab {
        _unused: u8,
    }
    impl Tab {
        /// <p>Each tab definition is represented by this struct.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QTextOption::Tab::operator=(const QTextOption::Tab& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextoption-tab.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Each tab definition is represented by this struct.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
        ) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_operator_(
                self as *mut crate::q_text_option::Tab,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a reference to the <span style='color: green;'>```delimiter```</span> field.
        #[inline(always)]
        pub unsafe fn delimiter(&self) -> ::cpp_core::Ref<::qt_core::QChar> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_delimiter(
                self as *const crate::q_text_option::Tab,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```delimiter```</span> field.
        #[inline(always)]
        pub unsafe fn delimiter_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QChar> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_delimiter_mut(
                self as *mut crate::q_text_option::Tab,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Creates a default left tab with position 80.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextOption::Tab::Tab()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextoption-tab.html#Tab">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a default left tab with position 80.</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_Tab();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextOption::Tab::Tab(double pos, QTextOption::TabType tabType, QChar delim = …)```</span>.
        #[inline(always)]
        pub unsafe fn new_3a(
            pos: ::std::os::raw::c_double,
            tab_type: crate::q_text_option::TabType,
            delim: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
        ) -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_Tab1(
                pos,
                tab_type,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(delim)
                    .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextOption::Tab::Tab(double pos, QTextOption::TabType tabType)```</span>.
        #[inline(always)]
        pub unsafe fn new_2a(
            pos: ::std::os::raw::c_double,
            tab_type: crate::q_text_option::TabType,
        ) -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_Tab3(pos, tab_type);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Each tab definition is represented by this struct.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextOption::Tab::Tab(const QTextOption::Tab& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextoption-tab.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Each tab definition is represented by this struct.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
        ) -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_Tab2(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Returns the value of the <span style='color: green;'>```position```</span> field.
        #[inline(always)]
        pub unsafe fn position(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_position(
                self as *const crate::q_text_option::Tab,
            )
        }

        /// Sets the value of the <span style='color: green;'>```delimiter```</span> field.
        #[inline(always)]
        pub unsafe fn set_delimiter(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QTextOption_Tab_delimiter(
                self as *mut crate::q_text_option::Tab,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Sets the value of the <span style='color: green;'>```position```</span> field.
        #[inline(always)]
        pub unsafe fn set_position(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QTextOption_Tab_position(
                self as *mut crate::q_text_option::Tab,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```type```</span> field.
        #[inline(always)]
        pub unsafe fn set_type(&mut self, value: crate::q_text_option::TabType) {
            crate::__ffi::ctr_qt_gui_ffi_set_QTextOption_Tab_type(
                self as *mut crate::q_text_option::Tab,
                value,
            )
        }

        /// Returns the value of the <span style='color: green;'>```type```</span> field.
        #[inline(always)]
        pub unsafe fn type_(&self) -> crate::q_text_option::TabType {
            crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_type(
                self as *const crate::q_text_option::Tab,
            )
        }
    }

    /// <p>This enum describes how text is wrapped in a document.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextOption::WrapMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#WrapMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes how text is wrapped in a document.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct WrapMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for WrapMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            WrapMode(value)
        }
    }

    impl From<WrapMode> for ::std::os::raw::c_int {
        fn from(value: WrapMode) -> Self {
            value.0
        }
    }

    impl WrapMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl WrapMode {
        /// Text is not wrapped at all. (C++ enum variant: <span style='color: green;'>```NoWrap = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoWrap: crate::q_text_option::WrapMode = crate::q_text_option::WrapMode(0);
        /// Text is wrapped at word boundaries. (C++ enum variant: <span style='color: green;'>```WordWrap = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const WordWrap: crate::q_text_option::WrapMode = crate::q_text_option::WrapMode(1);
        /// Same as QTextOption::NoWrap (C++ enum variant: <span style='color: green;'>```ManualWrap = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ManualWrap: crate::q_text_option::WrapMode = crate::q_text_option::WrapMode(2);
        /// Text can be wrapped at any point on a line, even if it occurs in the middle of a word. (C++ enum variant: <span style='color: green;'>```WrapAnywhere = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const WrapAnywhere: crate::q_text_option::WrapMode = crate::q_text_option::WrapMode(3);
        /// If possible, wrapping occurs at a word boundary; otherwise it will occur at the appropriate point on the line, even in the middle of a word. (C++ enum variant: <span style='color: green;'>```WrapAtWordBoundaryOrAnywhere = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const WrapAtWordBoundaryOrAnywhere: crate::q_text_option::WrapMode =
            crate::q_text_option::WrapMode(4);
    }

    /// <p>The Flags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;Flag&gt;. It stores an OR combination of Flag values.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextOption::Flag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#Flag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The Flags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;Flag&gt;. It stores an OR combination of Flag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Flag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Flag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Flag(value)
        }
    }

    impl From<Flag> for ::std::os::raw::c_int {
        fn from(value: Flag) -> Self {
            value.0
        }
    }

    impl Flag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Flag {
        /// Visualize spaces with little dots, and tabs with little arrows. (C++ enum variant: <span style='color: green;'>```ShowTabsAndSpaces = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ShowTabsAndSpaces: crate::q_text_option::Flag = crate::q_text_option::Flag(1);
        /// Visualize line and paragraph separators with appropriate symbol characters. (C++ enum variant: <span style='color: green;'>```ShowLineAndParagraphSeparators = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ShowLineAndParagraphSeparators: crate::q_text_option::Flag =
            crate::q_text_option::Flag(2);
        /// While determining the line-break positions take into account the space added for drawing a separator character. (C++ enum variant: <span style='color: green;'>```AddSpaceForLineAndParagraphSeparators = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const AddSpaceForLineAndParagraphSeparators: crate::q_text_option::Flag =
            crate::q_text_option::Flag(4);
        /// Suppress all color changes in the character formats (except the main selection). (C++ enum variant: <span style='color: green;'>```SuppressColors = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const SuppressColors: crate::q_text_option::Flag = crate::q_text_option::Flag(8);
        /// Visualize the end of the document with a section sign. This enum value was added in Qt 5.7. (C++ enum variant: <span style='color: green;'>```ShowDocumentTerminator = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const ShowDocumentTerminator: crate::q_text_option::Flag =
            crate::q_text_option::Flag(16);
        /// When this option is set, <a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextWidth">QTextLine::naturalTextWidth</a>() and naturalTextRect() will return a value that includes the width of trailing spaces in the text; otherwise this width is excluded. (C++ enum variant: <span style='color: green;'>```IncludeTrailingSpaces = -2147483648```</span>)
        #[allow(non_upper_case_globals)]
        pub const IncludeTrailingSpaces: crate::q_text_option::Flag =
            crate::q_text_option::Flag(-2147483648);
    }

    impl From<crate::q_text_option::Flag> for ::qt_core::QFlags<crate::q_text_option::Flag> {
        fn from(value: crate::q_text_option::Flag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_text_option::Flag>>> std::ops::BitOr<T>
        for crate::q_text_option::Flag
    {
        type Output = ::qt_core::QFlags<crate::q_text_option::Flag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_text_option::Flag> {
            Into::<::qt_core::QFlags<crate::q_text_option::Flag>>::into(self) | rhs
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_text_option::Tab>>
        for crate::q_text_option::Tab
    {
        /// <p>Returns <code>true</code> if tab <i>other</i> is equal to this tab; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QTextOption::Tab::operator==(const QTextOption::Tab& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextoption-tab.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if tab <i>other</i> is equal to this tab; otherwise returns <code>false</code>.</p></div>
        #[inline(always)]
        fn eq(&self, other: &::cpp_core::Ref<crate::q_text_option::Tab>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_operator__(
                    self as *const crate::q_text_option::Tab,
                    other.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_text_option::Tab {
        /// <p>Each tab definition is represented by this struct.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextOption::Tab::~Tab()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextoption-tab.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Each tab definition is represented by this struct.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QTextOption_Tab_dTab(
                self as *mut crate::q_text_option::Tab,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextoption.html">QTextOption</a> class provides a description of general rich text properties.</p>
///
/// C++ class: <span style='color: green;'>```QTextOption```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextoption.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextoption.html">QTextOption</a> class provides a description of general rich text properties.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtextoption.html">QTextOption</a> is used to encapsulate common rich text properties in a single object. It contains information about text alignment, layout direction, word wrapping, and other standard properties associated with text rendering and layout.</p></div>
#[repr(C)]
pub struct QTextOption {
    _unused: u8,
}
impl QTextOption {
    /// <p>Returns the text alignment defined by the option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::AlignmentFlag> QTextOption::alignment() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#alignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text alignment defined by the option.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setAlignment">setAlignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alignment(&self) -> ::qt_core::QFlags<::qt_core::AlignmentFlag> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextOption_alignment(self as *const crate::QTextOption);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns <code>true</code> if the text option is the same as the <i>other</i> text option; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption& QTextOption::operator=(const QTextOption& o)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text option is the same as the <i>other</i> text option; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextOption>>,
    ) -> ::cpp_core::MutRef<crate::QTextOption> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_operator_(
            self as *mut crate::QTextOption,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextOption>>::cast_into(o).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the flags associated with the option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QTextOption::Flag> QTextOption::flags() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#flags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the flags associated with the option.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn flags(&self) -> ::qt_core::QFlags<crate::q_text_option::Flag> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextOption_flags(self as *const crate::QTextOption);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Constructs a text option with default properties for text. The text alignment property is set to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a>. The word wrap property is set to <a href="http://doc.qt.io/qt-5/qtextoption.html#WrapMode-enum">QTextOption::WordWrap</a>. The using of design metrics flag is set to false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextOption::QTextOption()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#QTextOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a text option with default properties for text. The text alignment property is set to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a>. The word wrap property is set to <a href="http://doc.qt.io/qt-5/qtextoption.html#WrapMode-enum">QTextOption::WordWrap</a>. The using of design metrics flag is set to false.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QTextOption> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_QTextOption();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a text option with the given <i>alignment</i> for text. The word wrap property is set to <a href="http://doc.qt.io/qt-5/qtextoption.html#WrapMode-enum">QTextOption::WordWrap</a>. The using of design metrics flag is set to false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextOption::QTextOption(QFlags<Qt::AlignmentFlag> alignment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#QTextOption-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a text option with the given <i>alignment</i> for text. The word wrap property is set to <a href="http://doc.qt.io/qt-5/qtextoption.html#WrapMode-enum">QTextOption::WordWrap</a>. The using of design metrics flag is set to false.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>,
    ) -> ::cpp_core::CppBox<crate::QTextOption> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_QTextOption1(alignment.to_int());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Construct a copy of the <i>other</i> text option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextOption::QTextOption(const QTextOption& o)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#QTextOption-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Construct a copy of the <i>other</i> text option.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextOption>>,
    ) -> ::cpp_core::CppBox<crate::QTextOption> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextOption_QTextOption2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextOption>>::cast_into(o).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the option's text alignment to the specified <i>alignment</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setAlignment(QFlags<Qt::AlignmentFlag> alignment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setAlignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the option's text alignment to the specified <i>alignment</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#alignment">alignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_alignment(&mut self, alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setAlignment(
            self as *mut crate::QTextOption,
            alignment.to_int(),
        )
    }

    /// <p>Sets the flags associated with the option to the given <i>flags</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setFlags(QFlags<QTextOption::Flag> flags)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setFlags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the flags associated with the option to the given <i>flags</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_flags(&mut self, flags: ::qt_core::QFlags<crate::q_text_option::Flag>) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setFlags(
            self as *mut crate::QTextOption,
            flags.to_int(),
        )
    }

    /// <p>Sets the tab positions for the text layout to those specified by <i>tabStops</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setTabArray(const QList<double>& tabStops)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the tab positions for the text layout to those specified by <i>tabStops</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#tabArray">tabArray</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabStop">setTabStop</a>(), and <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabs">setTabs</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_tab_array(
        &mut self,
        tab_stops: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setTabArray(
            self as *mut crate::QTextOption,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfDouble>>::cast_into(tab_stops)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the default distance in device units between tab stops to the value specified by <i>tabStop</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setTabStop(double tabStop)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabStop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the default distance in device units between tab stops to the value specified by <i>tabStop</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#tabStop">tabStop</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabArray">setTabArray</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabs">setTabs</a>(), and <a href="http://doc.qt.io/qt-5/qtextoption.html#tabs">tabs</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_tab_stop(&mut self, tab_stop: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setTabStop(
            self as *mut crate::QTextOption,
            tab_stop,
        )
    }

    /// <p>Sets the default distance in device units between tab stops to the value specified by <i>tabStopDistance</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setTabStopDistance(double tabStopDistance)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabStopDistance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the default distance in device units between tab stops to the value specified by <i>tabStopDistance</i>.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#tabStopDistance">tabStopDistance</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabArray">setTabArray</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabs">setTabs</a>(), and <a href="http://doc.qt.io/qt-5/qtextoption.html#tabs">tabs</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_tab_stop_distance(&mut self, tab_stop_distance: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setTabStopDistance(
            self as *mut crate::QTextOption,
            tab_stop_distance,
        )
    }

    /// <p>Set the Tab properties to <i>tabStops</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setTabs(const QList<QTextOption::Tab>& tabStops)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabs">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the Tab properties to <i>tabStops</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#tabStop">tabStop</a>() and <a href="http://doc.qt.io/qt-5/qtextoption.html#tabs">tabs</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_tabs(
        &mut self,
        tab_stops: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setTabs(
            self as *mut crate::QTextOption,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTab>>::cast_into(tab_stops)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the direction of the text layout defined by the option to the given <i>direction</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setTextDirection(Qt::LayoutDirection aDirection)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setTextDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the direction of the text layout defined by the option to the given <i>direction</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#textDirection">textDirection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_direction(&mut self, a_direction: ::qt_core::LayoutDirection) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setTextDirection(
            self as *mut crate::QTextOption,
            a_direction,
        )
    }

    /// <p>If <i>enable</i> is true then the layout will use design metrics; otherwise it will use the metrics of the paint device (which is the default behavior).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setUseDesignMetrics(bool b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setUseDesignMetrics">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enable</i> is true then the layout will use design metrics; otherwise it will use the metrics of the paint device (which is the default behavior).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#useDesignMetrics">useDesignMetrics</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_use_design_metrics(&mut self, b: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setUseDesignMetrics(
            self as *mut crate::QTextOption,
            b,
        )
    }

    /// <p>Sets the option's text wrap mode to the given <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextOption::setWrapMode(QTextOption::WrapMode wrap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#setWrapMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the option's text wrap mode to the given <i>mode</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#wrapMode">wrapMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_wrap_mode(&mut self, wrap: crate::q_text_option::WrapMode) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_setWrapMode(self as *mut crate::QTextOption, wrap)
    }

    /// <p>Returns a list of tab positions defined for the text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double> QTextOption::tabArray() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#tabArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of tab positions defined for the text layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setTabArray">setTabArray</a>() and <a href="http://doc.qt.io/qt-5/qtextoption.html#tabStop">tabStop</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tab_array(&self) -> ::cpp_core::CppBox<crate::QListOfDouble> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextOption_tabArray(self as *const crate::QTextOption);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the distance in device units between tab stops. Convenient function for the above method</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextOption::tabStop() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#tabStop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance in device units between tab stops. Convenient function for the above method</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setTabStop">setTabStop</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#tabArray">tabArray</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabs">setTabs</a>(), and <a href="http://doc.qt.io/qt-5/qtextoption.html#tabs">tabs</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tab_stop(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_tabStop(self as *const crate::QTextOption)
    }

    /// <p>Returns the distance in device units between tab stops.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextOption::tabStopDistance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#tabStopDistance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance in device units between tab stops.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setTabStopDistance">setTabStopDistance</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#tabArray">tabArray</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabs">setTabs</a>(), and <a href="http://doc.qt.io/qt-5/qtextoption.html#tabs">tabs</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tab_stop_distance(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_tabStopDistance(self as *const crate::QTextOption)
    }

    /// <p>Returns a list of tab positions defined for the text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab> QTextOption::tabs() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#tabs">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of tab positions defined for the text layout.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#tabStop">tabStop</a>(), <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabs">setTabs</a>(), and <a href="http://doc.qt.io/qt-5/qtextoption.html#setTabStop">setTabStop</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tabs(&self) -> ::cpp_core::CppBox<crate::QListOfTab> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextOption_tabs(self as *const crate::QTextOption);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the direction of the text layout defined by the option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::LayoutDirection QTextOption::textDirection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#textDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the direction of the text layout defined by the option.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setTextDirection">setTextDirection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_direction(&self) -> ::qt_core::LayoutDirection {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_textDirection(self as *const crate::QTextOption)
    }

    /// <p>Returns <code>true</code> if the layout uses design rather than device metrics; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextOption::useDesignMetrics() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#useDesignMetrics">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the layout uses design rather than device metrics; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setUseDesignMetrics">setUseDesignMetrics</a>().</p></div>
    #[inline(always)]
    pub unsafe fn use_design_metrics(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_useDesignMetrics(self as *const crate::QTextOption)
    }

    /// <p>Returns the text wrap mode defined by the option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::WrapMode QTextOption::wrapMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#wrapMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text wrap mode defined by the option.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setWrapMode">setWrapMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wrap_mode(&self) -> crate::q_text_option::WrapMode {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_wrapMode(self as *const crate::QTextOption)
    }
}

pub mod q_text_length {
    //! C++ type: <span style='color: green;'>```QTextLength```</span>

    /// <p>This enum describes the different types a length object can have.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextLength::Type```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html#Type-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different types a length object can have.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlength.html#type">type</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Type(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Type {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Type(value)
        }
    }

    impl From<Type> for ::std::os::raw::c_int {
        fn from(value: Type) -> Self {
            value.0
        }
    }

    impl Type {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Type {
        /// The width of the object is variable (C++ enum variant: <span style='color: green;'>```VariableLength = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const VariableLength: crate::q_text_length::Type = crate::q_text_length::Type(0);
        /// The width of the object is fixed (C++ enum variant: <span style='color: green;'>```FixedLength = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const FixedLength: crate::q_text_length::Type = crate::q_text_length::Type(1);
        /// The width of the object is in percentage of the maximum width (C++ enum variant: <span style='color: green;'>```PercentageLength = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const PercentageLength: crate::q_text_length::Type = crate::q_text_length::Type(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a> class encapsulates the different types of length used in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextLength```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextlength.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a> class encapsulates the different types of length used in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>When we specify a value for the length of an element in a text document, we often need to provide some other information so that the length is used in the way we expect. For example, when we specify a table width, the value can represent a fixed number of pixels, or it can be a percentage value. This information changes both the meaning of the value and the way it is used.</p>
/// <p>Generally, this class is used to specify table widths. These can be specified either as a fixed amount of pixels, as a percentage of the containing frame's width, or by a variable width that allows it to take up just the space it requires.</p></div>
#[repr(C)]
pub struct QTextLength {
    _unused: u8,
}
impl QTextLength {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a> class encapsulates the different types of length used in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength& QTextLength::operator=(const QTextLength& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a> class encapsulates the different types of length used in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>When we specify a value for the length of an element in a text document, we often need to provide some other information so that the length is used in the way we expect. For example, when we specify a table width, the value can represent a fixed number of pixels, or it can be a percentage value. This information changes both the meaning of the value and the way it is used.</p>
    /// <p>Generally, this class is used to specify table widths. These can be specified either as a fixed amount of pixels, as a percentage of the containing frame's width, or by a variable width that allows it to take up just the space it requires.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::cpp_core::MutRef<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLength_operator_(
            self as *mut crate::QTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a new length object which represents a variable size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLength::QTextLength()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html#QTextLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new length object which represents a variable size.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLength_QTextLength();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new length object of the given <i>type</i> and <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLength::QTextLength(QTextLength::Type type, double value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html#QTextLength-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new length object of the given <i>type</i> and <i>value</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        type_: crate::q_text_length::Type,
        value: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLength_QTextLength1(type_, value);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a> class encapsulates the different types of length used in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLength::QTextLength(const QTextLength& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a> class encapsulates the different types of length used in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>When we specify a value for the length of an element in a text document, we often need to provide some other information so that the length is used in the way we expect. For example, when we specify a table width, the value can represent a fixed number of pixels, or it can be a percentage value. This information changes both the meaning of the value and the way it is used.</p>
    /// <p>Generally, this class is used to specify table widths. These can be specified either as a fixed amount of pixels, as a percentage of the containing frame's width, or by a variable width that allows it to take up just the space it requires.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLength_QTextLength2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the constraint value that is specific for the type of the length. If the length is <a href="http://doc.qt.io/qt-5/qtextlength.html#Type-enum">QTextLength::PercentageLength</a> then the raw value is in percent, in the range of 0 to 100. If the length is <a href="http://doc.qt.io/qt-5/qtextlength.html#Type-enum">QTextLength::FixedLength</a> then that fixed amount is returned. For variable lengths, zero is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLength::rawValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html#rawValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the constraint value that is specific for the type of the length. If the length is <a href="http://doc.qt.io/qt-5/qtextlength.html#Type-enum">QTextLength::PercentageLength</a> then the raw value is in percent, in the range of 0 to 100. If the length is <a href="http://doc.qt.io/qt-5/qtextlength.html#Type-enum">QTextLength::FixedLength</a> then that fixed amount is returned. For variable lengths, zero is returned.</p></div>
    #[inline(always)]
    pub unsafe fn raw_value(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLength_rawValue(self as *const crate::QTextLength)
    }

    /// <p>Returns the text length as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QTextLength::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text length as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLength_operator_QVariant(
            self as *const crate::QTextLength,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the type of this length object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength::Type QTextLength::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of this length object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlength.html#Type-enum">QTextLength::Type</a>.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_text_length::Type {
        crate::__ffi::ctr_qt_gui_ffi_QTextLength_type(self as *const crate::QTextLength)
    }

    /// <p>Returns the effective length, constrained by the type of the length object and the specified <i>maximumLength</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLength::value(double maximumLength) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the effective length, constrained by the type of the length object and the specified <i>maximumLength</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlength.html#type">type</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(
        &self,
        maximum_length: ::std::os::raw::c_double,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLength_value(
            self as *const crate::QTextLength,
            maximum_length,
        )
    }
}

pub mod q_text_format {
    //! C++ type: <span style='color: green;'>```QTextFormat```</span>

    /// <p>This enum describes the text item a <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> object is formatting.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextFormat::FormatType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#FormatType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the text item a <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> object is formatting.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>, <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a>, <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a>, <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a>, and <a href="http://doc.qt.io/qt-5/qtextformat.html#type">type</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FormatType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FormatType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FormatType(value)
        }
    }

    impl From<FormatType> for ::std::os::raw::c_int {
        fn from(value: FormatType) -> Self {
            value.0
        }
    }

    impl FormatType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FormatType {
        /// An invalid format as created by the default constructor (C++ enum variant: <span style='color: green;'>```InvalidFormat = -1```</span>)
        #[allow(non_upper_case_globals)]
        pub const InvalidFormat: crate::q_text_format::FormatType =
            crate::q_text_format::FormatType(-1);
        /// The object formats a text block (C++ enum variant: <span style='color: green;'>```BlockFormat = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockFormat: crate::q_text_format::FormatType =
            crate::q_text_format::FormatType(1);
        /// The object formats a single character (C++ enum variant: <span style='color: green;'>```CharFormat = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const CharFormat: crate::q_text_format::FormatType =
            crate::q_text_format::FormatType(2);
        /// The object formats a list Unused Value, a table's FormatType is FrameFormat. (C++ enum variant: <span style='color: green;'>```ListFormat = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListFormat: crate::q_text_format::FormatType =
            crate::q_text_format::FormatType(3);
        /// C++ enum variant: <span style='color: green;'>```TableFormat = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const TableFormat: crate::q_text_format::FormatType =
            crate::q_text_format::FormatType(4);
        /// The object formats a frame (C++ enum variant: <span style='color: green;'>```FrameFormat = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameFormat: crate::q_text_format::FormatType =
            crate::q_text_format::FormatType(5);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```UserFormat = 100```</span>)
        #[allow(non_upper_case_globals)]
        pub const UserFormat: crate::q_text_format::FormatType =
            crate::q_text_format::FormatType(100);
    }

    /// <p>This enum describes the different properties a format can have.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextFormat::Property```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different properties a format can have.</p>
    ///
    /// <p>Paragraph and character properties</p>
    ///
    /// <p>Paragraph properties</p>
    ///
    /// <p>Character properties</p>
    ///
    /// <p>List properties</p>
    ///
    /// <p>Table and frame properties</p>
    ///
    /// <p>Table cell properties</p>
    ///
    /// <p>Image properties</p>
    ///
    /// <p>Selection properties</p>
    ///
    /// <p>Page break properties</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#property">property</a>() and <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Property(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Property {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Property(value)
        }
    }

    impl From<Property> for ::std::os::raw::c_int {
        fn from(value: Property) -> Self {
            value.0
        }
    }

    impl Property {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Property {
        /// The index of the formatted object. See <a href="http://doc.qt.io/qt-5/qtextformat.html#objectIndex">objectIndex</a>(). (C++ enum variant: <span style='color: green;'>```ObjectIndex = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectIndex: crate::q_text_format::Property = crate::q_text_format::Property(0);
        /// How a frame is located relative to the surrounding text (C++ enum variant: <span style='color: green;'>```CssFloat = 2048```</span>)
        #[allow(non_upper_case_globals)]
        pub const CssFloat: crate::q_text_format::Property = crate::q_text_format::Property(2048);
        /// The layout direction of the text in the document (<a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::LayoutDirection</a>). (C++ enum variant: <span style='color: green;'>```LayoutDirection = 2049```</span>)
        #[allow(non_upper_case_globals)]
        pub const LayoutDirection: crate::q_text_format::Property =
            crate::q_text_format::Property(2049);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```OutlinePen = 2064```</span>)
        #[allow(non_upper_case_globals)]
        pub const OutlinePen: crate::q_text_format::Property = crate::q_text_format::Property(2064);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BackgroundBrush = 2080```</span>)
        #[allow(non_upper_case_globals)]
        pub const BackgroundBrush: crate::q_text_format::Property =
            crate::q_text_format::Property(2080);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ForegroundBrush = 2081```</span>)
        #[allow(non_upper_case_globals)]
        pub const ForegroundBrush: crate::q_text_format::Property =
            crate::q_text_format::Property(2081);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BackgroundImageUrl = 2083```</span>)
        #[allow(non_upper_case_globals)]
        pub const BackgroundImageUrl: crate::q_text_format::Property =
            crate::q_text_format::Property(2083);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BlockAlignment = 4112```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockAlignment: crate::q_text_format::Property =
            crate::q_text_format::Property(4112);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BlockTopMargin = 4144```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockTopMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(4144);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BlockBottomMargin = 4145```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockBottomMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(4145);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BlockLeftMargin = 4146```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockLeftMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(4146);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BlockRightMargin = 4147```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockRightMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(4147);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TextIndent = 4148```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextIndent: crate::q_text_format::Property = crate::q_text_format::Property(4148);
        /// Specifies the tab positions. The tab positions are structs of <a href="http://doc.qt.io/qt-5/qtextoption-tab.html">QTextOption::Tab</a> which are stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> (internally, in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>&gt;). (C++ enum variant: <span style='color: green;'>```TabPositions = 4149```</span>)
        #[allow(non_upper_case_globals)]
        pub const TabPositions: crate::q_text_format::Property =
            crate::q_text_format::Property(4149);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BlockIndent = 4160```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockIndent: crate::q_text_format::Property =
            crate::q_text_format::Property(4160);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LineHeight = 4168```</span>)
        #[allow(non_upper_case_globals)]
        pub const LineHeight: crate::q_text_format::Property = crate::q_text_format::Property(4168);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LineHeightType = 4169```</span>)
        #[allow(non_upper_case_globals)]
        pub const LineHeightType: crate::q_text_format::Property =
            crate::q_text_format::Property(4169);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```BlockNonBreakableLines = 4176```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockNonBreakableLines: crate::q_text_format::Property =
            crate::q_text_format::Property(4176);
        /// The width of a horizontal ruler element. (C++ enum variant: <span style='color: green;'>```BlockTrailingHorizontalRulerWidth = 4192```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockTrailingHorizontalRulerWidth: crate::q_text_format::Property =
            crate::q_text_format::Property(4192);
        /// C++ enum variant: <span style='color: green;'>```FirstFontProperty = 8160```</span>
        #[allow(non_upper_case_globals)]
        pub const FirstFontProperty: crate::q_text_format::Property =
            crate::q_text_format::Property(8160);
        /// Specifies the capitalization type that is to be applied to the text. (C++ enum variant: <span style='color: green;'>```FontCapitalization = 8160```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontCapitalization: crate::q_text_format::Property =
            crate::q_text_format::Property(8160);
        /// Specifies the meaning of the FontLetterSpacing property. The default is <a href="http://doc.qt.io/qt-5/qfont.html#SpacingType-enum">QFont::PercentageSpacing</a>. (C++ enum variant: <span style='color: green;'>```FontLetterSpacingType = 8243```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontLetterSpacingType: crate::q_text_format::Property =
            crate::q_text_format::Property(8243);
        /// Changes the default spacing between individual letters in the font. The value is specified as a percentage or absolute value, depending on FontLetterSpacingType. The default value is 100%. (C++ enum variant: <span style='color: green;'>```FontLetterSpacing = 8161```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontLetterSpacing: crate::q_text_format::Property =
            crate::q_text_format::Property(8161);
        /// Changes the default spacing between individual words. A positive value increases the word spacing by the corresponding pixels; a negative value decreases the spacing. (C++ enum variant: <span style='color: green;'>```FontWordSpacing = 8162```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontWordSpacing: crate::q_text_format::Property =
            crate::q_text_format::Property(8162);
        /// Corresponds to the <a href="http://doc.qt.io/qt-5/qfont.html#Stretch-enum">QFont::Stretch</a> property (C++ enum variant: <span style='color: green;'>```FontStretch = 8244```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontStretch: crate::q_text_format::Property =
            crate::q_text_format::Property(8244);
        /// Corresponds to the <a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">QFont::StyleHint</a> property (C++ enum variant: <span style='color: green;'>```FontStyleHint = 8163```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontStyleHint: crate::q_text_format::Property =
            crate::q_text_format::Property(8163);
        /// Corresponds to the <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">QFont::StyleStrategy</a> property (C++ enum variant: <span style='color: green;'>```FontStyleStrategy = 8164```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontStyleStrategy: crate::q_text_format::Property =
            crate::q_text_format::Property(8164);
        /// Specifies whether the font has kerning turned on. (C++ enum variant: <span style='color: green;'>```FontKerning = 8165```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontKerning: crate::q_text_format::Property =
            crate::q_text_format::Property(8165);
        /// Controls the use of hinting according to values of the <a href="http://doc.qt.io/qt-5/qfont.html#HintingPreference-enum">QFont::HintingPreference</a> enum. (C++ enum variant: <span style='color: green;'>```FontHintingPreference = 8166```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontHintingPreference: crate::q_text_format::Property =
            crate::q_text_format::Property(8166);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontFamily = 8192```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontFamily: crate::q_text_format::Property = crate::q_text_format::Property(8192);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontPointSize = 8193```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontPointSize: crate::q_text_format::Property =
            crate::q_text_format::Property(8193);
        /// Specifies the change in size given to the fontsize already set using FontPointSize or FontPixelSize. (C++ enum variant: <span style='color: green;'>```FontSizeAdjustment = 8194```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontSizeAdjustment: crate::q_text_format::Property =
            crate::q_text_format::Property(8194);
        /// C++ enum variant: <span style='color: green;'>```FontSizeIncrement = 8194```</span>
        #[allow(non_upper_case_globals)]
        pub const FontSizeIncrement: crate::q_text_format::Property =
            crate::q_text_format::Property(8194);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontWeight = 8195```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontWeight: crate::q_text_format::Property = crate::q_text_format::Property(8195);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontItalic = 8196```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontItalic: crate::q_text_format::Property = crate::q_text_format::Property(8196);
        /// <i>This property has been deprecated.</i> Use QTextFormat::TextUnderlineStyle instead. (C++ enum variant: <span style='color: green;'>```FontUnderline = 8197```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontUnderline: crate::q_text_format::Property =
            crate::q_text_format::Property(8197);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontOverline = 8198```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontOverline: crate::q_text_format::Property =
            crate::q_text_format::Property(8198);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontStrikeOut = 8199```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontStrikeOut: crate::q_text_format::Property =
            crate::q_text_format::Property(8199);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontFixedPitch = 8200```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontFixedPitch: crate::q_text_format::Property =
            crate::q_text_format::Property(8200);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontPixelSize = 8201```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontPixelSize: crate::q_text_format::Property =
            crate::q_text_format::Property(8201);
        /// C++ enum variant: <span style='color: green;'>```LastFontProperty = 8201```</span>
        #[allow(non_upper_case_globals)]
        pub const LastFontProperty: crate::q_text_format::Property =
            crate::q_text_format::Property(8201);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TextUnderlineColor = 8208```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextUnderlineColor: crate::q_text_format::Property =
            crate::q_text_format::Property(8208);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TextVerticalAlignment = 8225```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextVerticalAlignment: crate::q_text_format::Property =
            crate::q_text_format::Property(8225);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TextOutline = 8226```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextOutline: crate::q_text_format::Property =
            crate::q_text_format::Property(8226);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TextUnderlineStyle = 8227```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextUnderlineStyle: crate::q_text_format::Property =
            crate::q_text_format::Property(8227);
        /// Specifies the (optional) tool tip to be displayed for a fragment of text. (C++ enum variant: <span style='color: green;'>```TextToolTip = 8228```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextToolTip: crate::q_text_format::Property =
            crate::q_text_format::Property(8228);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```IsAnchor = 8240```</span>)
        #[allow(non_upper_case_globals)]
        pub const IsAnchor: crate::q_text_format::Property = crate::q_text_format::Property(8240);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AnchorHref = 8241```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnchorHref: crate::q_text_format::Property = crate::q_text_format::Property(8241);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AnchorName = 8242```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnchorName: crate::q_text_format::Property = crate::q_text_format::Property(8242);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ObjectType = 12032```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectType: crate::q_text_format::Property =
            crate::q_text_format::Property(12032);
        /// Specifies the style used for the items in a list, described by values of the <a href="http://doc.qt.io/qt-5/qtextlistformat.html#Style-enum">QTextListFormat::Style</a> enum. (C++ enum variant: <span style='color: green;'>```ListStyle = 12288```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListStyle: crate::q_text_format::Property = crate::q_text_format::Property(12288);
        /// Specifies the amount of indentation used for a list. (C++ enum variant: <span style='color: green;'>```ListIndent = 12289```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListIndent: crate::q_text_format::Property =
            crate::q_text_format::Property(12289);
        /// Defines the text which is prepended to item numbers in numeric lists. (C++ enum variant: <span style='color: green;'>```ListNumberPrefix = 12290```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListNumberPrefix: crate::q_text_format::Property =
            crate::q_text_format::Property(12290);
        /// Defines the text which is appended to item numbers in numeric lists. (C++ enum variant: <span style='color: green;'>```ListNumberSuffix = 12291```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListNumberSuffix: crate::q_text_format::Property =
            crate::q_text_format::Property(12291);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameBorder = 16384```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameBorder: crate::q_text_format::Property =
            crate::q_text_format::Property(16384);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameMargin = 16385```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(16385);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FramePadding = 16386```</span>)
        #[allow(non_upper_case_globals)]
        pub const FramePadding: crate::q_text_format::Property =
            crate::q_text_format::Property(16386);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameWidth = 16387```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameWidth: crate::q_text_format::Property =
            crate::q_text_format::Property(16387);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameHeight = 16388```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameHeight: crate::q_text_format::Property =
            crate::q_text_format::Property(16388);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameTopMargin = 16389```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameTopMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(16389);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameBottomMargin = 16390```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameBottomMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(16390);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameLeftMargin = 16391```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameLeftMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(16391);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameRightMargin = 16392```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameRightMargin: crate::q_text_format::Property =
            crate::q_text_format::Property(16392);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FrameBorderBrush = 16393```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameBorderBrush: crate::q_text_format::Property =
            crate::q_text_format::Property(16393);
        /// See the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#BorderStyle-enum">BorderStyle</a> enum. (C++ enum variant: <span style='color: green;'>```FrameBorderStyle = 16400```</span>)
        #[allow(non_upper_case_globals)]
        pub const FrameBorderStyle: crate::q_text_format::Property =
            crate::q_text_format::Property(16400);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TableColumns = 16640```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableColumns: crate::q_text_format::Property =
            crate::q_text_format::Property(16640);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TableColumnWidthConstraints = 16641```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableColumnWidthConstraints: crate::q_text_format::Property =
            crate::q_text_format::Property(16641);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TableCellSpacing = 16642```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableCellSpacing: crate::q_text_format::Property =
            crate::q_text_format::Property(16642);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TableCellPadding = 16643```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableCellPadding: crate::q_text_format::Property =
            crate::q_text_format::Property(16643);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TableHeaderRowCount = 16644```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableHeaderRowCount: crate::q_text_format::Property =
            crate::q_text_format::Property(16644);
        /// C++ enum variant: <span style='color: green;'>```TableCellRowSpan = 18448```</span>
        #[allow(non_upper_case_globals)]
        pub const TableCellRowSpan: crate::q_text_format::Property =
            crate::q_text_format::Property(18448);
        /// C++ enum variant: <span style='color: green;'>```TableCellColumnSpan = 18449```</span>
        #[allow(non_upper_case_globals)]
        pub const TableCellColumnSpan: crate::q_text_format::Property =
            crate::q_text_format::Property(18449);
        /// C++ enum variant: <span style='color: green;'>```TableCellTopPadding = 18450```</span>
        #[allow(non_upper_case_globals)]
        pub const TableCellTopPadding: crate::q_text_format::Property =
            crate::q_text_format::Property(18450);
        /// C++ enum variant: <span style='color: green;'>```TableCellBottomPadding = 18451```</span>
        #[allow(non_upper_case_globals)]
        pub const TableCellBottomPadding: crate::q_text_format::Property =
            crate::q_text_format::Property(18451);
        /// C++ enum variant: <span style='color: green;'>```TableCellLeftPadding = 18452```</span>
        #[allow(non_upper_case_globals)]
        pub const TableCellLeftPadding: crate::q_text_format::Property =
            crate::q_text_format::Property(18452);
        /// C++ enum variant: <span style='color: green;'>```TableCellRightPadding = 18453```</span>
        #[allow(non_upper_case_globals)]
        pub const TableCellRightPadding: crate::q_text_format::Property =
            crate::q_text_format::Property(18453);
        /// C++ enum variant: <span style='color: green;'>```ImageName = 20480```</span>
        #[allow(non_upper_case_globals)]
        pub const ImageName: crate::q_text_format::Property = crate::q_text_format::Property(20480);
        /// C++ enum variant: <span style='color: green;'>```ImageWidth = 20496```</span>
        #[allow(non_upper_case_globals)]
        pub const ImageWidth: crate::q_text_format::Property =
            crate::q_text_format::Property(20496);
        /// C++ enum variant: <span style='color: green;'>```ImageHeight = 20497```</span>
        #[allow(non_upper_case_globals)]
        pub const ImageHeight: crate::q_text_format::Property =
            crate::q_text_format::Property(20497);
        /// When set on the characterFormat of a selection, the whole width of the text will be shown selected. (C++ enum variant: <span style='color: green;'>```FullWidthSelection = 24576```</span>)
        #[allow(non_upper_case_globals)]
        pub const FullWidthSelection: crate::q_text_format::Property =
            crate::q_text_format::Property(24576);
        /// Specifies how pages are broken. See the <a href="http://doc.qt.io/qt-5/qtextformat.html#PageBreakFlag-enum">PageBreakFlag</a> enum. (C++ enum variant: <span style='color: green;'>```PageBreakPolicy = 28672```</span>)
        #[allow(non_upper_case_globals)]
        pub const PageBreakPolicy: crate::q_text_format::Property =
            crate::q_text_format::Property(28672);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```UserProperty = 1048576```</span>)
        #[allow(non_upper_case_globals)]
        pub const UserProperty: crate::q_text_format::Property =
            crate::q_text_format::Property(1048576);
        /// The level of a heading, for example 1 corresponds to an HTML H1 tag; otherwise 0. This enum value has been added in Qt 5.12. (C++ enum variant: <span style='color: green;'>```HeadingLevel = 4208```</span>)
        #[allow(non_upper_case_globals)]
        pub const HeadingLevel: crate::q_text_format::Property =
            crate::q_text_format::Property(4208);
        /// C++ enum variant: <span style='color: green;'>```ImageQuality = 20500```</span>
        #[allow(non_upper_case_globals)]
        pub const ImageQuality: crate::q_text_format::Property =
            crate::q_text_format::Property(20500);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontFamilies = 8167```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontFamilies: crate::q_text_format::Property =
            crate::q_text_format::Property(8167);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FontStyleName = 8168```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontStyleName: crate::q_text_format::Property =
            crate::q_text_format::Property(8168);
    }

    /// <p>This enum describes what kind of <a href="http://doc.qt.io/qt-5/qtextobject.html">QTextObject</a> this format is associated with.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextFormat::ObjectTypes```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#ObjectTypes-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes what kind of <a href="http://doc.qt.io/qt-5/qtextobject.html">QTextObject</a> this format is associated with.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextobject.html">QTextObject</a>, <a href="http://doc.qt.io/qt-5/qtexttable.html">QTextTable</a>, and <a href="http://doc.qt.io/qt-5/qtextobject.html#format">QTextObject::format</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ObjectTypes(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ObjectTypes {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ObjectTypes(value)
        }
    }

    impl From<ObjectTypes> for ::std::os::raw::c_int {
        fn from(value: ObjectTypes) -> Self {
            value.0
        }
    }

    impl ObjectTypes {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ObjectTypes {
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```NoObject = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoObject: crate::q_text_format::ObjectTypes =
            crate::q_text_format::ObjectTypes(0);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ImageObject = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ImageObject: crate::q_text_format::ObjectTypes =
            crate::q_text_format::ObjectTypes(1);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TableObject = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableObject: crate::q_text_format::ObjectTypes =
            crate::q_text_format::ObjectTypes(2);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TableCellObject = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableCellObject: crate::q_text_format::ObjectTypes =
            crate::q_text_format::ObjectTypes(3);
        /// The first object that can be used for application-specific purposes. (C++ enum variant: <span style='color: green;'>```UserObject = 4096```</span>)
        #[allow(non_upper_case_globals)]
        pub const UserObject: crate::q_text_format::ObjectTypes =
            crate::q_text_format::ObjectTypes(4096);
    }

    /// <p>This enum describes how page breaking is performed when printing. It maps to the corresponding css properties.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextFormat::PageBreakFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#PageBreakFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes how page breaking is performed when printing. It maps to the corresponding css properties.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.2.</p>
    /// <p>The PageBreakFlags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;PageBreakFlag&gt;. It stores an OR combination of PageBreakFlag values.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#pageBreakPolicy">QTextBlockFormat::pageBreakPolicy</a>(), <a href="http://doc.qt.io/qt-5/qtextframeformat.html#pageBreakPolicy">QTextFrameFormat::pageBreakPolicy</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">PageBreakPolicy</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PageBreakFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PageBreakFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PageBreakFlag(value)
        }
    }

    impl From<PageBreakFlag> for ::std::os::raw::c_int {
        fn from(value: PageBreakFlag) -> Self {
            value.0
        }
    }

    impl PageBreakFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PageBreakFlag {
        /// The page break is determined automatically depending on the available space on the current page (C++ enum variant: <span style='color: green;'>```PageBreak_Auto = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const PageBreakAuto: crate::q_text_format::PageBreakFlag =
            crate::q_text_format::PageBreakFlag(0);
        /// The page is always broken before the paragraph/table (C++ enum variant: <span style='color: green;'>```PageBreak_AlwaysBefore = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PageBreakAlwaysBefore: crate::q_text_format::PageBreakFlag =
            crate::q_text_format::PageBreakFlag(1);
        /// A new page is always started after the paragraph/table (C++ enum variant: <span style='color: green;'>```PageBreak_AlwaysAfter = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const PageBreakAlwaysAfter: crate::q_text_format::PageBreakFlag =
            crate::q_text_format::PageBreakFlag(16);
    }

    impl From<crate::q_text_format::PageBreakFlag>
        for ::qt_core::QFlags<crate::q_text_format::PageBreakFlag>
    {
        fn from(value: crate::q_text_format::PageBreakFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_text_format::PageBreakFlag>>> std::ops::BitOr<T>
        for crate::q_text_format::PageBreakFlag
    {
        type Output = ::qt_core::QFlags<crate::q_text_format::PageBreakFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_text_format::PageBreakFlag> {
            Into::<::qt_core::QFlags<crate::q_text_format::PageBreakFlag>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> class provides formatting information for a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> class provides formatting information for a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> is a generic class used for describing the format of parts of a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>. The derived classes <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>, <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a>, <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a>, and <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> are usually more useful, and describe the formatting that is applied to specific parts of the document.</p>
/// <p>A format has a <code>FormatType</code> which specifies the kinds of text item it can format; e.g. a block of text, a list, a table, etc. A format also has various properties (some specific to particular format types), as described by the Property enum. Every property has a corresponding Property.</p>
/// <p>The format type is given by <a href="http://doc.qt.io/qt-5/qtextformat.html#type">type</a>(), and the format can be tested with <a href="http://doc.qt.io/qt-5/qtextformat.html#isCharFormat">isCharFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#isBlockFormat">isBlockFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#isListFormat">isListFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#isTableFormat">isTableFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#isFrameFormat">isFrameFormat</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#isImageFormat">isImageFormat</a>(). If the type is determined, it can be retrieved with <a href="http://doc.qt.io/qt-5/qtextformat.html#toCharFormat">toCharFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#toBlockFormat">toBlockFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#toListFormat">toListFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#toTableFormat">toTableFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#toFrameFormat">toFrameFormat</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#toImageFormat">toImageFormat</a>().</p>
/// <p>A format's properties can be set with the <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>() functions, and retrieved with <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>() as appropriate. All the property IDs used in the format can be retrieved with allPropertyIds(). One format can be merged into another using <a href="http://doc.qt.io/qt-5/qtextformat.html#merge">merge</a>().</p>
/// <p>A format's object index can be set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setObjectIndex">setObjectIndex</a>(), and retrieved with <a href="http://doc.qt.io/qt-5/qtextformat.html#objectIndex">objectIndex</a>(). These methods can be used to associate the format with a <a href="http://doc.qt.io/qt-5/qtextobject.html">QTextObject</a>. It is used to represent lists, frames, and tables inside the document.</p></div>
#[repr(C)]
pub struct QTextFormat {
    _unused: u8,
}
impl QTextFormat {
    /// <p>Returns the brush used to paint the document's background.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QTextFormat::background() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#background">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush used to paint the document's background.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#clearBackground">clearBackground</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#foreground">foreground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn background(&self) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFormat_background(self as *const crate::QTextFormat);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value of the property specified by <i>propertyId</i>. If the property isn't of QTextFormat::Bool type, false is returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::boolProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property specified by <i>propertyId</i>. If the property isn't of QTextFormat::Bool type, false is returned instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#colorProperty">colorProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">lengthProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bool_property(&self, property_id: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_boolProperty(
            self as *const crate::QTextFormat,
            property_id,
        )
    }

    /// <p>Returns the value of the property given by <i>propertyId</i>; if the property isn't of QVariant::Brush type, <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::NoBrush</a> is returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QTextFormat::brushProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#brushProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property given by <i>propertyId</i>; if the property isn't of QVariant::Brush type, <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::NoBrush</a> is returned instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">lengthProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn brush_property(
        &self,
        property_id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_brushProperty(
            self as *const crate::QTextFormat,
            property_id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Clears the brush used to paint the document's background. The default brush will be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::clearBackground()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#clearBackground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the brush used to paint the document's background. The default brush will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#background">background</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#clearForeground">clearForeground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_background(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_clearBackground(self as *mut crate::QTextFormat)
    }

    /// <p>Clears the brush used to paint the document's foreground. The default brush will be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::clearForeground()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#clearForeground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the brush used to paint the document's foreground. The default brush will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#foreground">foreground</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#setForeground">setForeground</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#clearBackground">clearBackground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_foreground(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_clearForeground(self as *mut crate::QTextFormat)
    }

    /// <p>Clears the value of the property given by <i>propertyId</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::clearProperty(int propertyId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#clearProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the value of the property given by <i>propertyId</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn clear_property(&mut self, property_id: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_clearProperty(
            self as *mut crate::QTextFormat,
            property_id,
        )
    }

    /// <p>Returns the value of the property given by <i>propertyId</i>; if the property isn't of QVariant::Color type, an invalid color is returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QTextFormat::colorProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#colorProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property given by <i>propertyId</i>; if the property isn't of QVariant::Color type, an invalid color is returned instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">lengthProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn color_property(
        &self,
        property_id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_colorProperty(
            self as *const crate::QTextFormat,
            property_id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns the <i>other</i> text format to this text format, and returns a reference to this text format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat& QTextFormat::operator=(const QTextFormat& rhs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the <i>other</i> text format to this text format, and returns a reference to this text format.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        rhs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::cpp_core::MutRef<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_operator_(
            self as *mut crate::QTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(rhs)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the value of the property specified by <i>propertyId</i>. If the property isn't of QVariant::Double or <a href="http://doc.qt.io/qt-5/qmetatype.html#Type-enum">QMetaType::Float</a> type, 0 is returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextFormat::doubleProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property specified by <i>propertyId</i>. If the property isn't of QVariant::Double or <a href="http://doc.qt.io/qt-5/qmetatype.html#Type-enum">QMetaType::Float</a> type, 0 is returned instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#colorProperty">colorProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">lengthProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn double_property(
        &self,
        property_id: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_doubleProperty(
            self as *const crate::QTextFormat,
            property_id,
        )
    }

    /// <p>Returns the brush used to render foreground details, such as text, frame outlines, and table borders.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QTextFormat::foreground() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#foreground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush used to render foreground details, such as text, frame outlines, and table borders.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setForeground">setForeground</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#clearForeground">clearForeground</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#background">background</a>().</p></div>
    #[inline(always)]
    pub unsafe fn foreground(&self) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFormat_foreground(self as *const crate::QTextFormat);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the text format has a property with the given <i>propertyId</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::hasProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#hasProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text format has a property with the given <i>propertyId</i>; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#properties">properties</a>() and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn has_property(&self, property_id: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_hasProperty(
            self as *const crate::QTextFormat,
            property_id,
        )
    }

    /// <p>Returns the value of the property specified by <i>propertyId</i>. If the property is not of QTextFormat::Integer type, 0 is returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFormat::intProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property specified by <i>propertyId</i>. If the property is not of QTextFormat::Integer type, 0 is returned instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#colorProperty">colorProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">lengthProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn int_property(&self, property_id: ::std::os::raw::c_int) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_intProperty(
            self as *const crate::QTextFormat,
            property_id,
        )
    }

    /// <p>Returns <code>true</code> if this text format is a <code>BlockFormat</code>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isBlockFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isBlockFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text format is a <code>BlockFormat</code>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_block_format(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isBlockFormat(self as *const crate::QTextFormat)
    }

    /// <p>Returns <code>true</code> if this text format is a <code>CharFormat</code>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isCharFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isCharFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text format is a <code>CharFormat</code>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_char_format(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isCharFormat(self as *const crate::QTextFormat)
    }

    /// <p>Returns true if the format does not store any properties; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if the format does not store any properties; false otherwise.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#propertyCount">propertyCount</a>() and <a href="http://doc.qt.io/qt-5/qtextformat.html#properties">properties</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isEmpty(self as *const crate::QTextFormat)
    }

    /// <p>Returns <code>true</code> if this text format is a <code>FrameFormat</code>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isFrameFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isFrameFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text format is a <code>FrameFormat</code>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_frame_format(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isFrameFormat(self as *const crate::QTextFormat)
    }

    /// <p>Returns <code>true</code> if this text format is an image format; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isImageFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isImageFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text format is an image format; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_image_format(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isImageFormat(self as *const crate::QTextFormat)
    }

    /// <p>Returns <code>true</code> if this text format is a <code>ListFormat</code>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isListFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isListFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text format is a <code>ListFormat</code>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_list_format(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isListFormat(self as *const crate::QTextFormat)
    }

    /// <p>Returns <code>true</code> if this text format is a <code>TableCellFormat</code>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isTableCellFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isTableCellFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text format is a <code>TableCellFormat</code>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn is_table_cell_format(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isTableCellFormat(
            self as *const crate::QTextFormat,
        )
    }

    /// <p>Returns <code>true</code> if this text format is a <code>TableFormat</code>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isTableFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isTableFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text format is a <code>TableFormat</code>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_table_format(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isTableFormat(self as *const crate::QTextFormat)
    }

    /// <p>Returns <code>true</code> if the format is valid (i.e. is not <a href="http://doc.qt.io/qt-5/qtextformat.html#FormatType-enum">InvalidFormat</a>); otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the format is valid (i.e. is not <a href="http://doc.qt.io/qt-5/qtextformat.html#FormatType-enum">InvalidFormat</a>); otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_isValid(self as *const crate::QTextFormat)
    }

    /// <p>Returns the document's layout direction.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::LayoutDirection QTextFormat::layoutDirection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#layoutDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document's layout direction.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setLayoutDirection">setLayoutDirection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn layout_direction(&self) -> ::qt_core::LayoutDirection {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_layoutDirection(self as *const crate::QTextFormat)
    }

    /// <p>Returns the value of the property given by <i>propertyId</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength QTextFormat::lengthProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property given by <i>propertyId</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#colorProperty">colorProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn length_property(
        &self,
        property_id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_lengthProperty(
            self as *const crate::QTextFormat,
            property_id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value of the property given by <i>propertyId</i>. If the property isn't of QTextFormat::LengthVector type, an empty length vector is returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength> QTextFormat::lengthVectorProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property given by <i>propertyId</i>. If the property isn't of QTextFormat::LengthVector type, an empty length vector is returned instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#colorProperty">colorProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">lengthProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn length_vector_property(
        &self,
        property_id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_lengthVectorProperty(
            self as *const crate::QTextFormat,
            property_id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Merges the <i>other</i> format with this format; where there are conflicts the <i>other</i> format takes precedence.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::merge(const QTextFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#merge">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Merges the <i>other</i> format with this format; where there are conflicts the <i>other</i> format takes precedence.</p></div>
    #[inline(always)]
    pub unsafe fn merge(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_merge(
            self as *mut crate::QTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Creates a new text format with an <code>InvalidFormat</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFormat::QTextFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#QTextFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new text format with an <code>InvalidFormat</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#FormatType-enum">FormatType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_QTextFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a new text format of the given <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFormat::QTextFormat(int type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#QTextFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new text format of the given <i>type</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#FormatType-enum">FormatType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(type_: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_QTextFormat1(type_);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a new text format with the same attributes as the <i>other</i> text format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFormat::QTextFormat(const QTextFormat& rhs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#QTextFormat-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new text format with the same attributes as the <i>other</i> text format.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        rhs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_QTextFormat2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(rhs)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the index of the format object, or -1 if the format object is invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFormat::objectIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#objectIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the format object, or -1 if the format object is invalid.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setObjectIndex">setObjectIndex</a>().</p></div>
    #[inline(always)]
    pub unsafe fn object_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_objectIndex(self as *const crate::QTextFormat)
    }

    /// <p>Returns the text format's object type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFormat::objectType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#objectType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format's object type.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#ObjectTypes-enum">ObjectTypes</a> and <a href="http://doc.qt.io/qt-5/qtextformat.html#setObjectType">setObjectType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn object_type(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_objectType(self as *const crate::QTextFormat)
    }

    /// <p>Returns the value of the property given by <i>propertyId</i>; if the property isn't of QVariant::Pen type, <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::NoPen</a> is returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPen QTextFormat::penProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#penProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property given by <i>propertyId</i>; if the property isn't of QVariant::Pen type, <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::NoPen</a> is returned instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">stringProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">lengthProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn pen_property(
        &self,
        property_id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_penProperty(
            self as *const crate::QTextFormat,
            property_id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a map with all properties of this text format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMap<int, QVariant> QTextFormat::properties() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#properties">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a map with all properties of this text format.</p></div>
    #[inline(always)]
    pub unsafe fn properties(&self) -> ::cpp_core::CppBox<::qt_core::QMapOfIntQVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFormat_properties(self as *const crate::QTextFormat);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the property specified by the given <i>propertyId</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QTextFormat::property(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#property">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the property specified by the given <i>propertyId</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>() and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn property(
        &self,
        property_id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_property(
            self as *const crate::QTextFormat,
            property_id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of properties stored in the format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFormat::propertyCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#propertyCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of properties stored in the format.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn property_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_propertyCount(self as *const crate::QTextFormat)
    }

    /// <p>Sets the brush use to paint the document's background to the <i>brush</i> specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::setBackground(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush use to paint the document's background to the <i>brush</i> specified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#background">background</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#clearBackground">clearBackground</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#setForeground">setForeground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_background(
        &mut self,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_setBackground(
            self as *mut crate::QTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>Sets the foreground brush to the specified <i>brush</i>. The foreground brush is mostly used to render text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::setForeground(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#setForeground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the foreground brush to the specified <i>brush</i>. The foreground brush is mostly used to render text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#foreground">foreground</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#clearForeground">clearForeground</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_foreground(
        &mut self,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_setForeground(
            self as *mut crate::QTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>Sets the document's layout direction to the specified <i>direction</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::setLayoutDirection(Qt::LayoutDirection direction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#setLayoutDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the document's layout direction to the specified <i>direction</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#layoutDirection">layoutDirection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_layout_direction(&mut self, direction: ::qt_core::LayoutDirection) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_setLayoutDirection(
            self as *mut crate::QTextFormat,
            direction,
        )
    }

    /// <p>Sets the format object's object <i>index</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::setObjectIndex(int object)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#setObjectIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format object's object <i>index</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#objectIndex">objectIndex</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_object_index(&mut self, object: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_setObjectIndex(
            self as *mut crate::QTextFormat,
            object,
        )
    }

    /// <p>Sets the text format's object type to <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::setObjectType(int type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#setObjectType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format's object type to <i>type</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#ObjectTypes-enum">ObjectTypes</a> and <a href="http://doc.qt.io/qt-5/qtextformat.html#objectType">objectType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_object_type(&mut self, type_: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_setObjectType(
            self as *mut crate::QTextFormat,
            type_,
        )
    }

    /// <p>Sets the property specified by the <i>propertyId</i> to the given <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::setProperty(int propertyId, const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the property specified by the <i>propertyId</i> to the given <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#property">property</a>() and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_property_int_q_variant(
        &mut self,
        property_id: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_setProperty(
            self as *mut crate::QTextFormat,
            property_id,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the value of the property given by <i>propertyId</i> to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::setProperty(int propertyId, const QVector<QTextLength>& lengths)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the value of the property given by <i>propertyId</i> to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>() and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_property_int_q_vector_of_q_text_length(
        &mut self,
        property_id: ::std::os::raw::c_int,
        lengths: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_setProperty1(
            self as *mut crate::QTextFormat,
            property_id,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextLength>>::cast_into(
                lengths,
            )
            .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the value of the property given by <i>propertyId</i>; if the property isn't of QVariant::String type, an empty string is returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextFormat::stringProperty(int propertyId) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#stringProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the property given by <i>propertyId</i>; if the property isn't of QVariant::String type, an empty string is returned instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#boolProperty">boolProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#intProperty">intProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#doubleProperty">doubleProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#colorProperty">colorProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthProperty">lengthProperty</a>(), <a href="http://doc.qt.io/qt-5/qtextformat.html#lengthVectorProperty">lengthVectorProperty</a>(), and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">Property</a>.</p></div>
    #[inline(always)]
    pub unsafe fn string_property(
        &self,
        property_id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_stringProperty(
            self as *const crate::QTextFormat,
            property_id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this text format with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFormat::swap(QTextFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this text format with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_swap(
            self as *mut crate::QTextFormat,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextFormat>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns this format as a block format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlockFormat QTextFormat::toBlockFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#toBlockFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this format as a block format.</p></div>
    #[inline(always)]
    pub unsafe fn to_block_format(&self) -> ::cpp_core::CppBox<crate::QTextBlockFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_toBlockFormat(
            self as *const crate::QTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns this format as a character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat QTextFormat::toCharFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#toCharFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this format as a character format.</p></div>
    #[inline(always)]
    pub unsafe fn to_char_format(&self) -> ::cpp_core::CppBox<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_toCharFormat(
            self as *const crate::QTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns this format as a frame format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat QTextFormat::toFrameFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#toFrameFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this format as a frame format.</p></div>
    #[inline(always)]
    pub unsafe fn to_frame_format(&self) -> ::cpp_core::CppBox<crate::QTextFrameFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_toFrameFormat(
            self as *const crate::QTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns this format as an image format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextImageFormat QTextFormat::toImageFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#toImageFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this format as an image format.</p></div>
    #[inline(always)]
    pub unsafe fn to_image_format(&self) -> ::cpp_core::CppBox<crate::QTextImageFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_toImageFormat(
            self as *const crate::QTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns this format as a list format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextListFormat QTextFormat::toListFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#toListFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this format as a list format.</p></div>
    #[inline(always)]
    pub unsafe fn to_list_format(&self) -> ::cpp_core::CppBox<crate::QTextListFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_toListFormat(
            self as *const crate::QTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text format as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QTextFormat::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_operator_QVariant(
            self as *const crate::QTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns this format as a table cell format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableCellFormat QTextFormat::toTableCellFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#toTableCellFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this format as a table cell format.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn to_table_cell_format(&self) -> ::cpp_core::CppBox<crate::QTextTableCellFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_toTableCellFormat(
            self as *const crate::QTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns this format as a table format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableFormat QTextFormat::toTableFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#toTableFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this format as a table format.</p></div>
    #[inline(always)]
    pub unsafe fn to_table_format(&self) -> ::cpp_core::CppBox<crate::QTextTableFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFormat_toTableFormat(
            self as *const crate::QTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the type of this format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFormat::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of this format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#FormatType-enum">FormatType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_type(self as *const crate::QTextFormat)
    }
}

pub mod q_text_char_format {
    //! C++ type: <span style='color: green;'>```QTextCharFormat```</span>

    /// <p>This enum describes the ways that adjacent characters can be vertically aligned.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextCharFormat::VerticalAlignment```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#VerticalAlignment-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the ways that adjacent characters can be vertically aligned.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct VerticalAlignment(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for VerticalAlignment {
        fn from(value: ::std::os::raw::c_int) -> Self {
            VerticalAlignment(value)
        }
    }

    impl From<VerticalAlignment> for ::std::os::raw::c_int {
        fn from(value: VerticalAlignment) -> Self {
            value.0
        }
    }

    impl VerticalAlignment {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl VerticalAlignment {
        /// Adjacent characters are positioned in the standard way for text in the writing system in use. (C++ enum variant: <span style='color: green;'>```AlignNormal = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlignNormal: crate::q_text_char_format::VerticalAlignment =
            crate::q_text_char_format::VerticalAlignment(0);
        /// Characters are placed above the base line for normal text. (C++ enum variant: <span style='color: green;'>```AlignSuperScript = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlignSuperScript: crate::q_text_char_format::VerticalAlignment =
            crate::q_text_char_format::VerticalAlignment(1);
        /// Characters are placed below the base line for normal text. (C++ enum variant: <span style='color: green;'>```AlignSubScript = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlignSubScript: crate::q_text_char_format::VerticalAlignment =
            crate::q_text_char_format::VerticalAlignment(2);
        /// The center of the object is vertically aligned with the base line. Currently, this is only implemented for inline objects. (C++ enum variant: <span style='color: green;'>```AlignMiddle = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlignMiddle: crate::q_text_char_format::VerticalAlignment =
            crate::q_text_char_format::VerticalAlignment(3);
        /// The top edge of the object is vertically aligned with the base line. (C++ enum variant: <span style='color: green;'>```AlignTop = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlignTop: crate::q_text_char_format::VerticalAlignment =
            crate::q_text_char_format::VerticalAlignment(4);
        /// The bottom edge of the object is vertically aligned with the base line. (C++ enum variant: <span style='color: green;'>```AlignBottom = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlignBottom: crate::q_text_char_format::VerticalAlignment =
            crate::q_text_char_format::VerticalAlignment(5);
        /// The base lines of the characters are aligned. (C++ enum variant: <span style='color: green;'>```AlignBaseline = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlignBaseline: crate::q_text_char_format::VerticalAlignment =
            crate::q_text_char_format::VerticalAlignment(6);
    }

    /// <p>This enum describes the different ways drawing underlined text.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextCharFormat::UnderlineStyle```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#UnderlineStyle-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different ways drawing underlined text.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::PenStyle</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct UnderlineStyle(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for UnderlineStyle {
        fn from(value: ::std::os::raw::c_int) -> Self {
            UnderlineStyle(value)
        }
    }

    impl From<UnderlineStyle> for ::std::os::raw::c_int {
        fn from(value: UnderlineStyle) -> Self {
            value.0
        }
    }

    impl UnderlineStyle {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl UnderlineStyle {
        /// Text is draw without any underlining decoration. (C++ enum variant: <span style='color: green;'>```NoUnderline = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoUnderline: crate::q_text_char_format::UnderlineStyle =
            crate::q_text_char_format::UnderlineStyle(0);
        /// A line is drawn using <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::SolidLine</a>. (C++ enum variant: <span style='color: green;'>```SingleUnderline = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const SingleUnderline: crate::q_text_char_format::UnderlineStyle =
            crate::q_text_char_format::UnderlineStyle(1);
        /// Dashes are drawn using <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::DashLine</a>. (C++ enum variant: <span style='color: green;'>```DashUnderline = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const DashUnderline: crate::q_text_char_format::UnderlineStyle =
            crate::q_text_char_format::UnderlineStyle(2);
        /// Dots are drawn using <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::DotLine</a>; (C++ enum variant: <span style='color: green;'>```DotLine = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const DotLine: crate::q_text_char_format::UnderlineStyle =
            crate::q_text_char_format::UnderlineStyle(3);
        /// Dashs and dots are drawn using <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::DashDotLine</a>. (C++ enum variant: <span style='color: green;'>```DashDotLine = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const DashDotLine: crate::q_text_char_format::UnderlineStyle =
            crate::q_text_char_format::UnderlineStyle(4);
        /// Underlines draw drawn using <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::DashDotDotLine</a>. (C++ enum variant: <span style='color: green;'>```DashDotDotLine = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const DashDotDotLine: crate::q_text_char_format::UnderlineStyle =
            crate::q_text_char_format::UnderlineStyle(5);
        /// The text is underlined using a wave shaped line. (C++ enum variant: <span style='color: green;'>```WaveUnderline = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const WaveUnderline: crate::q_text_char_format::UnderlineStyle =
            crate::q_text_char_format::UnderlineStyle(6);
        /// The underline is drawn depending on the QStyle::SH_SpellCeckUnderlineStyle style hint of the <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> style. By default this is mapped to WaveUnderline, on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> it is mapped to DashDotLine. (C++ enum variant: <span style='color: green;'>```SpellCheckUnderline = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const SpellCheckUnderline: crate::q_text_char_format::UnderlineStyle =
            crate::q_text_char_format::UnderlineStyle(7);
    }

    /// <p>This enum specifies how the <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>() function should behave with respect to unset font properties.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextCharFormat::FontPropertiesInheritanceBehavior```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#FontPropertiesInheritanceBehavior-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies how the <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>() function should behave with respect to unset font properties.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FontPropertiesInheritanceBehavior(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FontPropertiesInheritanceBehavior {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FontPropertiesInheritanceBehavior(value)
        }
    }

    impl From<FontPropertiesInheritanceBehavior> for ::std::os::raw::c_int {
        fn from(value: FontPropertiesInheritanceBehavior) -> Self {
            value.0
        }
    }

    impl FontPropertiesInheritanceBehavior {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FontPropertiesInheritanceBehavior {
        /// If a property is not explicitly set, do not change the text format's property value. (C++ enum variant: <span style='color: green;'>```FontPropertiesSpecifiedOnly = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontPropertiesSpecifiedOnly:
            crate::q_text_char_format::FontPropertiesInheritanceBehavior =
            crate::q_text_char_format::FontPropertiesInheritanceBehavior(0);
        /// If a property is not explicitly set, override the text format's property with a default value. (C++ enum variant: <span style='color: green;'>```FontPropertiesAll = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const FontPropertiesAll: crate::q_text_char_format::FontPropertiesInheritanceBehavior =
            crate::q_text_char_format::FontPropertiesInheritanceBehavior(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> class provides formatting information for characters in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextCharFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextcharformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> class provides formatting information for characters in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>The character format of text in a document specifies the visual properties of the text, as well as information about its role in a hypertext document.</p>
/// <p>The font used can be set by supplying a font to the <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>() function, and each aspect of its appearance can be adjusted to give the desired effect. <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFamily">setFontFamily</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontPointSize">setFontPointSize</a>() define the font's family (e.g. Times) and printed size; <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontWeight">setFontWeight</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontItalic">setFontItalic</a>() provide control over the style of the font. <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontUnderline">setFontUnderline</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontOverline">setFontOverline</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStrikeOut">setFontStrikeOut</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFixedPitch">setFontFixedPitch</a>() provide additional effects for text.</p>
/// <p>The color is set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setForeground">setForeground</a>(). If the text is intended to be used as an anchor (for hyperlinks), this can be enabled with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>(). The <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>() functions are used to specify the information about the hyperlink's destination and the anchor's name.</p></div>
#[repr(C)]
pub struct QTextCharFormat {
    _unused: u8,
}
impl QTextCharFormat {
    /// <p>Returns the text format's hypertext link, or an empty string if none has been set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextCharFormat::anchorHref() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#anchorHref">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format's hypertext link, or an empty string if none has been set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>().</p></div>
    #[inline(always)]
    pub unsafe fn anchor_href(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_anchorHref(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is deprecated. Use <a href="http://doc.qt.io/qt-5/qtextcharformat.html#anchorNames">anchorNames</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextCharFormat::anchorName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat-obsolete.html#anchorName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is deprecated. Use <a href="http://doc.qt.io/qt-5/qtextcharformat.html#anchorNames">anchorNames</a>() instead.</p>
    /// <p>Returns the anchor name associated with this text format, or an empty string if none has been set. If the anchor name is set, text with this format can be the destination of a hypertext link.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat-obsolete.html#setAnchorName">setAnchorName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn anchor_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_anchorName(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the anchor names associated with this text format, or an empty string list if none has been set. If the anchor names are set, text with this format can be the destination of a hypertext link.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QTextCharFormat::anchorNames() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#anchorNames">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the anchor names associated with this text format, or an empty string list if none has been set. If the anchor names are set, text with this format can be the destination of a hypertext link.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>().</p></div>
    #[inline(always)]
    pub unsafe fn anchor_names(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_anchorNames(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> class provides formatting information for characters in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat& QTextCharFormat::operator=(const QTextCharFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> class provides formatting information for characters in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>The character format of text in a document specifies the visual properties of the text, as well as information about its role in a hypertext document.</p>
    /// <p>The font used can be set by supplying a font to the <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>() function, and each aspect of its appearance can be adjusted to give the desired effect. <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFamily">setFontFamily</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontPointSize">setFontPointSize</a>() define the font's family (e.g. Times) and printed size; <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontWeight">setFontWeight</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontItalic">setFontItalic</a>() provide control over the style of the font. <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontUnderline">setFontUnderline</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontOverline">setFontOverline</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStrikeOut">setFontStrikeOut</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFixedPitch">setFontFixedPitch</a>() provide additional effects for text.</p>
    /// <p>The color is set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setForeground">setForeground</a>(). If the text is intended to be used as an anchor (for hyperlinks), this can be enabled with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>(). The <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>() functions are used to specify the information about the hyperlink's destination and the anchor's name.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) -> ::cpp_core::MutRef<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_operator_(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the font for this character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont QTextCharFormat::font() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font for this character format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font(&self) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_font(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current capitalization type of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::Capitalization QTextCharFormat::fontCapitalization() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontCapitalization">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current capitalization type of the font.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontCapitalization">setFontCapitalization</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_capitalization(&self) -> crate::q_font::Capitalization {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontCapitalization(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the text format's font families.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QTextCharFormat::fontFamilies() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontFamilies">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format's font families.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFamilies">setFontFamilies</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn font_families(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontFamilies(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text format's font family.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextCharFormat::fontFamily() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontFamily">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format's font family.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFamily">setFontFamily</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_family(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontFamily(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the text format's font is fixed pitch; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCharFormat::fontFixedPitch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontFixedPitch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text format's font is fixed pitch; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFixedPitch">setFontFixedPitch</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_fixed_pitch(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontFixedPitch(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the hinting preference set for this text format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::HintingPreference QTextCharFormat::fontHintingPreference() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontHintingPreference">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hinting preference set for this text format.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontHintingPreference">setFontHintingPreference</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#hintingPreference">QFont::hintingPreference</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_hinting_preference(&self) -> crate::q_font::HintingPreference {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontHintingPreference(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns <code>true</code> if the text format's font is italic; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCharFormat::fontItalic() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontItalic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text format's font is italic; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontItalic">setFontItalic</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_italic(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontItalic(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns <code>true</code> if the font kerning is enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCharFormat::fontKerning() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontKerning">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font kerning is enabled.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontKerning">setFontKerning</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_kerning(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontKerning(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the current letter spacing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextCharFormat::fontLetterSpacing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontLetterSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current letter spacing.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontLetterSpacing">setFontLetterSpacing</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontLetterSpacingType">setFontLetterSpacingType</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontLetterSpacingType">fontLetterSpacingType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_letter_spacing(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontLetterSpacing(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the letter spacing type of this format..</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::SpacingType QTextCharFormat::fontLetterSpacingType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontLetterSpacingType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the letter spacing type of this format..</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontLetterSpacingType">setFontLetterSpacingType</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontLetterSpacing">setFontLetterSpacing</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontLetterSpacing">fontLetterSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_letter_spacing_type(&self) -> crate::q_font::SpacingType {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontLetterSpacingType(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns <code>true</code> if the text format's font is overlined; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCharFormat::fontOverline() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontOverline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text format's font is overlined; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontOverline">setFontOverline</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_overline(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontOverline(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the font size used to display text in this format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextCharFormat::fontPointSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontPointSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font size used to display text in this format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontPointSize">setFontPointSize</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_point_size(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontPointSize(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the current font stretching.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCharFormat::fontStretch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStretch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current font stretching.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStretch">setFontStretch</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_stretch(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontStretch(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns <code>true</code> if the text format's font is struck out (has a horizontal line drawn through it); otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCharFormat::fontStrikeOut() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStrikeOut">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text format's font is struck out (has a horizontal line drawn through it); otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStrikeOut">setFontStrikeOut</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_strike_out(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontStrikeOut(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the font style hint.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::StyleHint QTextCharFormat::fontStyleHint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStyleHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font style hint.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStyleHint">setFontStyleHint</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_style_hint(&self) -> crate::q_font::StyleHint {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontStyleHint(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the text format's font style name.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QTextCharFormat::fontStyleName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStyleName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format's font style name.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStyleName">setFontStyleName</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#styleName">QFont::styleName</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn font_style_name(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontStyleName(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current font style strategy.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::StyleStrategy QTextCharFormat::fontStyleStrategy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStyleStrategy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current font style strategy.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStyleStrategy">setFontStyleStrategy</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_style_strategy(&self) -> crate::q_font::StyleStrategy {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontStyleStrategy(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns <code>true</code> if the text format's font is underlined; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCharFormat::fontUnderline() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontUnderline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text format's font is underlined; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontUnderline">setFontUnderline</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_underline(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontUnderline(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the text format's font weight.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCharFormat::fontWeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontWeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format's font weight.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontWeight">setFontWeight</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Weight</a>.</p></div>
    #[inline(always)]
    pub unsafe fn font_weight(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontWeight(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the current word spacing value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextCharFormat::fontWordSpacing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontWordSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current word spacing value.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontWordSpacing">setFontWordSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font_word_spacing(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_fontWordSpacing(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns <code>true</code> if the text is formatted as an anchor; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCharFormat::isAnchor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#isAnchor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text is formatted as an anchor; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_anchor(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_isAnchor(self as *const crate::QTextCharFormat)
    }

    /// <p>Returns <code>true</code> if this character format is valid; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCharFormat::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this character format is valid; otherwise returns false.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_isValid(self as *const crate::QTextCharFormat)
    }

    /// <p>Constructs a new character format object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextCharFormat::QTextCharFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#QTextCharFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new character format object.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_QTextCharFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> class provides formatting information for characters in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextCharFormat::QTextCharFormat(const QTextCharFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> class provides formatting information for characters in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>The character format of text in a document specifies the visual properties of the text, as well as information about its role in a hypertext document.</p>
    /// <p>The font used can be set by supplying a font to the <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>() function, and each aspect of its appearance can be adjusted to give the desired effect. <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFamily">setFontFamily</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontPointSize">setFontPointSize</a>() define the font's family (e.g. Times) and printed size; <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontWeight">setFontWeight</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontItalic">setFontItalic</a>() provide control over the style of the font. <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontUnderline">setFontUnderline</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontOverline">setFontOverline</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStrikeOut">setFontStrikeOut</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFixedPitch">setFontFixedPitch</a>() provide additional effects for text.</p>
    /// <p>The color is set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setForeground">setForeground</a>(). If the text is intended to be used as an anchor (for hyperlinks), this can be enabled with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>(). The <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>() functions are used to specify the information about the hyperlink's destination and the anchor's name.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_QTextCharFormat1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If <i>anchor</i> is true, text with this format represents an anchor, and is formatted in the appropriate way; otherwise the text is formatted normally. (Anchors are hyperlinks which are often shown underlined and in a different color from plain text.)</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setAnchor(bool anchor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>anchor</i> is true, text with this format represents an anchor, and is formatted in the appropriate way; otherwise the text is formatted normally. (Anchors are hyperlinks which are often shown underlined and in a different color from plain text.)</p>
    /// <p>The way the text is rendered is independent of whether or not the format has a valid anchor defined. Use <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>(), and optionally <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>() to create a hypertext link.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#isAnchor">isAnchor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_anchor(&mut self, anchor: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setAnchor(
            self as *mut crate::QTextCharFormat,
            anchor,
        )
    }

    /// <p>Sets the hypertext link for the text format to the given <i>value</i>. This is typically a URL like "http://example.com/index.html".</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setAnchorHref(const QString& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the hypertext link for the text format to the given <i>value</i>. This is typically a URL like "http://example.com/index.html".</p>
    /// <p>The anchor will be displayed with the <i>value</i> as its display text; if you want to display different text call <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>().</p>
    /// <p>To format the text as a hypertext link use <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#anchorHref">anchorHref</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_anchor_href(
        &mut self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setAnchorHref(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is deprecated. Use <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setAnchorName(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat-obsolete.html#setAnchorName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is deprecated. Use <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>() instead.</p>
    /// <p>Sets the text format's anchor <i>name</i>. For the anchor to work as a hyperlink, the destination must be set with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>() and the anchor must be enabled with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat-obsolete.html#anchorName">anchorName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_anchor_name(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setAnchorName(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the text format's anchor <i>names</i>. For the anchor to work as a hyperlink, the destination must be set with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>() and the anchor must be enabled with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setAnchorNames(const QStringList& names)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format's anchor <i>names</i>. For the anchor to work as a hyperlink, the destination must be set with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>() and the anchor must be enabled with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>().</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#anchorNames">anchorNames</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_anchor_names(
        &mut self,
        names: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setAnchorNames(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(names)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the text format's <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFont(const QFont& font, QTextCharFormat::FontPropertiesInheritanceBehavior behavior)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format's <i>font</i>.</p>
    /// <p>If <i>behavior</i> is <a href="http://doc.qt.io/qt-5/qtextcharformat.html#FontPropertiesInheritanceBehavior-enum">QTextCharFormat::FontPropertiesAll</a>, the font property that has not been explicitly set is treated like as it were set with default value; If <i>behavior</i> is <a href="http://doc.qt.io/qt-5/qtextcharformat.html#FontPropertiesInheritanceBehavior-enum">QTextCharFormat::FontPropertiesSpecifiedOnly</a>, the font property that has not been explicitly set is ignored and the respective property value remains unchanged.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_2a(
        &mut self,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        behavior: crate::q_text_char_format::FontPropertiesInheritanceBehavior,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFont(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
            behavior,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFont(const QFont& font)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the text format's <i>font</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_1a(
        &mut self,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFont1(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        )
    }

    /// <p>Sets the capitalization of the text that apppears in this font to <i>capitalization</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontCapitalization(QFont::Capitalization capitalization)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontCapitalization">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the capitalization of the text that apppears in this font to <i>capitalization</i>.</p>
    /// <p>A font's capitalization makes the text appear in the selected capitalization mode.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontCapitalization">fontCapitalization</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_capitalization(
        &mut self,
        capitalization: crate::q_font::Capitalization,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontCapitalization(
            self as *mut crate::QTextCharFormat,
            capitalization,
        )
    }

    /// <p>Sets the text format's font <i>families</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontFamilies(const QStringList& families)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFamilies">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format's font <i>families</i>.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontFamilies">fontFamilies</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_font_families(
        &mut self,
        families: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontFamilies(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(families)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the text format's font <i>family</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontFamily(const QString& family)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFamily">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format's font <i>family</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontFamily">fontFamily</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_family(
        &mut self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontFamily(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        )
    }

    /// <p>If <i>fixedPitch</i> is true, sets the text format's font to be fixed pitch; otherwise a non-fixed pitch font is used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontFixedPitch(bool fixedPitch)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFixedPitch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>fixedPitch</i> is true, sets the text format's font to be fixed pitch; otherwise a non-fixed pitch font is used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontFixedPitch">fontFixedPitch</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_fixed_pitch(&mut self, fixed_pitch: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontFixedPitch(
            self as *mut crate::QTextCharFormat,
            fixed_pitch,
        )
    }

    /// <p>Sets the hinting preference of the text format's font to be <i>hintingPreference</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontHintingPreference(QFont::HintingPreference hintingPreference)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontHintingPreference">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the hinting preference of the text format's font to be <i>hintingPreference</i>.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontHintingPreference">fontHintingPreference</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setHintingPreference">QFont::setHintingPreference</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_hinting_preference(
        &mut self,
        hinting_preference: crate::q_font::HintingPreference,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontHintingPreference(
            self as *mut crate::QTextCharFormat,
            hinting_preference,
        )
    }

    /// <p>If <i>italic</i> is true, sets the text format's font to be italic; otherwise the font will be non-italic.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontItalic(bool italic)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontItalic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>italic</i> is true, sets the text format's font to be italic; otherwise the font will be non-italic.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontItalic">fontItalic</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_italic(&mut self, italic: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontItalic(
            self as *mut crate::QTextCharFormat,
            italic,
        )
    }

    /// <p>Enables kerning for this font if <i>enable</i> is true; otherwise disables it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontKerning(bool enable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontKerning">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables kerning for this font if <i>enable</i> is true; otherwise disables it.</p>
    /// <p>When kerning is enabled, glyph metrics do not add up anymore, even for Latin text. In other words, the assumption that width('a') + width('b') is equal to width("ab") is not neccesairly true.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontKerning">fontKerning</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_kerning(&mut self, enable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontKerning(
            self as *mut crate::QTextCharFormat,
            enable,
        )
    }

    /// <p>Sets the letter spacing of this format to the given <i>spacing</i>. The meaning of the value depends on the font letter spacing type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontLetterSpacing(double spacing)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontLetterSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the letter spacing of this format to the given <i>spacing</i>. The meaning of the value depends on the font letter spacing type.</p>
    /// <p>For percentage spacing a value of 100 indicates default spacing; a value of 200 doubles the amount of space a letter takes.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontLetterSpacing">fontLetterSpacing</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontLetterSpacingType">setFontLetterSpacingType</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontLetterSpacingType">fontLetterSpacingType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_letter_spacing(&mut self, spacing: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontLetterSpacing(
            self as *mut crate::QTextCharFormat,
            spacing,
        )
    }

    /// <p>Sets the letter spacing type of this format to <i>letterSpacingType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontLetterSpacingType(QFont::SpacingType letterSpacingType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontLetterSpacingType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the letter spacing type of this format to <i>letterSpacingType</i>.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontLetterSpacingType">fontLetterSpacingType</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontLetterSpacing">setFontLetterSpacing</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontLetterSpacing">fontLetterSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_letter_spacing_type(
        &mut self,
        letter_spacing_type: crate::q_font::SpacingType,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontLetterSpacingType(
            self as *mut crate::QTextCharFormat,
            letter_spacing_type,
        )
    }

    /// <p>If <i>overline</i> is true, sets the text format's font to be overlined; otherwise the font is displayed non-overlined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontOverline(bool overline)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontOverline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>overline</i> is true, sets the text format's font to be overlined; otherwise the font is displayed non-overlined.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontOverline">fontOverline</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_overline(&mut self, overline: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontOverline(
            self as *mut crate::QTextCharFormat,
            overline,
        )
    }

    /// <p>Sets the text format's font <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontPointSize(double size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontPointSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format's font <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontPointSize">fontPointSize</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_point_size(&mut self, size: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontPointSize(
            self as *mut crate::QTextCharFormat,
            size,
        )
    }

    /// <p>Sets the stretch factor for the font to <i>factor</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontStretch(int factor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStretch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the stretch factor for the font to <i>factor</i>.</p>
    /// <p>The stretch factor changes the width of all characters in the font by factor percent. For example, setting <i>factor</i> to 150 results in all characters in the font being 1.5 times (ie. 150%) wider. The default stretch factor is 100. The minimum stretch factor is 1, and the maximum stretch factor is 4000.</p>
    /// <p>The stretch factor is only applied to outline fonts. The stretch factor is ignored for bitmap fonts.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStretch">fontStretch</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_stretch(&mut self, factor: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontStretch(
            self as *mut crate::QTextCharFormat,
            factor,
        )
    }

    /// <p>If <i>strikeOut</i> is true, sets the text format's font with strike-out enabled (with a horizontal line through it); otherwise it is displayed without strikeout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontStrikeOut(bool strikeOut)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStrikeOut">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>strikeOut</i> is true, sets the text format's font with strike-out enabled (with a horizontal line through it); otherwise it is displayed without strikeout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStrikeOut">fontStrikeOut</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_strike_out(&mut self, strike_out: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontStrikeOut(
            self as *mut crate::QTextCharFormat,
            strike_out,
        )
    }

    /// <p>Sets the font style <i>hint</i> and <i>strategy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStyleHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the font style <i>hint</i> and <i>strategy</i>.</p>
    /// <p>Qt does not support style hints on X11 since this information is not provided by the window system.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStyleHint">fontStyleHint</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">QFont::setStyleHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_style_hint_2a(
        &mut self,
        hint: crate::q_font::StyleHint,
        strategy: crate::q_font::StyleStrategy,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontStyleHint(
            self as *mut crate::QTextCharFormat,
            hint,
            strategy,
        )
    }

    /// <p>Sets the font style <i>hint</i> and <i>strategy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontStyleHint(QFont::StyleHint hint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStyleHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the font style <i>hint</i> and <i>strategy</i>.</p>
    /// <p>Qt does not support style hints on X11 since this information is not provided by the window system.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStyleHint">fontStyleHint</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setStyleHint">QFont::setStyleHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_style_hint_1a(&mut self, hint: crate::q_font::StyleHint) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontStyleHint1(
            self as *mut crate::QTextCharFormat,
            hint,
        )
    }

    /// <p>Sets the text format's font <i>styleName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontStyleName(const QString& styleName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStyleName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format's font <i>styleName</i>.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStyleName">fontStyleName</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setStyleName">QFont::setStyleName</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_font_style_name(
        &mut self,
        style_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontStyleName(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the font style <i>strategy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontStyleStrategy(QFont::StyleStrategy strategy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStyleStrategy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the font style <i>strategy</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontStyleStrategy">fontStyleStrategy</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#setStyleStrategy">QFont::setStyleStrategy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_style_strategy(&mut self, strategy: crate::q_font::StyleStrategy) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontStyleStrategy(
            self as *mut crate::QTextCharFormat,
            strategy,
        )
    }

    /// <p>If <i>underline</i> is true, sets the text format's font to be underlined; otherwise it is displayed non-underlined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontUnderline(bool underline)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontUnderline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>underline</i> is true, sets the text format's font to be underlined; otherwise it is displayed non-underlined.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontUnderline">fontUnderline</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_underline(&mut self, underline: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontUnderline(
            self as *mut crate::QTextCharFormat,
            underline,
        )
    }

    /// <p>Sets the text format's font weight to <i>weight</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontWeight(int weight)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontWeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format's font weight to <i>weight</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontWeight">fontWeight</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Weight</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_font_weight(&mut self, weight: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontWeight(
            self as *mut crate::QTextCharFormat,
            weight,
        )
    }

    /// <p>Sets the word spacing of this format to the given <i>spacing</i>, in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setFontWordSpacing(double spacing)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontWordSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the word spacing of this format to the given <i>spacing</i>, in pixels.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#fontWordSpacing">fontWordSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font_word_spacing(&mut self, spacing: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setFontWordSpacing(
            self as *mut crate::QTextCharFormat,
            spacing,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setTableCellColumnSpan(int tableCellColumnSpan)```</span>.
    #[inline(always)]
    pub unsafe fn set_table_cell_column_span(
        &mut self,
        table_cell_column_span: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setTableCellColumnSpan(
            self as *mut crate::QTextCharFormat,
            table_cell_column_span,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setTableCellRowSpan(int tableCellRowSpan)```</span>.
    #[inline(always)]
    pub unsafe fn set_table_cell_row_span(&mut self, table_cell_row_span: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setTableCellRowSpan(
            self as *mut crate::QTextCharFormat,
            table_cell_row_span,
        )
    }

    /// <p>Sets the pen used to draw the outlines of characters to the given <i>pen</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setTextOutline(const QPen& pen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setTextOutline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pen used to draw the outlines of characters to the given <i>pen</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#textOutline">textOutline</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_outline(
        &mut self,
        pen: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setTextOutline(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPen>>::cast_into(pen).as_raw_ptr(),
        )
    }

    /// <p>Sets the tool tip for a fragment of text to the given <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setToolTip(const QString& tip)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setToolTip">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the tool tip for a fragment of text to the given <i>text</i>.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#toolTip">toolTip</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_tool_tip(
        &mut self,
        tip: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setToolTip(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(tip)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the underline color used for the characters with this format to the <i>color</i> specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setUnderlineColor(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setUnderlineColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the underline color used for the characters with this format to the <i>color</i> specified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#underlineColor">underlineColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_underline_color(
        &mut self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setUnderlineColor(
            self as *mut crate::QTextCharFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>Sets the style of underlining the text to <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setUnderlineStyle(QTextCharFormat::UnderlineStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setUnderlineStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the style of underlining the text to <i>style</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#underlineStyle">underlineStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_underline_style(&mut self, style: crate::q_text_char_format::UnderlineStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setUnderlineStyle(
            self as *mut crate::QTextCharFormat,
            style,
        )
    }

    /// <p>Sets the vertical alignment used for the characters with this format to the <i>alignment</i> specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCharFormat::setVerticalAlignment(QTextCharFormat::VerticalAlignment alignment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setVerticalAlignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the vertical alignment used for the characters with this format to the <i>alignment</i> specified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#verticalAlignment">verticalAlignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_vertical_alignment(
        &mut self,
        alignment: crate::q_text_char_format::VerticalAlignment,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_setVerticalAlignment(
            self as *mut crate::QTextCharFormat,
            alignment,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```int QTextCharFormat::tableCellColumnSpan() const```</span>.
    #[inline(always)]
    pub unsafe fn table_cell_column_span(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_tableCellColumnSpan(
            self as *const crate::QTextCharFormat,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```int QTextCharFormat::tableCellRowSpan() const```</span>.
    #[inline(always)]
    pub unsafe fn table_cell_row_span(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_tableCellRowSpan(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the pen used to draw the outlines of characters in this format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPen QTextCharFormat::textOutline() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#textOutline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pen used to draw the outlines of characters in this format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setTextOutline">setTextOutline</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_outline(&self) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_textOutline(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the tool tip that is displayed for a fragment of text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextCharFormat::toolTip() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#toolTip">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the tool tip that is displayed for a fragment of text.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setToolTip">setToolTip</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tool_tip(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_toolTip(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the color used to underline the characters with this format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QTextCharFormat::underlineColor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#underlineColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color used to underline the characters with this format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setUnderlineColor">setUnderlineColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn underline_color(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_underlineColor(
            self as *const crate::QTextCharFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the style of underlining the text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat::UnderlineStyle QTextCharFormat::underlineStyle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#underlineStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the style of underlining the text.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setUnderlineStyle">setUnderlineStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn underline_style(&self) -> crate::q_text_char_format::UnderlineStyle {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_underlineStyle(
            self as *const crate::QTextCharFormat,
        )
    }

    /// <p>Returns the vertical alignment used for characters with this format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat::VerticalAlignment QTextCharFormat::verticalAlignment() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html#verticalAlignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical alignment used for characters with this format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcharformat.html#setVerticalAlignment">setVerticalAlignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn vertical_alignment(&self) -> crate::q_text_char_format::VerticalAlignment {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_verticalAlignment(
            self as *const crate::QTextCharFormat,
        )
    }
}

pub mod q_text_block_format {
    //! C++ type: <span style='color: green;'>```QTextBlockFormat```</span>

    /// <p>This enum describes the various types of line spacing support paragraphs can have.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextBlockFormat::LineHeightTypes```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the various types of line spacing support paragraphs can have.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight-1">lineHeight</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">lineHeightType</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">setLineHeight</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct LineHeightTypes(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for LineHeightTypes {
        fn from(value: ::std::os::raw::c_int) -> Self {
            LineHeightTypes(value)
        }
    }

    impl From<LineHeightTypes> for ::std::os::raw::c_int {
        fn from(value: LineHeightTypes) -> Self {
            value.0
        }
    }

    impl LineHeightTypes {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl LineHeightTypes {
        /// This is the default line height: single spacing. (C++ enum variant: <span style='color: green;'>```SingleHeight = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const SingleHeight: crate::q_text_block_format::LineHeightTypes =
            crate::q_text_block_format::LineHeightTypes(0);
        /// This sets the spacing proportional to the line (in percentage). For example, set to 200 for double spacing. (C++ enum variant: <span style='color: green;'>```ProportionalHeight = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ProportionalHeight: crate::q_text_block_format::LineHeightTypes =
            crate::q_text_block_format::LineHeightTypes(1);
        /// This sets the line height to a fixed line height (in pixels). (C++ enum variant: <span style='color: green;'>```FixedHeight = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const FixedHeight: crate::q_text_block_format::LineHeightTypes =
            crate::q_text_block_format::LineHeightTypes(2);
        /// This sets the minimum line height (in pixels). (C++ enum variant: <span style='color: green;'>```MinimumHeight = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const MinimumHeight: crate::q_text_block_format::LineHeightTypes =
            crate::q_text_block_format::LineHeightTypes(3);
        /// This adds the specified height between lines (in pixels). (C++ enum variant: <span style='color: green;'>```LineDistanceHeight = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const LineDistanceHeight: crate::q_text_block_format::LineHeightTypes =
            crate::q_text_block_format::LineHeightTypes(4);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> class provides formatting information for blocks of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextBlockFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextblockformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> class provides formatting information for blocks of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A document is composed of a list of blocks, represented by <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> objects. Each block can contain an item of some kind, such as a paragraph of text, a table, a list, or an image. Every block has an associated <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> that specifies its characteristics.</p>
/// <p>To cater for left-to-right and right-to-left languages you can set a block's direction with setDirection(). Paragraph alignment is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setAlignment">setAlignment</a>(). Margins are controlled by <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>(). Overall indentation is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setIndent">setIndent</a>(), the indentation of the first line with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTextIndent">setTextIndent</a>().</p>
/// <p>Line spacing is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">setLineHeight</a>() and retrieved via <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight-1">lineHeight</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">lineHeightType</a>(). The types of line spacing available are in the <a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a> enum.</p>
/// <p>Line breaking can be enabled and disabled with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setNonBreakableLines">setNonBreakableLines</a>().</p>
/// <p>The brush used to paint the paragraph's background is set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground()</a>, and other aspects of the text's appearance can be customized by using the <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty()</a> function with the <code>OutlinePen</code>, <code>ForegroundBrush</code>, and <code>BackgroundBrush</code> <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">QTextFormat::Property</a> values.</p>
/// <p>If a text block is part of a list, it can also have a list format that is accessible with the listFormat() function.</p></div>
#[repr(C)]
pub struct QTextBlockFormat {
    _unused: u8,
}
impl QTextBlockFormat {
    /// <p>Returns the paragraph's alignment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::AlignmentFlag> QTextBlockFormat::alignment() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#alignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paragraph's alignment.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setAlignment">setAlignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alignment(&self) -> ::qt_core::QFlags<::qt_core::AlignmentFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_alignment(
            self as *const crate::QTextBlockFormat,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the paragraph's bottom margin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextBlockFormat::bottomMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#bottomMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paragraph's bottom margin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#topMargin">topMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bottom_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_bottomMargin(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> class provides formatting information for blocks of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlockFormat& QTextBlockFormat::operator=(const QTextBlockFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> class provides formatting information for blocks of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A document is composed of a list of blocks, represented by <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> objects. Each block can contain an item of some kind, such as a paragraph of text, a table, a list, or an image. Every block has an associated <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> that specifies its characteristics.</p>
    /// <p>To cater for left-to-right and right-to-left languages you can set a block's direction with setDirection(). Paragraph alignment is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setAlignment">setAlignment</a>(). Margins are controlled by <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>(). Overall indentation is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setIndent">setIndent</a>(), the indentation of the first line with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTextIndent">setTextIndent</a>().</p>
    /// <p>Line spacing is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">setLineHeight</a>() and retrieved via <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight-1">lineHeight</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">lineHeightType</a>(). The types of line spacing available are in the <a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a> enum.</p>
    /// <p>Line breaking can be enabled and disabled with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setNonBreakableLines">setNonBreakableLines</a>().</p>
    /// <p>The brush used to paint the paragraph's background is set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground()</a>, and other aspects of the text's appearance can be customized by using the <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty()</a> function with the <code>OutlinePen</code>, <code>ForegroundBrush</code>, and <code>BackgroundBrush</code> <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">QTextFormat::Property</a> values.</p>
    /// <p>If a text block is part of a list, it can also have a list format that is accessible with the listFormat() function.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlockFormat>>,
    ) -> ::cpp_core::MutRef<crate::QTextBlockFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_operator_(
            self as *mut crate::QTextBlockFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlockFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the paragraph's heading level if it is a heading, or 0 if not.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlockFormat::headingLevel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#headingLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paragraph's heading level if it is a heading, or 0 if not.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setHeadingLevel">setHeadingLevel</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn heading_level(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_headingLevel(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>Returns the paragraph's indent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlockFormat::indent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#indent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paragraph's indent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setIndent">setIndent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn indent(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_indent(self as *const crate::QTextBlockFormat)
    }

    /// <p>Returns <code>true</code> if this block format is valid; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextBlockFormat::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this block format is valid; otherwise returns false.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_isValid(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>Returns the paragraph's left margin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextBlockFormat::leftMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#leftMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paragraph's left margin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#rightMargin">rightMargin</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#indent">indent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn left_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_leftMargin(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>Returns the height of the lines in the paragraph based on the height of the script line given by <i>scriptLineHeight</i> and the specified <i>scaling</i> factor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextBlockFormat::lineHeight(double scriptLineHeight, double scaling) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the lines in the paragraph based on the height of the script line given by <i>scriptLineHeight</i> and the specified <i>scaling</i> factor.</p>
    /// <p>The value that is returned is also dependent on the given <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">LineHeightType</a> of the paragraph as well as the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">LineHeight</a> setting that has been set for the paragraph.</p>
    /// <p>The scaling is needed for heights that include a fixed number of pixels, to scale them appropriately for printing.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a>, <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">setLineHeight</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">lineHeightType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_height_2a(
        &self,
        script_line_height: ::std::os::raw::c_double,
        scaling: ::std::os::raw::c_double,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_lineHeight(
            self as *const crate::QTextBlockFormat,
            script_line_height,
            scaling,
        )
    }

    /// <p>This returns the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">LineHeight</a> property for the paragraph.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextBlockFormat::lineHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This returns the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">LineHeight</a> property for the paragraph.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a>, <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">setLineHeight</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">lineHeightType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_height_0a(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_lineHeight1(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>This returns the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">LineHeightType</a> property of the paragraph.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlockFormat::lineHeightType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This returns the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">LineHeightType</a> property of the paragraph.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a>, <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">setLineHeight</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight-1">lineHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_height_type(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_lineHeightType(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextBlockFormat::QTextBlockFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#QTextBlockFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextBlockFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_QTextBlockFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> class provides formatting information for blocks of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextBlockFormat::QTextBlockFormat(const QTextBlockFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> class provides formatting information for blocks of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A document is composed of a list of blocks, represented by <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> objects. Each block can contain an item of some kind, such as a paragraph of text, a table, a list, or an image. Every block has an associated <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> that specifies its characteristics.</p>
    /// <p>To cater for left-to-right and right-to-left languages you can set a block's direction with setDirection(). Paragraph alignment is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setAlignment">setAlignment</a>(). Margins are controlled by <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>(). Overall indentation is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setIndent">setIndent</a>(), the indentation of the first line with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTextIndent">setTextIndent</a>().</p>
    /// <p>Line spacing is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">setLineHeight</a>() and retrieved via <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight-1">lineHeight</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">lineHeightType</a>(). The types of line spacing available are in the <a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a> enum.</p>
    /// <p>Line breaking can be enabled and disabled with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setNonBreakableLines">setNonBreakableLines</a>().</p>
    /// <p>The brush used to paint the paragraph's background is set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground()</a>, and other aspects of the text's appearance can be customized by using the <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty()</a> function with the <code>OutlinePen</code>, <code>ForegroundBrush</code>, and <code>BackgroundBrush</code> <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">QTextFormat::Property</a> values.</p>
    /// <p>If a text block is part of a list, it can also have a list format that is accessible with the listFormat() function.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlockFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextBlockFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_QTextBlockFormat1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlockFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the lines in the paragraph are non-breakable; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextBlockFormat::nonBreakableLines() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#nonBreakableLines">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the lines in the paragraph are non-breakable; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setNonBreakableLines">setNonBreakableLines</a>().</p></div>
    #[inline(always)]
    pub unsafe fn non_breakable_lines(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_nonBreakableLines(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>Returns the currently set page break policy for the paragraph. The default is <a href="http://doc.qt.io/qt-5/qtextformat.html#PageBreakFlag-enum">QTextFormat::PageBreak_Auto</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QTextFormat::PageBreakFlag> QTextBlockFormat::pageBreakPolicy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#pageBreakPolicy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set page break policy for the paragraph. The default is <a href="http://doc.qt.io/qt-5/qtextformat.html#PageBreakFlag-enum">QTextFormat::PageBreak_Auto</a>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setPageBreakPolicy">setPageBreakPolicy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn page_break_policy(
        &self,
    ) -> ::qt_core::QFlags<crate::q_text_format::PageBreakFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_pageBreakPolicy(
            self as *const crate::QTextBlockFormat,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the paragraph's right margin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextBlockFormat::rightMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#rightMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paragraph's right margin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#leftMargin">leftMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn right_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_rightMargin(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>Sets the paragraph's <i>alignment</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setAlignment(QFlags<Qt::AlignmentFlag> alignment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setAlignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the paragraph's <i>alignment</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#alignment">alignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_alignment(&mut self, alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setAlignment(
            self as *mut crate::QTextBlockFormat,
            alignment.to_int(),
        )
    }

    /// <p>Sets the paragraph's bottom <i>margin</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setBottomMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the paragraph's bottom <i>margin</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#bottomMargin">bottomMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bottom_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setBottomMargin(
            self as *mut crate::QTextBlockFormat,
            margin,
        )
    }

    /// <p>Sets the paragraph's heading <i>level</i>, where 1 is the highest-level heading type (usually with the largest possible heading font size), and increasing values are progressively deeper into the document (and usually with smaller font sizes). For example when reading an HTML H1 tag, the heading level is set to 1. Setting the heading level does not automatically change the font size; however <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#fromHtml">QTextDocumentFragment::fromHtml</a>() sets both the heading level and the font size simultaneously.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setHeadingLevel(int alevel)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setHeadingLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the paragraph's heading <i>level</i>, where 1 is the highest-level heading type (usually with the largest possible heading font size), and increasing values are progressively deeper into the document (and usually with smaller font sizes). For example when reading an HTML H1 tag, the heading level is set to 1. Setting the heading level does not automatically change the font size; however <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#fromHtml">QTextDocumentFragment::fromHtml</a>() sets both the heading level and the font size simultaneously.</p>
    /// <p>If the paragraph is not a heading, the level should be set to 0 (the default).</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#headingLevel">headingLevel</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_heading_level(&mut self, alevel: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setHeadingLevel(
            self as *mut crate::QTextBlockFormat,
            alevel,
        )
    }

    /// <p>Sets the paragraph's <i>indentation</i>. Margins are set independently of indentation with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTextIndent">setTextIndent</a>(). The <i>indentation</i> is an integer that is multiplied with the document-wide standard indent, resulting in the actual indent of the paragraph.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setIndent(int indent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setIndent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the paragraph's <i>indentation</i>. Margins are set independently of indentation with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTextIndent">setTextIndent</a>(). The <i>indentation</i> is an integer that is multiplied with the document-wide standard indent, resulting in the actual indent of the paragraph.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#indent">indent</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#indentWidth-prop">QTextDocument::indentWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_indent(&mut self, indent: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setIndent(
            self as *mut crate::QTextBlockFormat,
            indent,
        )
    }

    /// <p>Sets the paragraph's left <i>margin</i>. Indentation can be applied separately with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setIndent">setIndent</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setLeftMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the paragraph's left <i>margin</i>. Indentation can be applied separately with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setIndent">setIndent</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#leftMargin">leftMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_left_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setLeftMargin(
            self as *mut crate::QTextBlockFormat,
            margin,
        )
    }

    /// <p>Sets the line height for the paragraph to the value given by <i>height</i> which is dependent on <i>heightType</i> in the way described by the <a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a> enum.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setLineHeight(double height, int heightType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the line height for the paragraph to the value given by <i>height</i> which is dependent on <i>heightType</i> in the way described by the <a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a> enum.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a>, <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight-1">lineHeight</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">lineHeightType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_line_height(
        &mut self,
        height: ::std::os::raw::c_double,
        height_type: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setLineHeight(
            self as *mut crate::QTextBlockFormat,
            height,
            height_type,
        )
    }

    /// <p>If <i>b</i> is true, the lines in the paragraph are treated as non-breakable; otherwise they are breakable.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setNonBreakableLines(bool b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setNonBreakableLines">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>b</i> is true, the lines in the paragraph are treated as non-breakable; otherwise they are breakable.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#nonBreakableLines">nonBreakableLines</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_non_breakable_lines(&mut self, b: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setNonBreakableLines(
            self as *mut crate::QTextBlockFormat,
            b,
        )
    }

    /// <p>Sets the page break policy for the paragraph to <i>policy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setPageBreakPolicy(QFlags<QTextFormat::PageBreakFlag> flags)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setPageBreakPolicy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page break policy for the paragraph to <i>policy</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#pageBreakPolicy">pageBreakPolicy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_break_policy(
        &mut self,
        flags: ::qt_core::QFlags<crate::q_text_format::PageBreakFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setPageBreakPolicy(
            self as *mut crate::QTextBlockFormat,
            flags.to_int(),
        )
    }

    /// <p>Sets the paragraph's right <i>margin</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setRightMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the paragraph's right <i>margin</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#rightMargin">rightMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_right_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setRightMargin(
            self as *mut crate::QTextBlockFormat,
            margin,
        )
    }

    /// <p>Sets the tab positions for the text block to those specified by <i>tabs</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setTabPositions(const QList<QTextOption::Tab>& tabs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTabPositions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the tab positions for the text block to those specified by <i>tabs</i>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#tabPositions">tabPositions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_tab_positions(
        &mut self,
        tabs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setTabPositions(
            self as *mut crate::QTextBlockFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTab>>::cast_into(tabs)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the <i>indent</i> for the first line in the block. This allows the first line of a paragraph to be indented differently to the other lines, enhancing the readability of the text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setTextIndent(double aindent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTextIndent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>indent</i> for the first line in the block. This allows the first line of a paragraph to be indented differently to the other lines, enhancing the readability of the text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#textIndent">textIndent</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_indent(&mut self, aindent: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setTextIndent(
            self as *mut crate::QTextBlockFormat,
            aindent,
        )
    }

    /// <p>Sets the paragraph's top <i>margin</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlockFormat::setTopMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the paragraph's top <i>margin</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#topMargin">topMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_top_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_setTopMargin(
            self as *mut crate::QTextBlockFormat,
            margin,
        )
    }

    /// <p>Returns a list of tab positions defined for the text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab> QTextBlockFormat::tabPositions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#tabPositions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of tab positions defined for the text block.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTabPositions">setTabPositions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tab_positions(&self) -> ::cpp_core::CppBox<crate::QListOfTab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_tabPositions(
            self as *const crate::QTextBlockFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the paragraph's text indent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextBlockFormat::textIndent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#textIndent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paragraph's text indent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTextIndent">setTextIndent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_indent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_textIndent(
            self as *const crate::QTextBlockFormat,
        )
    }

    /// <p>Returns the paragraph's top margin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextBlockFormat::topMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html#topMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paragraph's top margin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#bottomMargin">bottomMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn top_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_topMargin(
            self as *const crate::QTextBlockFormat,
        )
    }
}

pub mod q_text_list_format {
    //! C++ type: <span style='color: green;'>```QTextListFormat```</span>

    /// <p>This enum describes the symbols used to decorate list items:</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextListFormat::Style```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#Style-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the symbols used to decorate list items:</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Style(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Style {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Style(value)
        }
    }

    impl From<Style> for ::std::os::raw::c_int {
        fn from(value: Style) -> Self {
            value.0
        }
    }

    impl Style {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Style {
        /// a filled circle (C++ enum variant: <span style='color: green;'>```ListDisc = -1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListDisc: crate::q_text_list_format::Style = crate::q_text_list_format::Style(-1);
        /// an empty circle (C++ enum variant: <span style='color: green;'>```ListCircle = -2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListCircle: crate::q_text_list_format::Style =
            crate::q_text_list_format::Style(-2);
        /// a filled square (C++ enum variant: <span style='color: green;'>```ListSquare = -3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListSquare: crate::q_text_list_format::Style =
            crate::q_text_list_format::Style(-3);
        /// decimal values in ascending order (C++ enum variant: <span style='color: green;'>```ListDecimal = -4```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListDecimal: crate::q_text_list_format::Style =
            crate::q_text_list_format::Style(-4);
        /// lower case Latin characters in alphabetical order (C++ enum variant: <span style='color: green;'>```ListLowerAlpha = -5```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListLowerAlpha: crate::q_text_list_format::Style =
            crate::q_text_list_format::Style(-5);
        /// upper case Latin characters in alphabetical order (C++ enum variant: <span style='color: green;'>```ListUpperAlpha = -6```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListUpperAlpha: crate::q_text_list_format::Style =
            crate::q_text_list_format::Style(-6);
        /// lower case roman numerals (supports up to 4999 items only) (C++ enum variant: <span style='color: green;'>```ListLowerRoman = -7```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListLowerRoman: crate::q_text_list_format::Style =
            crate::q_text_list_format::Style(-7);
        /// upper case roman numerals (supports up to 4999 items only) (C++ enum variant: <span style='color: green;'>```ListUpperRoman = -8```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListUpperRoman: crate::q_text_list_format::Style =
            crate::q_text_list_format::Style(-8);
        /// C++ enum variant: <span style='color: green;'>```ListStyleUndefined = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const ListStyleUndefined: crate::q_text_list_format::Style =
            crate::q_text_list_format::Style(0);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> class provides formatting information for lists in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextListFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextlistformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> class provides formatting information for lists in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A list is composed of one or more items, represented as text blocks. The list's format specifies the appearance of items in the list. In particular, it determines the indentation and the style of each item.</p>
/// <p>The indentation of the items is an integer value that causes each item to be offset from the left margin by a certain amount. This value is read with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#indent">indent</a>() and set with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setIndent">setIndent</a>().</p>
/// <p>The style used to decorate each item is set with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setStyle">setStyle</a>() and can be read with the <a href="http://doc.qt.io/qt-5/qtextlistformat.html#style">style</a>() function. The style controls the type of bullet points and numbering scheme used for items in the list. Note that lists that use the decimal numbering scheme begin counting at 1 rather than 0.</p>
/// <p>Style properties can be set to further configure the appearance of list items; for example, the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">ListNumberPrefix</a> and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">ListNumberSuffix</a> properties can be used to customize the numbers used in an ordered list so that they appear as (1), (2), (3), etc.:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">QTextListFormat</a></span> listFormat;
///
///   listFormat<span class="operator">.</span>setStyle(<span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">QTextListFormat</a></span><span class="operator">::</span>ListDecimal);
///   listFormat<span class="operator">.</span>setNumberPrefix(<span class="string">"("</span>);
///   listFormat<span class="operator">.</span>setNumberSuffix(<span class="string">")"</span>);
///
///   cursor<span class="operator">.</span>insertList(listFormat);
///
/// </pre></div>
#[repr(C)]
pub struct QTextListFormat {
    _unused: u8,
}
impl QTextListFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> class provides formatting information for lists in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextListFormat& QTextListFormat::operator=(const QTextListFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> class provides formatting information for lists in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A list is composed of one or more items, represented as text blocks. The list's format specifies the appearance of items in the list. In particular, it determines the indentation and the style of each item.</p>
    /// <p>The indentation of the items is an integer value that causes each item to be offset from the left margin by a certain amount. This value is read with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#indent">indent</a>() and set with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setIndent">setIndent</a>().</p>
    /// <p>The style used to decorate each item is set with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setStyle">setStyle</a>() and can be read with the <a href="http://doc.qt.io/qt-5/qtextlistformat.html#style">style</a>() function. The style controls the type of bullet points and numbering scheme used for items in the list. Note that lists that use the decimal numbering scheme begin counting at 1 rather than 0.</p>
    /// <p>Style properties can be set to further configure the appearance of list items; for example, the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">ListNumberPrefix</a> and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">ListNumberSuffix</a> properties can be used to customize the numbers used in an ordered list so that they appear as (1), (2), (3), etc.:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">QTextListFormat</a></span> listFormat;
    ///
    ///   listFormat<span class="operator">.</span>setStyle(<span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">QTextListFormat</a></span><span class="operator">::</span>ListDecimal);
    ///   listFormat<span class="operator">.</span>setNumberPrefix(<span class="string">"("</span>);
    ///   listFormat<span class="operator">.</span>setNumberSuffix(<span class="string">")"</span>);
    ///
    ///   cursor<span class="operator">.</span>insertList(listFormat);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextListFormat>>,
    ) -> ::cpp_core::MutRef<crate::QTextListFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_operator_(
            self as *mut crate::QTextListFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextListFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the list format's indentation. The indentation is multiplied by the <a href="http://doc.qt.io/qt-5/qtextdocument.html#indentWidth-prop">QTextDocument::indentWidth</a> property to get the effective indent in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextListFormat::indent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#indent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list format's indentation. The indentation is multiplied by the <a href="http://doc.qt.io/qt-5/qtextdocument.html#indentWidth-prop">QTextDocument::indentWidth</a> property to get the effective indent in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlistformat.html#setIndent">setIndent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn indent(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_indent(self as *const crate::QTextListFormat)
    }

    /// <p>Returns <code>true</code> if this list format is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextListFormat::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list format is valid; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_isValid(self as *const crate::QTextListFormat)
    }

    /// <p>Constructs a new list format object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextListFormat::QTextListFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new list format object.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextListFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_QTextListFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> class provides formatting information for lists in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextListFormat::QTextListFormat(const QTextListFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> class provides formatting information for lists in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A list is composed of one or more items, represented as text blocks. The list's format specifies the appearance of items in the list. In particular, it determines the indentation and the style of each item.</p>
    /// <p>The indentation of the items is an integer value that causes each item to be offset from the left margin by a certain amount. This value is read with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#indent">indent</a>() and set with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setIndent">setIndent</a>().</p>
    /// <p>The style used to decorate each item is set with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setStyle">setStyle</a>() and can be read with the <a href="http://doc.qt.io/qt-5/qtextlistformat.html#style">style</a>() function. The style controls the type of bullet points and numbering scheme used for items in the list. Note that lists that use the decimal numbering scheme begin counting at 1 rather than 0.</p>
    /// <p>Style properties can be set to further configure the appearance of list items; for example, the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">ListNumberPrefix</a> and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">ListNumberSuffix</a> properties can be used to customize the numbers used in an ordered list so that they appear as (1), (2), (3), etc.:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">QTextListFormat</a></span> listFormat;
    ///
    ///   listFormat<span class="operator">.</span>setStyle(<span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">QTextListFormat</a></span><span class="operator">::</span>ListDecimal);
    ///   listFormat<span class="operator">.</span>setNumberPrefix(<span class="string">"("</span>);
    ///   listFormat<span class="operator">.</span>setNumberSuffix(<span class="string">")"</span>);
    ///
    ///   cursor<span class="operator">.</span>insertList(listFormat);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextListFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextListFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_QTextListFormat1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextListFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list format's number prefix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextListFormat::numberPrefix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#numberPrefix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list format's number prefix.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlistformat.html#setNumberPrefix">setNumberPrefix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn number_prefix(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_numberPrefix(
            self as *const crate::QTextListFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list format's number suffix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextListFormat::numberSuffix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#numberSuffix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list format's number suffix.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlistformat.html#setNumberSuffix">setNumberSuffix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn number_suffix(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_numberSuffix(
            self as *const crate::QTextListFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the list format's <i>indentation</i>. The indentation is multiplied by the <a href="http://doc.qt.io/qt-5/qtextdocument.html#indentWidth-prop">QTextDocument::indentWidth</a> property to get the effective indent in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextListFormat::setIndent(int indent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setIndent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the list format's <i>indentation</i>. The indentation is multiplied by the <a href="http://doc.qt.io/qt-5/qtextdocument.html#indentWidth-prop">QTextDocument::indentWidth</a> property to get the effective indent in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlistformat.html#indent">indent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_indent(&mut self, indent: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_setIndent(
            self as *mut crate::QTextListFormat,
            indent,
        )
    }

    /// <p>Sets the list format's number prefix to the string specified by <i>numberPrefix</i>. This can be used with all sorted list types. It does not have any effect on unsorted list types.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextListFormat::setNumberPrefix(const QString& numberPrefix)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setNumberPrefix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the list format's number prefix to the string specified by <i>numberPrefix</i>. This can be used with all sorted list types. It does not have any effect on unsorted list types.</p>
    /// <p>The default prefix is an empty string.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlistformat.html#numberPrefix">numberPrefix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_number_prefix(
        &mut self,
        number_prefix: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_setNumberPrefix(
            self as *mut crate::QTextListFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(number_prefix)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the list format's number suffix to the string specified by <i>numberSuffix</i>. This can be used with all sorted list types. It does not have any effect on unsorted list types.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextListFormat::setNumberSuffix(const QString& numberSuffix)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setNumberSuffix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the list format's number suffix to the string specified by <i>numberSuffix</i>. This can be used with all sorted list types. It does not have any effect on unsorted list types.</p>
    /// <p>The default suffix is ".".</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlistformat.html#numberSuffix">numberSuffix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_number_suffix(
        &mut self,
        number_suffix: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_setNumberSuffix(
            self as *mut crate::QTextListFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(number_suffix)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the list format's <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextListFormat::setStyle(QTextListFormat::Style style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the list format's <i>style</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlistformat.html#style">style</a>() and <a href="http://doc.qt.io/qt-5/qtextlistformat.html#Style-enum">Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_style(&mut self, style: crate::q_text_list_format::Style) {
        crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_setStyle(
            self as *mut crate::QTextListFormat,
            style,
        )
    }

    /// <p>Returns the list format's style.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextListFormat::Style QTextListFormat::style() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html#style">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list format's style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlistformat.html#setStyle">setStyle</a>() and <a href="http://doc.qt.io/qt-5/qtextlistformat.html#Style-enum">Style</a>.</p></div>
    #[inline(always)]
    pub unsafe fn style(&self) -> crate::q_text_list_format::Style {
        crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_style(self as *const crate::QTextListFormat)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> class provides formatting information for images in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextImageFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextimageformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> class provides formatting information for images in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>Inline images are represented by a Unicode value U+FFFC (OBJECT REPLACEMENT CHARACTER) which has an associated <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a>. The image format specifies a name with <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setName">setName</a>() that is used to locate the image. The size of the rectangle that the image will occupy is specified using <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setWidth">setWidth</a>() and <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setHeight">setHeight</a>().</p>
/// <p>Images can be supplied in any format for which Qt has an image reader, so SVG drawings can be included alongside PNG, TIFF and other bitmap formats.</p></div>
#[repr(C)]
pub struct QTextImageFormat {
    _unused: u8,
}
impl QTextImageFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> class provides formatting information for images in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextImageFormat& QTextImageFormat::operator=(const QTextImageFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> class provides formatting information for images in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>Inline images are represented by a Unicode value U+FFFC (OBJECT REPLACEMENT CHARACTER) which has an associated <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a>. The image format specifies a name with <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setName">setName</a>() that is used to locate the image. The size of the rectangle that the image will occupy is specified using <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setWidth">setWidth</a>() and <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setHeight">setHeight</a>().</p>
    /// <p>Images can be supplied in any format for which Qt has an image reader, so SVG drawings can be included alongside PNG, TIFF and other bitmap formats.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextImageFormat>>,
    ) -> ::cpp_core::MutRef<crate::QTextImageFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_operator_(
            self as *mut crate::QTextImageFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextImageFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the height of the rectangle occupied by the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextImageFormat::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the rectangle occupied by the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setHeight">setHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_height(self as *const crate::QTextImageFormat)
    }

    /// <p>Returns <code>true</code> if this image format is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextImageFormat::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this image format is valid; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_isValid(
            self as *const crate::QTextImageFormat,
        )
    }

    /// <p>Returns the name of the image. The name refers to an entry in the application's resources file.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextImageFormat::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#name">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the image. The name refers to an entry in the application's resources file.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#setName">setName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_name(
            self as *const crate::QTextImageFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a new image format object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextImageFormat::QTextImageFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#QTextImageFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new image format object.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextImageFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_QTextImageFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> class provides formatting information for images in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextImageFormat::QTextImageFormat(const QTextImageFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> class provides formatting information for images in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>Inline images are represented by a Unicode value U+FFFC (OBJECT REPLACEMENT CHARACTER) which has an associated <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a>. The image format specifies a name with <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setName">setName</a>() that is used to locate the image. The size of the rectangle that the image will occupy is specified using <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setWidth">setWidth</a>() and <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setHeight">setHeight</a>().</p>
    /// <p>Images can be supplied in any format for which Qt has an image reader, so SVG drawings can be included alongside PNG, TIFF and other bitmap formats.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextImageFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextImageFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_QTextImageFormat1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextImageFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value set by <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setQuality">setQuality</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextImageFormat::quality() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#quality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value set by <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setQuality">setQuality</a>().</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#setQuality">setQuality</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn quality(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_quality(
            self as *const crate::QTextImageFormat,
        )
    }

    /// <p>Sets the <i>height</i> of the rectangle occupied by the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextImageFormat::setHeight(double height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>height</i> of the rectangle occupied by the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#height">height</a>() and <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setWidth">setWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_height(&mut self, height: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_setHeight(
            self as *mut crate::QTextImageFormat,
            height,
        )
    }

    /// <p>Sets the <i>name</i> of the image. The <i>name</i> is used to locate the image in the application's resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextImageFormat::setName(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>name</i> of the image. The <i>name</i> is used to locate the image in the application's resources.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#name">name</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_name(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_setName(
            self as *mut crate::QTextImageFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the quality that should be used by exporters when exporting the image. <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will export jpg images with the <i>quality</i> set here when exporting to ODF files if <i>quality</i> is set to a value between 0 and 100. Or it will export png images if <i>quality</i> is set to 100 (default) or greater.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextImageFormat::setQuality(int quality = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setQuality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the quality that should be used by exporters when exporting the image. <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will export jpg images with the <i>quality</i> set here when exporting to ODF files if <i>quality</i> is set to a value between 0 and 100. Or it will export png images if <i>quality</i> is set to 100 (default) or greater.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#quality">quality</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_quality_1a(&mut self, quality: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_setQuality(
            self as *mut crate::QTextImageFormat,
            quality,
        )
    }

    /// <p>Sets the quality that should be used by exporters when exporting the image. <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will export jpg images with the <i>quality</i> set here when exporting to ODF files if <i>quality</i> is set to a value between 0 and 100. Or it will export png images if <i>quality</i> is set to 100 (default) or greater.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextImageFormat::setQuality()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setQuality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the quality that should be used by exporters when exporting the image. <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will export jpg images with the <i>quality</i> set here when exporting to ODF files if <i>quality</i> is set to a value between 0 and 100. Or it will export png images if <i>quality</i> is set to 100 (default) or greater.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#quality">quality</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_quality_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_setQuality1(
            self as *mut crate::QTextImageFormat,
        )
    }

    /// <p>Sets the <i>width</i> of the rectangle occupied by the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextImageFormat::setWidth(double width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>width</i> of the rectangle occupied by the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setHeight">setHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width(&mut self, width: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_setWidth(
            self as *mut crate::QTextImageFormat,
            width,
        )
    }

    /// <p>Returns the width of the rectangle occupied by the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextImageFormat::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the rectangle occupied by the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextimageformat.html#height">height</a>() and <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setWidth">setWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_width(self as *const crate::QTextImageFormat)
    }
}

pub mod q_text_frame_format {
    //! C++ type: <span style='color: green;'>```QTextFrameFormat```</span>

    /// <p>This enum describes how a frame is located relative to the surrounding text.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextFrameFormat::Position```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#Position-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes how a frame is located relative to the surrounding text.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#position">position</a>() and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">CssFloat</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Position(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Position {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Position(value)
        }
    }

    impl From<Position> for ::std::os::raw::c_int {
        fn from(value: Position) -> Self {
            value.0
        }
    }

    impl Position {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Position {
        /// C++ enum variant: <span style='color: green;'>```InFlow = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const InFlow: crate::q_text_frame_format::Position =
            crate::q_text_frame_format::Position(0);
        /// C++ enum variant: <span style='color: green;'>```FloatLeft = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const FloatLeft: crate::q_text_frame_format::Position =
            crate::q_text_frame_format::Position(1);
        /// C++ enum variant: <span style='color: green;'>```FloatRight = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const FloatRight: crate::q_text_frame_format::Position =
            crate::q_text_frame_format::Position(2);
    }

    /// <p>This enum describes different border styles for the text frame.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextFrameFormat::BorderStyle```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#BorderStyle-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes different border styles for the text frame.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#borderStyle">borderStyle</a>() and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">FrameBorderStyle</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct BorderStyle(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for BorderStyle {
        fn from(value: ::std::os::raw::c_int) -> Self {
            BorderStyle(value)
        }
    }

    impl From<BorderStyle> for ::std::os::raw::c_int {
        fn from(value: BorderStyle) -> Self {
            value.0
        }
    }

    impl BorderStyle {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl BorderStyle {
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_None = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleNone: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(0);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_Dotted = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleDotted: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(1);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_Dashed = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleDashed: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(2);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_Solid = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleSolid: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(3);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_Double = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleDouble: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(4);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_DotDash = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleDotDash: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(5);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_DotDotDash = 6```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleDotDotDash: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(6);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_Groove = 7```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleGroove: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(7);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_Ridge = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleRidge: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(8);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_Inset = 9```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleInset: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(9);
        /// C++ enum variant: <span style='color: green;'>```BorderStyle_Outset = 10```</span>
        #[allow(non_upper_case_globals)]
        pub const BorderStyleOutset: crate::q_text_frame_format::BorderStyle =
            crate::q_text_frame_format::BorderStyle(10);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> class provides formatting information for frames in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextFrameFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextframeformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> class provides formatting information for frames in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A text frame groups together one or more blocks of text, providing a layer of structure larger than the paragraph. The format of a frame specifies how it is rendered and positioned on the screen. It does not directly specify the behavior of the text formatting within, but provides constraints on the layout of its children.</p>
/// <p>The frame format defines the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextframeformat.html#height">height</a>() of the frame on the screen. Each frame can have a <a href="http://doc.qt.io/qt-5/qtextframeformat.html#border">border</a>() that surrounds its contents with a rectangular box. The border is surrounded by a <a href="http://doc.qt.io/qt-5/qtextframeformat.html#margin">margin</a>() around the frame, and the contents of the frame are kept separate from the border by the frame's <a href="http://doc.qt.io/qt-5/qtextframeformat.html#padding">padding</a>(). This scheme is similar to the box model used by Cascading Style Sheets for HTML pages.</p>
/// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtextframe-style.png" alt=""></p><p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html#position">position</a>() of a frame is set using <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPosition">setPosition</a>() and determines how it is located relative to the surrounding text.</p>
/// <p>The validity of a <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> object can be determined with the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#isValid">isValid</a>() function.</p></div>
#[repr(C)]
pub struct QTextFrameFormat {
    _unused: u8,
}
impl QTextFrameFormat {
    /// <p>Returns the width of the border in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextFrameFormat::border() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#border">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the border in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setBorder">setBorder</a>().</p></div>
    #[inline(always)]
    pub unsafe fn border(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_border(self as *const crate::QTextFrameFormat)
    }

    /// <p>Returns the brush used for the frame's border.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QTextFrameFormat::borderBrush() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#borderBrush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush used for the frame's border.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setBorderBrush">setBorderBrush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn border_brush(&self) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_borderBrush(
            self as *const crate::QTextFrameFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the style of the frame's border.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat::BorderStyle QTextFrameFormat::borderStyle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#borderStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the style of the frame's border.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setBorderStyle">setBorderStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn border_style(&self) -> crate::q_text_frame_format::BorderStyle {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_borderStyle(
            self as *const crate::QTextFrameFormat,
        )
    }

    /// <p>Returns the width of the frame's bottom margin in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextFrameFormat::bottomMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#bottomMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the frame's bottom margin in pixels.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setBottomMargin">setBottomMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bottom_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_bottomMargin(
            self as *const crate::QTextFrameFormat,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> class provides formatting information for frames in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat& QTextFrameFormat::operator=(const QTextFrameFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> class provides formatting information for frames in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A text frame groups together one or more blocks of text, providing a layer of structure larger than the paragraph. The format of a frame specifies how it is rendered and positioned on the screen. It does not directly specify the behavior of the text formatting within, but provides constraints on the layout of its children.</p>
    /// <p>The frame format defines the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextframeformat.html#height">height</a>() of the frame on the screen. Each frame can have a <a href="http://doc.qt.io/qt-5/qtextframeformat.html#border">border</a>() that surrounds its contents with a rectangular box. The border is surrounded by a <a href="http://doc.qt.io/qt-5/qtextframeformat.html#margin">margin</a>() around the frame, and the contents of the frame are kept separate from the border by the frame's <a href="http://doc.qt.io/qt-5/qtextframeformat.html#padding">padding</a>(). This scheme is similar to the box model used by Cascading Style Sheets for HTML pages.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtextframe-style.png" alt=""></p><p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html#position">position</a>() of a frame is set using <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPosition">setPosition</a>() and determines how it is located relative to the surrounding text.</p>
    /// <p>The validity of a <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> object can be determined with the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#isValid">isValid</a>() function.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFrameFormat>>,
    ) -> ::cpp_core::MutRef<crate::QTextFrameFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_operator_(
            self as *mut crate::QTextFrameFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFrameFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the height of the frame's border rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength QTextFrameFormat::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the frame's border rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setHeight">setHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_height(
            self as *const crate::QTextFrameFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the format description is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFrameFormat::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the format description is valid; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_isValid(
            self as *const crate::QTextFrameFormat,
        )
    }

    /// <p>Returns the width of the frame's left margin in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextFrameFormat::leftMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#leftMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the frame's left margin in pixels.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setLeftMargin">setLeftMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn left_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_leftMargin(
            self as *const crate::QTextFrameFormat,
        )
    }

    /// <p>Returns the width of the frame's external margin in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextFrameFormat::margin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#margin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the frame's external margin in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setMargin">setMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_margin(self as *const crate::QTextFrameFormat)
    }

    /// <p>Constructs a text frame format object with the default properties.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFrameFormat::QTextFrameFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#QTextFrameFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a text frame format object with the default properties.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextFrameFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_QTextFrameFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> class provides formatting information for frames in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFrameFormat::QTextFrameFormat(const QTextFrameFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> class provides formatting information for frames in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A text frame groups together one or more blocks of text, providing a layer of structure larger than the paragraph. The format of a frame specifies how it is rendered and positioned on the screen. It does not directly specify the behavior of the text formatting within, but provides constraints on the layout of its children.</p>
    /// <p>The frame format defines the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextframeformat.html#height">height</a>() of the frame on the screen. Each frame can have a <a href="http://doc.qt.io/qt-5/qtextframeformat.html#border">border</a>() that surrounds its contents with a rectangular box. The border is surrounded by a <a href="http://doc.qt.io/qt-5/qtextframeformat.html#margin">margin</a>() around the frame, and the contents of the frame are kept separate from the border by the frame's <a href="http://doc.qt.io/qt-5/qtextframeformat.html#padding">padding</a>(). This scheme is similar to the box model used by Cascading Style Sheets for HTML pages.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtextframe-style.png" alt=""></p><p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html#position">position</a>() of a frame is set using <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPosition">setPosition</a>() and determines how it is located relative to the surrounding text.</p>
    /// <p>The validity of a <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> object can be determined with the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#isValid">isValid</a>() function.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFrameFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextFrameFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_QTextFrameFormat1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFrameFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the width of the frame's internal padding in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextFrameFormat::padding() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#padding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the frame's internal padding in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPadding">setPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn padding(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_padding(
            self as *const crate::QTextFrameFormat,
        )
    }

    /// <p>Returns the currently set page break policy for the frame/table. The default is <a href="http://doc.qt.io/qt-5/qtextformat.html#PageBreakFlag-enum">QTextFormat::PageBreak_Auto</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QTextFormat::PageBreakFlag> QTextFrameFormat::pageBreakPolicy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#pageBreakPolicy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set page break policy for the frame/table. The default is <a href="http://doc.qt.io/qt-5/qtextformat.html#PageBreakFlag-enum">QTextFormat::PageBreak_Auto</a>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPageBreakPolicy">setPageBreakPolicy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn page_break_policy(
        &self,
    ) -> ::qt_core::QFlags<crate::q_text_format::PageBreakFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_pageBreakPolicy(
            self as *const crate::QTextFrameFormat,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the positioning policy for frames with this frame format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat::Position QTextFrameFormat::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#position">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the positioning policy for frames with this frame format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPosition">setPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> crate::q_text_frame_format::Position {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_position(
            self as *const crate::QTextFrameFormat,
        )
    }

    /// <p>Returns the width of the frame's right margin in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextFrameFormat::rightMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#rightMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the frame's right margin in pixels.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setRightMargin">setRightMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn right_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_rightMargin(
            self as *const crate::QTextFrameFormat,
        )
    }

    /// <p>Sets the <i>width</i> (in pixels) of the frame's border.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setBorder(double border)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setBorder">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>width</i> (in pixels) of the frame's border.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#border">border</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_border(&mut self, border: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setBorder(
            self as *mut crate::QTextFrameFormat,
            border,
        )
    }

    /// <p>Sets the <i>brush</i> used for the frame's border.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setBorderBrush(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setBorderBrush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>brush</i> used for the frame's border.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#borderBrush">borderBrush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_border_brush(
        &mut self,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setBorderBrush(
            self as *mut crate::QTextFrameFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>Sets the <i>style</i> of the frame's border.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setBorderStyle(QTextFrameFormat::BorderStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setBorderStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>style</i> of the frame's border.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#borderStyle">borderStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_border_style(&mut self, style: crate::q_text_frame_format::BorderStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setBorderStyle(
            self as *mut crate::QTextFrameFormat,
            style,
        )
    }

    /// <p>Sets the frame's bottom <i>margin</i> in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setBottomMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setBottomMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the frame's bottom <i>margin</i> in pixels.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#bottomMargin">bottomMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bottom_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setBottomMargin(
            self as *mut crate::QTextFrameFormat,
            margin,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setHeight(double height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setHeight-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the frame's <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_height_double(&mut self, height: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setHeight(
            self as *mut crate::QTextFrameFormat,
            height,
        )
    }

    /// <p>Sets the frame's <i>height</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setHeight(const QTextLength& height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the frame's <i>height</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#height">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_height_q_text_length(
        &mut self,
        height: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setHeight1(
            self as *mut crate::QTextFrameFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(height)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the frame's left <i>margin</i> in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setLeftMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setLeftMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the frame's left <i>margin</i> in pixels.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#leftMargin">leftMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_left_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setLeftMargin(
            self as *mut crate::QTextFrameFormat,
            margin,
        )
    }

    /// <p>Sets the frame's <i>margin</i> in pixels. This method also sets the left, right, top and bottom margins of the frame to the same value. The individual margins override the general margin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the frame's <i>margin</i> in pixels. This method also sets the left, right, top and bottom margins of the frame to the same value. The individual margins override the general margin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#margin">margin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setMargin(
            self as *mut crate::QTextFrameFormat,
            margin,
        )
    }

    /// <p>Sets the <i>width</i> of the frame's internal padding in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setPadding(double padding)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>width</i> of the frame's internal padding in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#padding">padding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_padding(&mut self, padding: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setPadding(
            self as *mut crate::QTextFrameFormat,
            padding,
        )
    }

    /// <p>Sets the page break policy for the frame/table to <i>policy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setPageBreakPolicy(QFlags<QTextFormat::PageBreakFlag> flags)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPageBreakPolicy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page break policy for the frame/table to <i>policy</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#pageBreakPolicy">pageBreakPolicy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_break_policy(
        &mut self,
        flags: ::qt_core::QFlags<crate::q_text_format::PageBreakFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setPageBreakPolicy(
            self as *mut crate::QTextFrameFormat,
            flags.to_int(),
        )
    }

    /// <p>Sets the <i>policy</i> for positioning frames with this frame format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setPosition(QTextFrameFormat::Position f)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>policy</i> for positioning frames with this frame format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_position(&mut self, f: crate::q_text_frame_format::Position) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setPosition(
            self as *mut crate::QTextFrameFormat,
            f,
        )
    }

    /// <p>Sets the frame's right <i>margin</i> in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setRightMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setRightMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the frame's right <i>margin</i> in pixels.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#rightMargin">rightMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_right_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setRightMargin(
            self as *mut crate::QTextFrameFormat,
            margin,
        )
    }

    /// <p>Sets the frame's top <i>margin</i> in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setTopMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setTopMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the frame's top <i>margin</i> in pixels.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#topMargin">topMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_top_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setTopMargin(
            self as *mut crate::QTextFrameFormat,
            margin,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setWidth(double width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setWidth-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Convenience method that sets the width of the frame's border rectangle's width to the specified fixed <i>width</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_width_double(&mut self, width: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setWidth(
            self as *mut crate::QTextFrameFormat,
            width,
        )
    }

    /// <p>Sets the frame's border rectangle's <i>width</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrameFormat::setWidth(const QTextLength& length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the frame's border rectangle's <i>width</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_width_q_text_length(
        &mut self,
        length: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_setWidth1(
            self as *mut crate::QTextFrameFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(length)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the width of the frame's top margin in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextFrameFormat::topMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#topMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the frame's top margin in pixels.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setTopMargin">setTopMargin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn top_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_topMargin(
            self as *const crate::QTextFrameFormat,
        )
    }

    /// <p>Returns the width of the frame's border rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength QTextFrameFormat::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the frame's border rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframeformat.html#setWidth">setWidth</a>() and <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a>.</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_width(
            self as *const crate::QTextFrameFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> class provides formatting information for tables in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextTableFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtexttableformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> class provides formatting information for tables in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A table is a group of cells ordered into rows and columns. Each table contains at least one row and one column. Each cell contains a block. Tables in rich text documents are formatted using the properties defined in this class.</p>
/// <p>Tables are horizontally justified within their parent frame according to the table's alignment. This can be read with the <a href="http://doc.qt.io/qt-5/qtexttableformat.html#alignment">alignment</a>() function and set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setAlignment">setAlignment</a>().</p>
/// <p>Cells within the table are separated by cell spacing. The number of pixels between cells is set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellSpacing">setCellSpacing</a>() and read with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellSpacing">cellSpacing</a>(). The contents of each cell is surrounded by cell padding. The number of pixels between each cell edge and its contents is set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellPadding">setCellPadding</a>() and read with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellPadding">cellPadding</a>().</p>
/// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtexttableformat-cell.png" alt=""></p><p>The table's background color can be read with the <a href="http://doc.qt.io/qt-5/qtextformat.html#background">background</a>() function, and can be specified with <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground</a>(). The background color of each cell can be set independently, and will control the color of the cell within the padded area.</p>
/// <p>The table format also provides a way to constrain the widths of the columns in the table. Columns can be assigned a fixed width, a variable width, or a percentage of the available width (see <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a>). The <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columns">columns</a>() function returns the number of columns with constraints, and the <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columnWidthConstraints">columnWidthConstraints</a>() function returns the constraints defined for the table. These quantities can also be set by calling <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setColumnWidthConstraints">setColumnWidthConstraints</a>() with a vector containing new constraints. If no constraints are required, <a href="http://doc.qt.io/qt-5/qtexttableformat.html#clearColumnWidthConstraints">clearColumnWidthConstraints</a>() can be used to remove them.</p></div>
#[repr(C)]
pub struct QTextTableFormat {
    _unused: u8,
}
impl QTextTableFormat {
    /// <p>Returns the table's alignment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::AlignmentFlag> QTextTableFormat::alignment() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#alignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the table's alignment.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#setAlignment">setAlignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alignment(&self) -> ::qt_core::QFlags<::qt_core::AlignmentFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_alignment(
            self as *const crate::QTextTableFormat,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the table's cell padding. This describes the distance between the border of a cell and its contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextTableFormat::cellPadding() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the table's cell padding. This describes the distance between the border of a cell and its contents.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellPadding">setCellPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cell_padding(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_cellPadding(
            self as *const crate::QTextTableFormat,
        )
    }

    /// <p>Returns the table's cell spacing. This describes the distance between adjacent cells.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextTableFormat::cellSpacing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the table's cell spacing. This describes the distance between adjacent cells.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellSpacing">setCellSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cell_spacing(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_cellSpacing(
            self as *const crate::QTextTableFormat,
        )
    }

    /// <p>Clears the column width constraints for the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableFormat::clearColumnWidthConstraints()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#clearColumnWidthConstraints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the column width constraints for the table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#columnWidthConstraints">columnWidthConstraints</a>() and <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setColumnWidthConstraints">setColumnWidthConstraints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_column_width_constraints(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_clearColumnWidthConstraints(
            self as *mut crate::QTextTableFormat,
        )
    }

    /// <p>Returns a list of constraints used by this table format to control the appearance of columns in a table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength> QTextTableFormat::columnWidthConstraints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columnWidthConstraints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of constraints used by this table format to control the appearance of columns in a table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#setColumnWidthConstraints">setColumnWidthConstraints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column_width_constraints(
        &self,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_columnWidthConstraints(
            self as *const crate::QTextTableFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of columns specified by the table format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTableFormat::columns() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of columns specified by the table format.</p></div>
    #[inline(always)]
    pub unsafe fn columns(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_columns(
            self as *const crate::QTextTableFormat,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> class provides formatting information for tables in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableFormat& QTextTableFormat::operator=(const QTextTableFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> class provides formatting information for tables in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A table is a group of cells ordered into rows and columns. Each table contains at least one row and one column. Each cell contains a block. Tables in rich text documents are formatted using the properties defined in this class.</p>
    /// <p>Tables are horizontally justified within their parent frame according to the table's alignment. This can be read with the <a href="http://doc.qt.io/qt-5/qtexttableformat.html#alignment">alignment</a>() function and set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setAlignment">setAlignment</a>().</p>
    /// <p>Cells within the table are separated by cell spacing. The number of pixels between cells is set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellSpacing">setCellSpacing</a>() and read with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellSpacing">cellSpacing</a>(). The contents of each cell is surrounded by cell padding. The number of pixels between each cell edge and its contents is set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellPadding">setCellPadding</a>() and read with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellPadding">cellPadding</a>().</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtexttableformat-cell.png" alt=""></p><p>The table's background color can be read with the <a href="http://doc.qt.io/qt-5/qtextformat.html#background">background</a>() function, and can be specified with <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground</a>(). The background color of each cell can be set independently, and will control the color of the cell within the padded area.</p>
    /// <p>The table format also provides a way to constrain the widths of the columns in the table. Columns can be assigned a fixed width, a variable width, or a percentage of the available width (see <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a>). The <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columns">columns</a>() function returns the number of columns with constraints, and the <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columnWidthConstraints">columnWidthConstraints</a>() function returns the constraints defined for the table. These quantities can also be set by calling <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setColumnWidthConstraints">setColumnWidthConstraints</a>() with a vector containing new constraints. If no constraints are required, <a href="http://doc.qt.io/qt-5/qtexttableformat.html#clearColumnWidthConstraints">clearColumnWidthConstraints</a>() can be used to remove them.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextTableFormat>>,
    ) -> ::cpp_core::MutRef<crate::QTextTableFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_operator_(
            self as *mut crate::QTextTableFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextTableFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of rows in the table that define the header.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTableFormat::headerRowCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#headerRowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of rows in the table that define the header.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#setHeaderRowCount">setHeaderRowCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn header_row_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_headerRowCount(
            self as *const crate::QTextTableFormat,
        )
    }

    /// <p>Returns <code>true</code> if this table format is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextTableFormat::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this table format is valid; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_isValid(
            self as *const crate::QTextTableFormat,
        )
    }

    /// <p>Constructs a new table format object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextTableFormat::QTextTableFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#QTextTableFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new table format object.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextTableFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_QTextTableFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> class provides formatting information for tables in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextTableFormat::QTextTableFormat(const QTextTableFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> class provides formatting information for tables in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A table is a group of cells ordered into rows and columns. Each table contains at least one row and one column. Each cell contains a block. Tables in rich text documents are formatted using the properties defined in this class.</p>
    /// <p>Tables are horizontally justified within their parent frame according to the table's alignment. This can be read with the <a href="http://doc.qt.io/qt-5/qtexttableformat.html#alignment">alignment</a>() function and set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setAlignment">setAlignment</a>().</p>
    /// <p>Cells within the table are separated by cell spacing. The number of pixels between cells is set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellSpacing">setCellSpacing</a>() and read with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellSpacing">cellSpacing</a>(). The contents of each cell is surrounded by cell padding. The number of pixels between each cell edge and its contents is set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellPadding">setCellPadding</a>() and read with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellPadding">cellPadding</a>().</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtexttableformat-cell.png" alt=""></p><p>The table's background color can be read with the <a href="http://doc.qt.io/qt-5/qtextformat.html#background">background</a>() function, and can be specified with <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground</a>(). The background color of each cell can be set independently, and will control the color of the cell within the padded area.</p>
    /// <p>The table format also provides a way to constrain the widths of the columns in the table. Columns can be assigned a fixed width, a variable width, or a percentage of the available width (see <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a>). The <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columns">columns</a>() function returns the number of columns with constraints, and the <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columnWidthConstraints">columnWidthConstraints</a>() function returns the constraints defined for the table. These quantities can also be set by calling <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setColumnWidthConstraints">setColumnWidthConstraints</a>() with a vector containing new constraints. If no constraints are required, <a href="http://doc.qt.io/qt-5/qtexttableformat.html#clearColumnWidthConstraints">clearColumnWidthConstraints</a>() can be used to remove them.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextTableFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextTableFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_QTextTableFormat1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextTableFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the table's <i>alignment</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableFormat::setAlignment(QFlags<Qt::AlignmentFlag> alignment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setAlignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the table's <i>alignment</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#alignment">alignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_alignment(&mut self, alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_setAlignment(
            self as *mut crate::QTextTableFormat,
            alignment.to_int(),
        )
    }

    /// <p>Sets the cell <i>padding</i> for the table. This determines the distance between the border of a cell and its contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableFormat::setCellPadding(double padding)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the cell <i>padding</i> for the table. This determines the distance between the border of a cell and its contents.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellPadding">cellPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cell_padding(&mut self, padding: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_setCellPadding(
            self as *mut crate::QTextTableFormat,
            padding,
        )
    }

    /// <p>Sets the cell <i>spacing</i> for the table. This determines the distance between adjacent cells.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableFormat::setCellSpacing(double spacing)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the cell <i>spacing</i> for the table. This determines the distance between adjacent cells.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellSpacing">cellSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cell_spacing(&mut self, spacing: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_setCellSpacing(
            self as *mut crate::QTextTableFormat,
            spacing,
        )
    }

    /// <p>Sets the column width <i>constraints</i> for the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableFormat::setColumnWidthConstraints(const QVector<QTextLength>& constraints)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setColumnWidthConstraints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the column width <i>constraints</i> for the table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#columnWidthConstraints">columnWidthConstraints</a>() and <a href="http://doc.qt.io/qt-5/qtexttableformat.html#clearColumnWidthConstraints">clearColumnWidthConstraints</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_column_width_constraints(
        &mut self,
        constraints: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_setColumnWidthConstraints(
            self as *mut crate::QTextTableFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextLength>>::cast_into(
                constraints,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTextTableFormat::setColumns(int columns)```</span>.
    #[inline(always)]
    pub unsafe fn set_columns(&mut self, columns: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_setColumns(
            self as *mut crate::QTextTableFormat,
            columns,
        )
    }

    /// <p>Declares the first <i>count</i> rows of the table as table header. The table header rows get repeated when a table is broken across a page boundary.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableFormat::setHeaderRowCount(int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setHeaderRowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Declares the first <i>count</i> rows of the table as table header. The table header rows get repeated when a table is broken across a page boundary.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttableformat.html#headerRowCount">headerRowCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_header_row_count(&mut self, count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_setHeaderRowCount(
            self as *mut crate::QTextTableFormat,
            count,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">QTextTableCellFormat</a> class provides formatting information for table cells in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextTableCellFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">QTextTableCellFormat</a> class provides formatting information for table cells in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>The table cell format of a table cell in a document specifies the visual properties of the table cell.</p>
/// <p>The padding properties of a table cell are controlled by <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>(). All the paddings can be set at once using <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setPadding">setPadding</a>().</p></div>
#[repr(C)]
pub struct QTextTableCellFormat {
    _unused: u8,
}
impl QTextTableCellFormat {
    /// <p>Gets the bottom padding of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextTableCellFormat::bottomPadding() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#bottomPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Gets the bottom padding of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#leftPadding">leftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#rightPadding">rightPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#topPadding">topPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bottom_padding(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_bottomPadding(
            self as *const crate::QTextTableCellFormat,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">QTextTableCellFormat</a> class provides formatting information for table cells in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableCellFormat& QTextTableCellFormat::operator=(const QTextTableCellFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">QTextTableCellFormat</a> class provides formatting information for table cells in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>The table cell format of a table cell in a document specifies the visual properties of the table cell.</p>
    /// <p>The padding properties of a table cell are controlled by <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>(). All the paddings can be set at once using <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setPadding">setPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextTableCellFormat>>,
    ) -> ::cpp_core::MutRef<crate::QTextTableCellFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_operator_(
            self as *mut crate::QTextTableCellFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextTableCellFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if this table cell format is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextTableCellFormat::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this table cell format is valid; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_isValid(
            self as *const crate::QTextTableCellFormat,
        )
    }

    /// <p>Gets the left padding of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextTableCellFormat::leftPadding() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#leftPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Gets the left padding of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#rightPadding">rightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#topPadding">topPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#bottomPadding">bottomPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn left_padding(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_leftPadding(
            self as *const crate::QTextTableCellFormat,
        )
    }

    /// <p>Constructs a new table cell format object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextTableCellFormat::QTextTableCellFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#QTextTableCellFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new table cell format object.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextTableCellFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_QTextTableCellFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">QTextTableCellFormat</a> class provides formatting information for table cells in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextTableCellFormat::QTextTableCellFormat(const QTextTableCellFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">QTextTableCellFormat</a> class provides formatting information for table cells in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>The table cell format of a table cell in a document specifies the visual properties of the table cell.</p>
    /// <p>The padding properties of a table cell are controlled by <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>(). All the paddings can be set at once using <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setPadding">setPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextTableCellFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextTableCellFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_QTextTableCellFormat1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextTableCellFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Gets the right padding of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextTableCellFormat::rightPadding() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#rightPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Gets the right padding of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#leftPadding">leftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#topPadding">topPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#bottomPadding">bottomPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn right_padding(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_rightPadding(
            self as *const crate::QTextTableCellFormat,
        )
    }

    /// <p>Sets the bottom <i>padding</i> of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableCellFormat::setBottomPadding(double padding)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the bottom <i>padding</i> of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#bottomPadding">bottomPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bottom_padding(&mut self, padding: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_setBottomPadding(
            self as *mut crate::QTextTableCellFormat,
            padding,
        )
    }

    /// <p>Sets the left <i>padding</i> of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableCellFormat::setLeftPadding(double padding)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the left <i>padding</i> of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#leftPadding">leftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_left_padding(&mut self, padding: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_setLeftPadding(
            self as *mut crate::QTextTableCellFormat,
            padding,
        )
    }

    /// <p>Sets the left, right, top, and bottom <i>padding</i> of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableCellFormat::setPadding(double padding)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the left, right, top, and bottom <i>padding</i> of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_padding(&mut self, padding: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_setPadding(
            self as *mut crate::QTextTableCellFormat,
            padding,
        )
    }

    /// <p>Sets the right <i>padding</i> of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableCellFormat::setRightPadding(double padding)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the right <i>padding</i> of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#rightPadding">rightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_right_padding(&mut self, padding: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_setRightPadding(
            self as *mut crate::QTextTableCellFormat,
            padding,
        )
    }

    /// <p>Sets the top <i>padding</i> of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableCellFormat::setTopPadding(double padding)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the top <i>padding</i> of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#topPadding">topPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_top_padding(&mut self, padding: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_setTopPadding(
            self as *mut crate::QTextTableCellFormat,
            padding,
        )
    }

    /// <p>Gets the top padding of the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextTableCellFormat::topPadding() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#topPadding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Gets the top padding of the table cell.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#leftPadding">leftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#rightPadding">rightPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#bottomPadding">bottomPadding</a>().</p></div>
    #[inline(always)]
    pub unsafe fn top_padding(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_topPadding(
            self as *const crate::QTextTableCellFormat,
        )
    }
}

pub mod q_font_database {
    //! C++ type: <span style='color: green;'>```QFontDatabase```</span>

    /// C++ enum: <span style='color: green;'>```QFontDatabase::WritingSystem```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#WritingSystem-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct WritingSystem(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for WritingSystem {
        fn from(value: ::std::os::raw::c_int) -> Self {
            WritingSystem(value)
        }
    }

    impl From<WritingSystem> for ::std::os::raw::c_int {
        fn from(value: WritingSystem) -> Self {
            value.0
        }
    }

    impl WritingSystem {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl WritingSystem {
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Any = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Any: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(0);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Latin = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Latin: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(1);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Greek = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Greek: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(2);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Cyrillic = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cyrillic: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(3);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Armenian = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Armenian: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(4);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Hebrew = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const Hebrew: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(5);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Arabic = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const Arabic: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(6);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Syriac = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const Syriac: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(7);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Thaana = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Thaana: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(8);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Devanagari = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const Devanagari: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(9);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Bengali = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const Bengali: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(10);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Gurmukhi = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const Gurmukhi: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(11);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Gujarati = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const Gujarati: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(12);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Oriya = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const Oriya: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(13);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Tamil = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const Tamil: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(14);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Telugu = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const Telugu: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(15);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Kannada = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const Kannada: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(16);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Malayalam = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const Malayalam: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(17);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Sinhala = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const Sinhala: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(18);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Thai = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const Thai: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(19);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Lao = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const Lao: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(20);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Tibetan = 21```</span>)
        #[allow(non_upper_case_globals)]
        pub const Tibetan: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(21);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Myanmar = 22```</span>)
        #[allow(non_upper_case_globals)]
        pub const Myanmar: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(22);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Georgian = 23```</span>)
        #[allow(non_upper_case_globals)]
        pub const Georgian: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(23);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Khmer = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const Khmer: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(24);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```SimplifiedChinese = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const SimplifiedChinese: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(25);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TraditionalChinese = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const TraditionalChinese: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(26);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Japanese = 27```</span>)
        #[allow(non_upper_case_globals)]
        pub const Japanese: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(27);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Korean = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const Korean: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(28);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Vietnamese = 29```</span>)
        #[allow(non_upper_case_globals)]
        pub const Vietnamese: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(29);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Symbol = 30```</span>)
        #[allow(non_upper_case_globals)]
        pub const Symbol: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(30);
        /// (the same as Symbol) (C++ enum variant: <span style='color: green;'>```Other = 30```</span>)
        #[allow(non_upper_case_globals)]
        pub const Other: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(30);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Ogham = 31```</span>)
        #[allow(non_upper_case_globals)]
        pub const Ogham: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(31);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Runic = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const Runic: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(32);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Nko = 33```</span>)
        #[allow(non_upper_case_globals)]
        pub const Nko: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(33);
        /// C++ enum variant: <span style='color: green;'>```WritingSystemsCount = 34```</span>
        #[allow(non_upper_case_globals)]
        pub const WritingSystemsCount: crate::q_font_database::WritingSystem =
            crate::q_font_database::WritingSystem(34);
    }

    /// <p>This enum was introduced or modified in  Qt 5.2.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QFontDatabase::SystemFont```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#SystemFont-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum was introduced or modified in  Qt 5.2.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SystemFont(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SystemFont {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SystemFont(value)
        }
    }

    impl From<SystemFont> for ::std::os::raw::c_int {
        fn from(value: SystemFont) -> Self {
            value.0
        }
    }

    impl SystemFont {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SystemFont {
        /// The default system font. (C++ enum variant: <span style='color: green;'>```GeneralFont = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const GeneralFont: crate::q_font_database::SystemFont =
            crate::q_font_database::SystemFont(0);
        /// The fixed font that the system recommends. (C++ enum variant: <span style='color: green;'>```FixedFont = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const FixedFont: crate::q_font_database::SystemFont =
            crate::q_font_database::SystemFont(1);
        /// The system standard font for titles. (C++ enum variant: <span style='color: green;'>```TitleFont = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const TitleFont: crate::q_font_database::SystemFont =
            crate::q_font_database::SystemFont(2);
        /// The smallest readable system font. (C++ enum variant: <span style='color: green;'>```SmallestReadableFont = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const SmallestReadableFont: crate::q_font_database::SystemFont =
            crate::q_font_database::SystemFont(3);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class provides information about the fonts available in the underlying window system.</p>
///
/// C++ class: <span style='color: green;'>```QFontDatabase```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfontdatabase.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class provides information about the fonts available in the underlying window system.</p>
/// <p>The most common uses of this class are to query the database for the list of font <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>() and for the <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styles">styles</a>() that are available for each family. An alternative to <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() is <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>() which returns the sizes at which a given family and style will look attractive.</p>
/// <p>If the font family is available from two or more foundries the foundry name is included in the family name; for example: "Helvetica [Adobe]" and "Helvetica [Cronyx]". When you specify a family, you can either use the old hyphenated "foundry-family" format or the bracketed "family [foundry]" format; for example: "Cronyx-Helvetica" or "Helvetica [Cronyx]". If the family has a foundry it is always returned using the bracketed format, as is the case with the value returned by <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>().</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html#font">font</a>() function returns a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> given a family, style and point size.</p>
/// <p>A family and style combination can be checked to see if it is <a href="http://doc.qt.io/qt-5/qfontdatabase.html#italic">italic</a>() or <a href="http://doc.qt.io/qt-5/qfontdatabase.html#bold">bold</a>(), and to retrieve its <a href="http://doc.qt.io/qt-5/qfontdatabase.html#weight">weight</a>(). Similarly we can call <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">isBitmapScalable</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">isSmoothlyScalable</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">isScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isFixedPitch">isFixedPitch</a>().</p>
/// <p>Use the <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styleString">styleString</a>() to obtain a text version of a style.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class also supports some static functions, for example, <a href="http://doc.qt.io/qt-5/qfontdatabase.html#standardSizes">standardSizes</a>(). You can retrieve the description of a writing system using <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemName">writingSystemName</a>(), and a sample of characters in a writing system with <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemSample">writingSystemSample</a>().</p>
/// <p>Example:</p>
/// <pre class="cpp">
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qfontdatabase.html#QFontDatabase">QFontDatabase</a></span> database;
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a></span> fontTree;
/// &#32;     fontTree<span class="operator">.</span>setColumnCount(<span class="number">2</span>);
/// &#32;     fontTree<span class="operator">.</span>setHeaderLabels(<span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Font"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Smooth Sizes"</span>);
///
/// &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>family<span class="operator">,</span> database<span class="operator">.</span>families()) {
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span> <span class="operator">*</span>familyItem <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span>(<span class="operator">&amp;</span>fontTree);
/// &#32;   &#32;     familyItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">0</span><span class="operator">,</span> family);
///
/// &#32;   &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>style<span class="operator">,</span> database<span class="operator">.</span>styles(family)) {
/// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span> <span class="operator">*</span>styleItem <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span>(familyItem);
/// &#32;   &#32;   &#32;     styleItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">0</span><span class="operator">,</span> style);
///
/// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> sizes;
/// &#32;   &#32;   &#32;     foreach (<span class="type">int</span> points<span class="operator">,</span> database<span class="operator">.</span>smoothSizes(family<span class="operator">,</span> style))
/// &#32;   &#32;   &#32;   &#32;     sizes <span class="operator">+</span><span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">::</span>number(points) <span class="operator">+</span> <span class="char">' '</span>;
///
/// &#32;   &#32;   &#32;     styleItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">1</span><span class="operator">,</span> sizes<span class="operator">.</span>trimmed());
/// &#32;   &#32;     }
/// &#32;     }
///
/// </pre>
/// <p>This example gets the list of font families, the list of styles for each family, and the point sizes that are available for each combination of family and style, displaying this information in a tree view.</p></div>
#[repr(C)]
pub struct QFontDatabase {
    _unused: u8,
}
impl QFontDatabase {
    /// <p>Loads the font from the file specified by <i>fileName</i> and makes it available to the application. An ID is returned that can be used to remove the font again with <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">removeApplicationFont</a>() or to retrieve the list of family names contained in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static int QFontDatabase::addApplicationFont(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads the font from the file specified by <i>fileName</i> and makes it available to the application. An ID is returned that can be used to remove the font again with <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">removeApplicationFont</a>() or to retrieve the list of family names contained in the font.</p>
    /// <p>The function returns -1 if the font could not be loaded.</p>
    /// <p>Currently only TrueType fonts, TrueType font collections, and OpenType fonts are supported.</p>
    /// <p><b>Note: </b>Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.</p><p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFontFromData">addApplicationFontFromData</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#applicationFontFamilies">applicationFontFamilies</a>(), and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">removeApplicationFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_application_font(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_addApplicationFont(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads the font from binary data specified by <i>fontData</i> and makes it available to the application. An ID is returned that can be used to remove the font again with <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">removeApplicationFont</a>() or to retrieve the list of family names contained in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static int QFontDatabase::addApplicationFontFromData(const QByteArray& fontData)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFontFromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads the font from binary data specified by <i>fontData</i> and makes it available to the application. An ID is returned that can be used to remove the font again with <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">removeApplicationFont</a>() or to retrieve the list of family names contained in the font.</p>
    /// <p>The function returns -1 if the font could not be loaded.</p>
    /// <p>Currently only TrueType fonts and TrueType font collections are supported.</p>
    /// <p><b>Note:</b> Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFont">addApplicationFont</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#applicationFontFamilies">applicationFontFamilies</a>(), and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">removeApplicationFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_application_font_from_data(
        font_data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_addApplicationFontFromData(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(font_data)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a list of font families for the given application font identified by <i>id</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QFontDatabase::applicationFontFamilies(int id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#applicationFontFamilies">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of font families for the given application font identified by <i>id</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFont">addApplicationFont</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFontFromData">addApplicationFontFromData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn application_font_families(
        id: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_applicationFontFamilies(id);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is bold; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::bold(const QString& family, const QString& style) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#bold">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is bold; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#italic">italic</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#weight">weight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bold(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_bold(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class provides information about the fonts available in the underlying window system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase& QFontDatabase::operator=(const QFontDatabase& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class provides information about the fonts available in the underlying window system.</p>
    /// <p>The most common uses of this class are to query the database for the list of font <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>() and for the <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styles">styles</a>() that are available for each family. An alternative to <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() is <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>() which returns the sizes at which a given family and style will look attractive.</p>
    /// <p>If the font family is available from two or more foundries the foundry name is included in the family name; for example: "Helvetica [Adobe]" and "Helvetica [Cronyx]". When you specify a family, you can either use the old hyphenated "foundry-family" format or the bracketed "family [foundry]" format; for example: "Cronyx-Helvetica" or "Helvetica [Cronyx]". If the family has a foundry it is always returned using the bracketed format, as is the case with the value returned by <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>().</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html#font">font</a>() function returns a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> given a family, style and point size.</p>
    /// <p>A family and style combination can be checked to see if it is <a href="http://doc.qt.io/qt-5/qfontdatabase.html#italic">italic</a>() or <a href="http://doc.qt.io/qt-5/qfontdatabase.html#bold">bold</a>(), and to retrieve its <a href="http://doc.qt.io/qt-5/qfontdatabase.html#weight">weight</a>(). Similarly we can call <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">isBitmapScalable</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">isSmoothlyScalable</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">isScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isFixedPitch">isFixedPitch</a>().</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styleString">styleString</a>() to obtain a text version of a style.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class also supports some static functions, for example, <a href="http://doc.qt.io/qt-5/qfontdatabase.html#standardSizes">standardSizes</a>(). You can retrieve the description of a writing system using <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemName">writingSystemName</a>(), and a sample of characters in a writing system with <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemSample">writingSystemSample</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qfontdatabase.html#QFontDatabase">QFontDatabase</a></span> database;
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a></span> fontTree;
    /// &#32;     fontTree<span class="operator">.</span>setColumnCount(<span class="number">2</span>);
    /// &#32;     fontTree<span class="operator">.</span>setHeaderLabels(<span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Font"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Smooth Sizes"</span>);
    ///
    /// &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>family<span class="operator">,</span> database<span class="operator">.</span>families()) {
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span> <span class="operator">*</span>familyItem <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span>(<span class="operator">&amp;</span>fontTree);
    /// &#32;   &#32;     familyItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">0</span><span class="operator">,</span> family);
    ///
    /// &#32;   &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>style<span class="operator">,</span> database<span class="operator">.</span>styles(family)) {
    /// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span> <span class="operator">*</span>styleItem <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span>(familyItem);
    /// &#32;   &#32;   &#32;     styleItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">0</span><span class="operator">,</span> style);
    ///
    /// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> sizes;
    /// &#32;   &#32;   &#32;     foreach (<span class="type">int</span> points<span class="operator">,</span> database<span class="operator">.</span>smoothSizes(family<span class="operator">,</span> style))
    /// &#32;   &#32;   &#32;   &#32;     sizes <span class="operator">+</span><span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">::</span>number(points) <span class="operator">+</span> <span class="char">' '</span>;
    ///
    /// &#32;   &#32;   &#32;     styleItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">1</span><span class="operator">,</span> sizes<span class="operator">.</span>trimmed());
    /// &#32;   &#32;     }
    /// &#32;     }
    ///
    /// </pre>
    /// <p>This example gets the list of font families, the list of styles for each family, and the point sizes that are available for each combination of family and style, displaying this information in a tree view.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontDatabase>>,
    ) -> ::cpp_core::MutRef<crate::QFontDatabase> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_operator_(
            self as *mut crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontDatabase>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a sorted list of the available font families which support the <i>writingSystem</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QFontDatabase::families(QFontDatabase::WritingSystem writingSystem = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sorted list of the available font families which support the <i>writingSystem</i>.</p>
    /// <p>If a family exists in several foundries, the returned name for that font is in the form "family [foundry]". Examples: "Times [Adobe]", "Times [Cronyx]", "Palatino".</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystems">writingSystems</a>().</p></div>
    #[inline(always)]
    pub unsafe fn families_1a(
        &self,
        writing_system: crate::q_font_database::WritingSystem,
    ) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_families(
            self as *const crate::QFontDatabase,
            writing_system,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sorted list of the available font families which support the <i>writingSystem</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QFontDatabase::families() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sorted list of the available font families which support the <i>writingSystem</i>.</p>
    /// <p>If a family exists in several foundries, the returned name for that font is in the form "family [foundry]". Examples: "Times [Adobe]", "Times [Cronyx]", "Palatino".</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystems">writingSystems</a>().</p></div>
    #[inline(always)]
    pub unsafe fn families_0a(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_families1(
            self as *const crate::QFontDatabase,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> object that has family <i>family</i>, style <i>style</i> and point size <i>pointSize</i>. If no matching font could be created, a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> object that uses the application's default font is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont QFontDatabase::font(const QString& family, const QString& style, int pointSize) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#font">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> object that has family <i>family</i>, style <i>style</i> and point size <i>pointSize</i>. If no matching font could be created, a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> object that uses the application's default font is returned.</p></div>
    #[inline(always)]
    pub unsafe fn font(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        point_size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_font(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
            point_size,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::hasFamily(const QString& family) const```</span>.
    #[inline(always)]
    pub unsafe fn has_family(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_hasFamily(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is a scalable bitmap font; otherwise returns <code>false</code>. Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isBitmapScalable(const QString& family, const QString& style = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is a scalable bitmap font; otherwise returns <code>false</code>. Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">isScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">isSmoothlyScalable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_bitmap_scalable_2a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isBitmapScalable(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is a scalable bitmap font; otherwise returns <code>false</code>. Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isBitmapScalable(const QString& family) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is a scalable bitmap font; otherwise returns <code>false</code>. Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">isScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">isSmoothlyScalable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_bitmap_scalable_1a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isBitmapScalable1(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is fixed pitch; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isFixedPitch(const QString& family, const QString& style = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isFixedPitch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is fixed pitch; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_fixed_pitch_2a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isFixedPitch(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is fixed pitch; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isFixedPitch(const QString& family) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isFixedPitch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is fixed pitch; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_fixed_pitch_1a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isFixedPitch1(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if and only if the <i>family</i> font family is private.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isPrivateFamily(const QString& family) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isPrivateFamily">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if and only if the <i>family</i> font family is private.</p>
    /// <p>This happens, for instance, on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> and iOS, where the system UI fonts are not accessible to the user. For completeness, <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">QFontDatabase::families</a>() returns all font families, including the private ones. You should use this function if you are developing a font selection control in order to keep private fonts hidden.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_private_family(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isPrivateFamily(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is scalable; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isScalable(const QString& family, const QString& style = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is scalable; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">isBitmapScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">isSmoothlyScalable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_scalable_2a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isScalable(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is scalable; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isScalable(const QString& family) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is scalable; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">isBitmapScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">isSmoothlyScalable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_scalable_1a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isScalable1(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is smoothly scalable; otherwise returns <code>false</code>. If this function returns <code>true</code>, it's safe to scale this font to any size, and the result will always look attractive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isSmoothlyScalable(const QString& family, const QString& style = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is smoothly scalable; otherwise returns <code>false</code>. If this function returns <code>true</code>, it's safe to scale this font to any size, and the result will always look attractive.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">isScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">isBitmapScalable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_smoothly_scalable_2a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isSmoothlyScalable(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is smoothly scalable; otherwise returns <code>false</code>. If this function returns <code>true</code>, it's safe to scale this font to any size, and the result will always look attractive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::isSmoothlyScalable(const QString& family) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is smoothly scalable; otherwise returns <code>false</code>. If this function returns <code>true</code>, it's safe to scale this font to any size, and the result will always look attractive.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">isScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">isBitmapScalable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_smoothly_scalable_1a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_isSmoothlyScalable1(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is italic; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontDatabase::italic(const QString& family, const QString& style) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#italic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font that has family <i>family</i> and style <i>style</i> is italic; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#weight">weight</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#bold">bold</a>().</p></div>
    #[inline(always)]
    pub unsafe fn italic(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_italic(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        )
    }

    /// <p>Creates a font database object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontDatabase::QFontDatabase()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#QFontDatabase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a font database object.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QFontDatabase> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_QFontDatabase();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class provides information about the fonts available in the underlying window system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontDatabase::QFontDatabase(const QFontDatabase& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class provides information about the fonts available in the underlying window system.</p>
    /// <p>The most common uses of this class are to query the database for the list of font <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>() and for the <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styles">styles</a>() that are available for each family. An alternative to <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() is <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>() which returns the sizes at which a given family and style will look attractive.</p>
    /// <p>If the font family is available from two or more foundries the foundry name is included in the family name; for example: "Helvetica [Adobe]" and "Helvetica [Cronyx]". When you specify a family, you can either use the old hyphenated "foundry-family" format or the bracketed "family [foundry]" format; for example: "Cronyx-Helvetica" or "Helvetica [Cronyx]". If the family has a foundry it is always returned using the bracketed format, as is the case with the value returned by <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>().</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html#font">font</a>() function returns a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> given a family, style and point size.</p>
    /// <p>A family and style combination can be checked to see if it is <a href="http://doc.qt.io/qt-5/qfontdatabase.html#italic">italic</a>() or <a href="http://doc.qt.io/qt-5/qfontdatabase.html#bold">bold</a>(), and to retrieve its <a href="http://doc.qt.io/qt-5/qfontdatabase.html#weight">weight</a>(). Similarly we can call <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">isBitmapScalable</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">isSmoothlyScalable</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">isScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isFixedPitch">isFixedPitch</a>().</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styleString">styleString</a>() to obtain a text version of a style.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class also supports some static functions, for example, <a href="http://doc.qt.io/qt-5/qfontdatabase.html#standardSizes">standardSizes</a>(). You can retrieve the description of a writing system using <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemName">writingSystemName</a>(), and a sample of characters in a writing system with <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemSample">writingSystemSample</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qfontdatabase.html#QFontDatabase">QFontDatabase</a></span> database;
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a></span> fontTree;
    /// &#32;     fontTree<span class="operator">.</span>setColumnCount(<span class="number">2</span>);
    /// &#32;     fontTree<span class="operator">.</span>setHeaderLabels(<span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Font"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Smooth Sizes"</span>);
    ///
    /// &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>family<span class="operator">,</span> database<span class="operator">.</span>families()) {
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span> <span class="operator">*</span>familyItem <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span>(<span class="operator">&amp;</span>fontTree);
    /// &#32;   &#32;     familyItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">0</span><span class="operator">,</span> family);
    ///
    /// &#32;   &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>style<span class="operator">,</span> database<span class="operator">.</span>styles(family)) {
    /// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span> <span class="operator">*</span>styleItem <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span>(familyItem);
    /// &#32;   &#32;   &#32;     styleItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">0</span><span class="operator">,</span> style);
    ///
    /// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> sizes;
    /// &#32;   &#32;   &#32;     foreach (<span class="type">int</span> points<span class="operator">,</span> database<span class="operator">.</span>smoothSizes(family<span class="operator">,</span> style))
    /// &#32;   &#32;   &#32;   &#32;     sizes <span class="operator">+</span><span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">::</span>number(points) <span class="operator">+</span> <span class="char">' '</span>;
    ///
    /// &#32;   &#32;   &#32;     styleItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">1</span><span class="operator">,</span> sizes<span class="operator">.</span>trimmed());
    /// &#32;   &#32;     }
    /// &#32;     }
    ///
    /// </pre>
    /// <p>This example gets the list of font families, the list of styles for each family, and the point sizes that are available for each combination of family and style, displaying this information in a tree view.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontDatabase>>,
    ) -> ::cpp_core::CppBox<crate::QFontDatabase> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_QFontDatabase1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontDatabase>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of the point sizes available for the font that has family <i>family</i> and style <i>styleName</i>. The list may be empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<int> QFontDatabase::pointSizes(const QString& family, const QString& style = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of the point sizes available for the font that has family <i>family</i> and style <i>styleName</i>. The list may be empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#standardSizes">standardSizes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn point_sizes_2a(
        &mut self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QListOfInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_pointSizes(
            self as *mut crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of the point sizes available for the font that has family <i>family</i> and style <i>styleName</i>. The list may be empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<int> QFontDatabase::pointSizes(const QString& family)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of the point sizes available for the font that has family <i>family</i> and style <i>styleName</i>. The list may be empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#standardSizes">standardSizes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn point_sizes_1a(
        &mut self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QListOfInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_pointSizes1(
            self as *mut crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all application-local fonts previously added using <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFont">addApplicationFont</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFontFromData">addApplicationFontFromData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QFontDatabase::removeAllApplicationFonts()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeAllApplicationFonts">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all application-local fonts previously added using <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFont">addApplicationFont</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFontFromData">addApplicationFontFromData</a>().</p>
    /// <p>Returns <code>true</code> if unloading of the fonts succeeded; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">removeApplicationFont</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFont">addApplicationFont</a>(), and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFontFromData">addApplicationFontFromData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all_application_fonts() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_removeAllApplicationFonts()
    }

    /// <p>Removes the previously loaded application font identified by <i>id</i>. Returns <code>true</code> if unloading of the font succeeded; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QFontDatabase::removeApplicationFont(int id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the previously loaded application font identified by <i>id</i>. Returns <code>true</code> if unloading of the font succeeded; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeAllApplicationFonts">removeAllApplicationFonts</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFont">addApplicationFont</a>(), and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFontFromData">addApplicationFontFromData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_application_font(id: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_removeApplicationFont(id)
    }

    /// <p>Returns the point sizes of a font that has family <i>family</i> and style <i>styleName</i> that will look attractive. The list may be empty. For non-scalable fonts and bitmap scalable fonts, this function is equivalent to <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<int> QFontDatabase::smoothSizes(const QString& family, const QString& style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the point sizes of a font that has family <i>family</i> and style <i>styleName</i> that will look attractive. The list may be empty. For non-scalable fonts and bitmap scalable fonts, this function is equivalent to <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#standardSizes">standardSizes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn smooth_sizes(
        &mut self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QListOfInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_smoothSizes(
            self as *mut crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of standard font sizes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<int> QFontDatabase::standardSizes()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#standardSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of standard font sizes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn standard_sizes() -> ::cpp_core::CppBox<::qt_core::QListOfInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_standardSizes();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a string that describes the style of the <i>font</i>. For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFontDatabase::styleString(const QFont& font)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styleString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a string that describes the style of the <i>font</i>. For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.</p></div>
    #[inline(always)]
    pub unsafe fn style_string_q_font(
        &mut self,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_styleString(
            self as *mut crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a string that describes the style of the <i>fontInfo</i>. For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFontDatabase::styleString(const QFontInfo& fontInfo)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styleString-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a string that describes the style of the <i>fontInfo</i>. For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.</p></div>
    #[inline(always)]
    pub unsafe fn style_string_q_font_info(
        &mut self,
        font_info: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontInfo>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_styleString1(
            self as *mut crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontInfo>>::cast_into(font_info)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of the styles available for the font family <i>family</i>. Some example styles: "Light", "Light Italic", "Bold", "Oblique", "Demi". The list may be empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QFontDatabase::styles(const QString& family) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styles">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of the styles available for the font family <i>family</i>. Some example styles: "Light", "Light Italic", "Bold", "Oblique", "Demi". The list may be empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>().</p></div>
    #[inline(always)]
    pub unsafe fn styles(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_styles(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if font rendering is supported outside the GUI thread, false otherwise. In other words, a return value of false means that all <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">QPainter::drawText</a>() calls outside the GUI thread will not produce readable output.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QFontDatabase::supportsThreadedFontRendering()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase-obsolete.html#supportsThreadedFontRendering">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if font rendering is supported outside the GUI thread, false otherwise. In other words, a return value of false means that all <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">QPainter::drawText</a>() calls outside the GUI thread will not produce readable output.</p>
    /// <p>As of 5.0, always returns <code>true</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/threads-modules.html#painting-in-threads">Painting In Threads</a>.</p></div>
    #[inline(always)]
    pub unsafe fn supports_threaded_font_rendering() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_supportsThreadedFontRendering()
    }

    /// <p>Returns the most adequate font for a given <i>type</i> case for proper integration with the system's look and feel.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QFont QFontDatabase::systemFont(QFontDatabase::SystemFont type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#systemFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the most adequate font for a given <i>type</i> case for proper integration with the system's look and feel.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#font">QGuiApplication::font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn system_font(
        type_: crate::q_font_database::SystemFont,
    ) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_systemFont(type_);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the weight of the font that has family <i>family</i> and style <i>style</i>. If there is no such family and style combination, returns -1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontDatabase::weight(const QString& family, const QString& style) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#weight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the weight of the font that has family <i>family</i> and style <i>style</i>. If there is no such family and style combination, returns -1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#italic">italic</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#bold">bold</a>().</p></div>
    #[inline(always)]
    pub unsafe fn weight(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        style: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_weight(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(style)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the names the <i>writingSystem</i> (e.g. for displaying to the user in a dialog).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QFontDatabase::writingSystemName(QFontDatabase::WritingSystem writingSystem)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the names the <i>writingSystem</i> (e.g. for displaying to the user in a dialog).</p></div>
    #[inline(always)]
    pub unsafe fn writing_system_name(
        writing_system: crate::q_font_database::WritingSystem,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_writingSystemName(writing_system);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a string with sample characters from <i>writingSystem</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QFontDatabase::writingSystemSample(QFontDatabase::WritingSystem writingSystem)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemSample">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a string with sample characters from <i>writingSystem</i>.</p></div>
    #[inline(always)]
    pub unsafe fn writing_system_sample(
        writing_system: crate::q_font_database::WritingSystem,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_writingSystemSample(writing_system);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sorted list of the available writing systems. This is list generated from information about all installed fonts on the system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystems">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sorted list of the available writing systems. This is list generated from information about all installed fonts on the system.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>().</p></div>
    #[inline(always)]
    pub unsafe fn writing_systems_0a(&self) -> ::cpp_core::CppBox<crate::QListOfWritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_writingSystems(
            self as *const crate::QFontDatabase,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sorted list of the writing systems supported by a given font <i>family</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems(const QString& family) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystems-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sorted list of the writing systems supported by a given font <i>family</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>().</p></div>
    #[inline(always)]
    pub unsafe fn writing_systems_1a(
        &self,
        family: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QListOfWritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_writingSystems1(
            self as *const crate::QFontDatabase,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(family)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_raw_font {
    //! C++ type: <span style='color: green;'>```QRawFont```</span>

    /// <p>This enum represents the different ways a glyph can be rasterized in the function <a href="http://doc.qt.io/qt-5/qrawfont.html#alphaMapForGlyph">alphaMapForGlyph</a>().</p>
    ///
    /// C++ enum: <span style='color: green;'>```QRawFont::AntialiasingType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#AntialiasingType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum represents the different ways a glyph can be rasterized in the function <a href="http://doc.qt.io/qt-5/qrawfont.html#alphaMapForGlyph">alphaMapForGlyph</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AntialiasingType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AntialiasingType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AntialiasingType(value)
        }
    }

    impl From<AntialiasingType> for ::std::os::raw::c_int {
        fn from(value: AntialiasingType) -> Self {
            value.0
        }
    }

    impl AntialiasingType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AntialiasingType {
        /// Will rasterize by measuring the coverage of the shape on whole pixels. The returned image contains the alpha values of each pixel based on the coverage of the glyph shape. (C++ enum variant: <span style='color: green;'>```PixelAntialiasing = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const PixelAntialiasing: crate::q_raw_font::AntialiasingType =
            crate::q_raw_font::AntialiasingType(0);
        /// Will rasterize by measuring the coverage of each subpixel, returning a separate alpha value for each of the red, green and blue components of each pixel. (C++ enum variant: <span style='color: green;'>```SubPixelAntialiasing = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const SubPixelAntialiasing: crate::q_raw_font::AntialiasingType =
            crate::q_raw_font::AntialiasingType(1);
    }

    /// <p>This enum tells the function <a href="http://doc.qt.io/qt-5/qrawfont.html#advancesForGlyphIndexes">advancesForGlyphIndexes</a>() how to calculate the advances.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QRawFont::LayoutFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#LayoutFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum tells the function <a href="http://doc.qt.io/qt-5/qrawfont.html#advancesForGlyphIndexes">advancesForGlyphIndexes</a>() how to calculate the advances.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.1.</p>
    /// <p>The LayoutFlags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;LayoutFlag&gt;. It stores an OR combination of LayoutFlag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct LayoutFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for LayoutFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            LayoutFlag(value)
        }
    }

    impl From<LayoutFlag> for ::std::os::raw::c_int {
        fn from(value: LayoutFlag) -> Self {
            value.0
        }
    }

    impl LayoutFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl LayoutFlag {
        /// Will calculate the advance for each glyph separately. (C++ enum variant: <span style='color: green;'>```SeparateAdvances = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const SeparateAdvances: crate::q_raw_font::LayoutFlag =
            crate::q_raw_font::LayoutFlag(0);
        /// Will apply kerning between adjacent glyphs. Note that OpenType GPOS based kerning is currently not supported. (C++ enum variant: <span style='color: green;'>```KernedAdvances = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const KernedAdvances: crate::q_raw_font::LayoutFlag = crate::q_raw_font::LayoutFlag(1);
        /// Use design metrics instead of hinted metrics adjusted to the resolution of the paint device. Can be OR-ed with any of the options above. (C++ enum variant: <span style='color: green;'>```UseDesignMetrics = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const UseDesignMetrics: crate::q_raw_font::LayoutFlag =
            crate::q_raw_font::LayoutFlag(2);
    }

    impl From<crate::q_raw_font::LayoutFlag> for ::qt_core::QFlags<crate::q_raw_font::LayoutFlag> {
        fn from(value: crate::q_raw_font::LayoutFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_raw_font::LayoutFlag>>> std::ops::BitOr<T>
        for crate::q_raw_font::LayoutFlag
    {
        type Output = ::qt_core::QFlags<crate::q_raw_font::LayoutFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_raw_font::LayoutFlag> {
            Into::<::qt_core::QFlags<crate::q_raw_font::LayoutFlag>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> class provides access to a single physical instance of a font.</p>
///
/// C++ class: <span style='color: green;'>```QRawFont```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qrawfont.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> class provides access to a single physical instance of a font.</p>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is a low level class. For most purposes <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> is a more appropriate class.</p><p>Most commonly, when presenting text in a user interface, the exact fonts used to render the characters is to some extent unknown. This can be the case for several reasons: For instance, the actual, physical fonts present on the target system could be unexpected to the developers, or the text could contain user selected styles, sizes or writing systems that are not supported by font chosen in the code.</p>
/// <p>Therefore, Qt's <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> class really represents a query for fonts. When text is interpreted, Qt will do its best to match the text to the query, but depending on the support, different fonts can be used behind the scenes.</p>
/// <p>For most use cases, this is both expected and necessary, as it minimizes the possibility of text in the user interface being undisplayable. In some cases, however, more direct control over the process might be useful. It is for these use cases the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> class exists.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> object represents a single, physical instance of a given font in a given pixel size. I.e. in the typical case it represents a set of TrueType or OpenType font tables and uses a user specified pixel size to convert metrics into logical pixel units. It can be used in combination with the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> class to draw specific glyph indexes at specific positions, and also have accessors to some relevant data in the physical font.</p>
/// <p><a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> only provides support for the main font technologies: GDI and DirectWrite on Windows platforms, <a href="http://doc.qt.io/qt-5/qtgui-attribution-freetype.html#freetype">FreeType</a> on Linux platforms and CoreText on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. For other font back-ends, the APIs will be disabled.</p>
/// <p><a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> can be constructed in a number of ways:</p>
/// <ul>
/// <li>It can be constructed by calling QTextLayout::glyphs() or QTextFragment::glyphs(). The returned QGlyphs objects will contain <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> objects which represent the actual fonts used to render each portion of the text.</li>
/// <li>It can be constructed by passing a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> object to <a href="http://doc.qt.io/qt-5/qrawfont.html#fromFont">QRawFont::fromFont</a>(). The function will return a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> object representing the font that will be selected as response to the <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> query and the selected writing system.</li>
/// <li>It can be constructed by passing a file name or <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a> directly to the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> constructor, or by calling <a href="http://doc.qt.io/qt-5/qrawfont.html#loadFromFile">loadFromFile</a>() or <a href="http://doc.qt.io/qt-5/qrawfont.html#loadFromData">loadFromData</a>(). In this case, the font will not be registered in <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a>, and it will not be available as part of regular font selection.</li>
/// </ul>
/// <p><a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is considered local to the thread in which it is constructed (either using a constructor, or by calling <a href="http://doc.qt.io/qt-5/qrawfont.html#loadFromData">loadFromData</a>() or <a href="http://doc.qt.io/qt-5/qrawfont.html#loadFromFile">loadFromFile</a>()). The <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> cannot be moved to a different thread, but will have to be recreated in the thread in question.</p>
/// <p><b>Note: </b>For the requirement of caching glyph indexes and font selections for static text to avoid reshaping and relayouting in the inner loop of an application, a better choice is the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> class, since it optimizes the memory cost of the cache and also provides the possibility of paint engine specific caches for an additional speed-up.</p></div>
#[repr(C)]
pub struct QRawFont {
    _unused: u8,
}
impl QRawFont {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPointF> QRawFont::advancesForGlyphIndexes(const QVector<quint32>& glyphIndexes) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#advancesForGlyphIndexes-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>'s advances for each of the <i>glyphIndexes</i> in pixel units. The advances give the distance from the position of a given glyph to where the next glyph should be drawn to make it appear as if the two glyphs are unspaced. The advance of each glyph is calculated separately.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#horizontalAdvance">QTextLine::horizontalAdvance</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">QFontMetricsF::width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn advances_for_glyph_indexes_1a(
        &self,
        glyph_indexes: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    ) -> ::cpp_core::CppBox<::qt_core::QVectorOfQPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_advancesForGlyphIndexes(
            self as *const crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(glyph_indexes)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>'s advances for each of the <i>glyphIndexes</i> in pixel units. The advances give the distance from the position of a given glyph to where the next glyph should be drawn to make it appear as if the two glyphs are unspaced. How the advances are calculated is controlled by <i>layoutFlags</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPointF> QRawFont::advancesForGlyphIndexes(const QVector<quint32>& glyphIndexes, QFlags<QRawFont::LayoutFlag> layoutFlags) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#advancesForGlyphIndexes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>'s advances for each of the <i>glyphIndexes</i> in pixel units. The advances give the distance from the position of a given glyph to where the next glyph should be drawn to make it appear as if the two glyphs are unspaced. How the advances are calculated is controlled by <i>layoutFlags</i>.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#horizontalAdvance">QTextLine::horizontalAdvance</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">QFontMetricsF::width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn advances_for_glyph_indexes_2a(
        &self,
        glyph_indexes: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
        layout_flags: ::qt_core::QFlags<crate::q_raw_font::LayoutFlag>,
    ) -> ::cpp_core::CppBox<::qt_core::QVectorOfQPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_advancesForGlyphIndexes1(
            self as *const crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(glyph_indexes)
                .as_raw_ptr(),
            layout_flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRawFont::advancesForGlyphIndexes(const quint32* glyphIndexes, QPointF* advances, int numGlyphs) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#advancesForGlyphIndexes-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>'s advances for each of the <i>glyphIndexes</i> in pixel units. The advances give the distance from the position of a given glyph to where the next glyph should be drawn to make it appear as if the two glyphs are unspaced. The glyph indexes are given with the array <i>glyphIndexes</i> while the results are returned through <i>advances</i>, both of them must have <i>numGlyphs</i> elements. The advance of each glyph is calculated separately</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#horizontalAdvance">QTextLine::horizontalAdvance</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">QFontMetricsF::width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn advances_for_glyph_indexes_3a(
        &self,
        glyph_indexes: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
        advances: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QPointF>>,
        num_glyphs: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_advancesForGlyphIndexes2(
            self as *const crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(glyph_indexes).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QPointF>>::cast_into(advances)
                .as_mut_raw_ptr(),
            num_glyphs,
        )
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>'s advances for each of the <i>glyphIndexes</i> in pixel units. The advances give the distance from the position of a given glyph to where the next glyph should be drawn to make it appear as if the two glyphs are unspaced. The glyph indexes are given with the array <i>glyphIndexes</i> while the results are returned through <i>advances</i>, both of them must have <i>numGlyphs</i> elements. How the advances are calculated is controlled by <i>layoutFlags</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRawFont::advancesForGlyphIndexes(const quint32* glyphIndexes, QPointF* advances, int numGlyphs, QFlags<QRawFont::LayoutFlag> layoutFlags) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#advancesForGlyphIndexes-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>'s advances for each of the <i>glyphIndexes</i> in pixel units. The advances give the distance from the position of a given glyph to where the next glyph should be drawn to make it appear as if the two glyphs are unspaced. The glyph indexes are given with the array <i>glyphIndexes</i> while the results are returned through <i>advances</i>, both of them must have <i>numGlyphs</i> elements. How the advances are calculated is controlled by <i>layoutFlags</i>.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#horizontalAdvance">QTextLine::horizontalAdvance</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">QFontMetricsF::width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn advances_for_glyph_indexes_4a(
        &self,
        glyph_indexes: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
        advances: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QPointF>>,
        num_glyphs: ::std::os::raw::c_int,
        layout_flags: ::qt_core::QFlags<crate::q_raw_font::LayoutFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_advancesForGlyphIndexes3(
            self as *const crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(glyph_indexes).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QPointF>>::cast_into(advances)
                .as_mut_raw_ptr(),
            num_glyphs,
            layout_flags.to_int(),
        )
    }

    /// <p>This function returns a rasterized image of the glyph at the given <i>glyphIndex</i> in the underlying font, using the <i>transform</i> specified. If the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is not valid, this function will return an invalid <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QRawFont::alphaMapForGlyph(quint32 glyphIndex, QRawFont::AntialiasingType antialiasingType = …, const QTransform& transform = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#alphaMapForGlyph">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function returns a rasterized image of the glyph at the given <i>glyphIndex</i> in the underlying font, using the <i>transform</i> specified. If the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is not valid, this function will return an invalid <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    /// <p>If the font is a color font, then the resulting image will contain the rendered glyph at the current pixel size. In this case, the <i>antialiasingType</i> will be ignored.</p>
    /// <p>Otherwise, if <i>antialiasingType</i> is set to <a href="http://doc.qt.io/qt-5/qrawfont.html#AntialiasingType-enum">QRawFont::SubPixelAntialiasing</a>, then the resulting image will be in <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB32</a> and the RGB values of each pixel will represent the subpixel opacities of the pixel in the rasterization of the glyph. Otherwise, the image will be in the format of <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Indexed8</a> and each pixel will contain the opacity of the pixel in the rasterization.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#pathForGlyph">pathForGlyph</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alpha_map_for_glyph_3a(
        &self,
        glyph_index: u32,
        antialiasing_type: crate::q_raw_font::AntialiasingType,
        transform: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_alphaMapForGlyph(
            self as *const crate::QRawFont,
            glyph_index,
            antialiasing_type,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(transform)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function returns a rasterized image of the glyph at the given <i>glyphIndex</i> in the underlying font, using the <i>transform</i> specified. If the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is not valid, this function will return an invalid <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QRawFont::alphaMapForGlyph(quint32 glyphIndex, QRawFont::AntialiasingType antialiasingType = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#alphaMapForGlyph">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function returns a rasterized image of the glyph at the given <i>glyphIndex</i> in the underlying font, using the <i>transform</i> specified. If the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is not valid, this function will return an invalid <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    /// <p>If the font is a color font, then the resulting image will contain the rendered glyph at the current pixel size. In this case, the <i>antialiasingType</i> will be ignored.</p>
    /// <p>Otherwise, if <i>antialiasingType</i> is set to <a href="http://doc.qt.io/qt-5/qrawfont.html#AntialiasingType-enum">QRawFont::SubPixelAntialiasing</a>, then the resulting image will be in <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB32</a> and the RGB values of each pixel will represent the subpixel opacities of the pixel in the rasterization of the glyph. Otherwise, the image will be in the format of <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Indexed8</a> and each pixel will contain the opacity of the pixel in the rasterization.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#pathForGlyph">pathForGlyph</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alpha_map_for_glyph_2a(
        &self,
        glyph_index: u32,
        antialiasing_type: crate::q_raw_font::AntialiasingType,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_alphaMapForGlyph1(
            self as *const crate::QRawFont,
            glyph_index,
            antialiasing_type,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function returns a rasterized image of the glyph at the given <i>glyphIndex</i> in the underlying font, using the <i>transform</i> specified. If the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is not valid, this function will return an invalid <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QRawFont::alphaMapForGlyph(quint32 glyphIndex) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#alphaMapForGlyph">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function returns a rasterized image of the glyph at the given <i>glyphIndex</i> in the underlying font, using the <i>transform</i> specified. If the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is not valid, this function will return an invalid <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    /// <p>If the font is a color font, then the resulting image will contain the rendered glyph at the current pixel size. In this case, the <i>antialiasingType</i> will be ignored.</p>
    /// <p>Otherwise, if <i>antialiasingType</i> is set to <a href="http://doc.qt.io/qt-5/qrawfont.html#AntialiasingType-enum">QRawFont::SubPixelAntialiasing</a>, then the resulting image will be in <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGB32</a> and the RGB values of each pixel will represent the subpixel opacities of the pixel in the rasterization of the glyph. Otherwise, the image will be in the format of <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Indexed8</a> and each pixel will contain the opacity of the pixel in the rasterization.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#pathForGlyph">pathForGlyph</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alpha_map_for_glyph_1a(
        &self,
        glyph_index: u32,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_alphaMapForGlyph2(
            self as *const crate::QRawFont,
            glyph_index,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the ascent of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::ascent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#ascent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the ascent of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    /// <p>The ascent of a font is the distance from the baseline to the highest position characters extend to. In practice, some font designers break this rule, e.g. when they put more than one accent on top of a character, or to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#ascent">QFontMetricsF::ascent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ascent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_ascent(self as *const crate::QRawFont)
    }

    /// <p>Returns the average character width of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::averageCharWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#averageCharWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the average character width of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#averageCharWidth">QFontMetricsF::averageCharWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn average_char_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_averageCharWidth(self as *const crate::QRawFont)
    }

    /// <p>Returns the smallest rectangle containing the glyph with the given <i>glyphIndex</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QRawFont::boundingRect(quint32 glyphIndex) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the smallest rectangle containing the glyph with the given <i>glyphIndex</i>.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect(&self, glyph_index: u32) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_boundingRect(
            self as *const crate::QRawFont,
            glyph_index,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the cap height of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::capHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#capHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cap height of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    /// <p>The cap height of a font is the height of a capital letter above the baseline. It specifically is the height of capital letters that are flat - such as H or I - as opposed to round letters such as O, or pointed letters like A, both of which may display overshoot.</p>
    /// <p>This function was introduced in  Qt 5.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#capHeight">QFontMetricsF::capHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cap_height(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_capHeight(self as *const crate::QRawFont)
    }

    /// <p>Assigns <i>other</i> to this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRawFont& QRawFont::operator=(const QRawFont& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRawFont>>,
    ) -> ::cpp_core::MutRef<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_operator_1(
            self as *mut crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRawFont>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the descent of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::descent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#descent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the descent of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    /// <p>The descent is the distance from the base line to the lowest point characters extend to. In practice, some font designers break this rule, e.g. to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#descent">QFontMetricsF::descent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn descent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_descent(self as *const crate::QRawFont)
    }

    /// <p>Returns the family name of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QRawFont::familyName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#familyName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the family name of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p></div>
    #[inline(always)]
    pub unsafe fn family_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRawFont_familyName(self as *const crate::QRawFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Retrieves the sfnt table named <i>tagName</i> from the underlying physical font, or an empty byte array if no such table was found. The returned font table's byte order is Big Endian, like the sfnt format specifies. The <i>tagName</i> must be four characters long and should be formatted in the default endianness of the current platform.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QRawFont::fontTable(const char* tagName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#fontTable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Retrieves the sfnt table named <i>tagName</i> from the underlying physical font, or an empty byte array if no such table was found. The returned font table's byte order is Big Endian, like the sfnt format specifies. The <i>tagName</i> must be four characters long and should be formatted in the default endianness of the current platform.</p></div>
    #[inline(always)]
    pub unsafe fn font_table(
        &self,
        tag_name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_fontTable(
            self as *const crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(tag_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Fetches the physical representation based on a <i>font</i> query. The physical font returned is the font that will be preferred by Qt in order to display text in the selected <i>writingSystem</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QRawFont QRawFont::fromFont(const QFont& font, QFontDatabase::WritingSystem writingSystem = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#fromFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fetches the physical representation based on a <i>font</i> query. The physical font returned is the font that will be preferred by Qt in order to display text in the selected <i>writingSystem</i>.</p>
    /// <p><b>Warning:</b> This function is potentially expensive and should not be called in performance sensitive code.</p></div>
    #[inline(always)]
    pub unsafe fn from_font_2a(
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        writing_system: crate::q_font_database::WritingSystem,
    ) -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_fromFont(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
            writing_system,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Fetches the physical representation based on a <i>font</i> query. The physical font returned is the font that will be preferred by Qt in order to display text in the selected <i>writingSystem</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QRawFont QRawFont::fromFont(const QFont& font)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#fromFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fetches the physical representation based on a <i>font</i> query. The physical font returned is the font that will be preferred by Qt in order to display text in the selected <i>writingSystem</i>.</p>
    /// <p><b>Warning:</b> This function is potentially expensive and should not be called in performance sensitive code.</p></div>
    #[inline(always)]
    pub unsafe fn from_font_1a(
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_fromFont1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Converts a string of unicode points to glyph indexes using the CMAP table in the underlying font. The function works like <a href="http://doc.qt.io/qt-5/qrawfont.html#glyphIndexesForString">glyphIndexesForString</a>() except it take an array (<i>chars</i>), the results will be returned though <i>glyphIndexes</i> array and number of glyphs will be set in <i>numGlyphs</i>. The size of <i>glyphIndexes</i> array must be at least <i>numChars</i>, if that's still not enough, this function will return false, then you can resize <i>glyphIndexes</i> from the size returned in <i>numGlyphs</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRawFont::glyphIndexesForChars(const QChar* chars, int numChars, quint32* glyphIndexes, int* numGlyphs) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#glyphIndexesForChars">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts a string of unicode points to glyph indexes using the CMAP table in the underlying font. The function works like <a href="http://doc.qt.io/qt-5/qrawfont.html#glyphIndexesForString">glyphIndexesForString</a>() except it take an array (<i>chars</i>), the results will be returned though <i>glyphIndexes</i> array and number of glyphs will be set in <i>numGlyphs</i>. The size of <i>glyphIndexes</i> array must be at least <i>numChars</i>, if that's still not enough, this function will return false, then you can resize <i>glyphIndexes</i> from the size returned in <i>numGlyphs</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#glyphIndexesForString">glyphIndexesForString</a>(), <a href="http://doc.qt.io/qt-5/qrawfont.html#advancesForGlyphIndexes">advancesForGlyphIndexes</a>(), <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>, <a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">QTextLayout::glyphRuns</a>(), and <a href="http://doc.qt.io/qt-5/qtextfragment.html#glyphRuns">QTextFragment::glyphRuns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_indexes_for_chars(
        &self,
        chars: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QChar>>,
        num_chars: ::std::os::raw::c_int,
        glyph_indexes: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
        num_glyphs: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_glyphIndexesForChars(
            self as *const crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QChar>>::cast_into(chars)
                .as_raw_ptr(),
            num_chars,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(glyph_indexes)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                num_glyphs,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Converts the string of unicode points given by <i>text</i> to glyph indexes using the CMAP table in the underlying font, and returns a vector containing the result.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32> QRawFont::glyphIndexesForString(const QString& text) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#glyphIndexesForString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the string of unicode points given by <i>text</i> to glyph indexes using the CMAP table in the underlying font, and returns a vector containing the result.</p>
    /// <p>Note that, in cases where there are other tables in the font that affect the shaping of the text, the returned glyph indexes will not correctly represent the rendering of the text. To get the correctly shaped text, you can use <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> to lay out and shape the text, then call QTextLayout::glyphs() to get the set of glyph index list and <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> pairs.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#advancesForGlyphIndexes">advancesForGlyphIndexes</a>(), <a href="http://doc.qt.io/qt-5/qrawfont.html#glyphIndexesForChars">glyphIndexesForChars</a>(), <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>, <a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">QTextLayout::glyphRuns</a>(), and <a href="http://doc.qt.io/qt-5/qtextfragment.html#glyphRuns">QTextFragment::glyphRuns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_indexes_for_string(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_glyphIndexesForString(
            self as *const crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the hinting preference used to construct this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::HintingPreference QRawFont::hintingPreference() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#hintingPreference">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hinting preference used to construct this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#hintingPreference">QFont::hintingPreference</a>().</p></div>
    #[inline(always)]
    pub unsafe fn hinting_preference(&self) -> crate::q_font::HintingPreference {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_hintingPreference(self as *const crate::QRawFont)
    }

    /// <p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is valid and false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRawFont::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is valid and false otherwise.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_isValid(self as *const crate::QRawFont)
    }

    /// <p>Returns the leading of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::leading() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#leading">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the leading of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    /// <p>This is the natural inter-line spacing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leading">QFontMetricsF::leading</a>().</p></div>
    #[inline(always)]
    pub unsafe fn leading(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_leading(self as *const crate::QRawFont)
    }

    /// <p>Returns the thickness for drawing lines (underline, overline, etc.) along with text drawn in this font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::lineThickness() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#lineThickness">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the thickness for drawing lines (underline, overline, etc.) along with text drawn in this font.</p></div>
    #[inline(always)]
    pub unsafe fn line_thickness(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_lineThickness(self as *const crate::QRawFont)
    }

    /// <p>Replaces the current <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> with the font contained in the supplied <i>fontData</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRawFont::loadFromData(const QByteArray& fontData, double pixelSize, QFont::HintingPreference hintingPreference)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#loadFromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the current <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> with the font contained in the supplied <i>fontData</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    /// <p>The <i>fontData</i> must contain a TrueType or OpenType font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#loadFromFile">loadFromFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn load_from_data(
        &mut self,
        font_data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        pixel_size: ::std::os::raw::c_double,
        hinting_preference: crate::q_font::HintingPreference,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_loadFromData(
            self as *mut crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(font_data)
                .as_raw_ptr(),
            pixel_size,
            hinting_preference,
        )
    }

    /// <p>Replaces the current <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> with the contents of the file referenced by <i>fileName</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRawFont::loadFromFile(const QString& fileName, double pixelSize, QFont::HintingPreference hintingPreference)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#loadFromFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the current <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> with the contents of the file referenced by <i>fileName</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    /// <p>The file must reference a TrueType or OpenType font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#loadFromData">loadFromData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn load_from_file(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pixel_size: ::std::os::raw::c_double,
        hinting_preference: crate::q_font::HintingPreference,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_loadFromFile(
            self as *mut crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            pixel_size,
            hinting_preference,
        )
    }

    /// <p>Returns the width of the widest character in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::maxCharWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#maxCharWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the widest character in the font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#maxWidth">QFontMetricsF::maxWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn max_char_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_maxCharWidth(self as *const crate::QRawFont)
    }

    /// <p>Constructs an invalid <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRawFont::QRawFont()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#QRawFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an invalid <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_QRawFont();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> representing the font contained in the file referenced by <i>fileName</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRawFont::QRawFont(const QString& fileName, double pixelSize, QFont::HintingPreference hintingPreference = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#QRawFont-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> representing the font contained in the file referenced by <i>fileName</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    /// <p><b>Note: </b>The referenced file must contain a TrueType or OpenType font.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_double_hinting_preference(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pixel_size: ::std::os::raw::c_double,
        hinting_preference: crate::q_font::HintingPreference,
    ) -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_QRawFont1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            pixel_size,
            hinting_preference,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> representing the font contained in the supplied <i>fontData</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRawFont::QRawFont(const QByteArray& fontData, double pixelSize, QFont::HintingPreference hintingPreference = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#QRawFont-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> representing the font contained in the supplied <i>fontData</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    /// <p><b>Note: </b>The data must contain a TrueType or OpenType font.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_byte_array_double_hinting_preference(
        font_data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        pixel_size: ::std::os::raw::c_double,
        hinting_preference: crate::q_font::HintingPreference,
    ) -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_QRawFont2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(font_data)
                .as_raw_ptr(),
            pixel_size,
            hinting_preference,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> representing the font contained in the file referenced by <i>fileName</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRawFont::QRawFont(const QString& fileName, double pixelSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#QRawFont-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> representing the font contained in the file referenced by <i>fileName</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    /// <p><b>Note: </b>The referenced file must contain a TrueType or OpenType font.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_double(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pixel_size: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_QRawFont4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            pixel_size,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> representing the font contained in the supplied <i>fontData</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRawFont::QRawFont(const QByteArray& fontData, double pixelSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#QRawFont-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> representing the font contained in the supplied <i>fontData</i> for the size (in pixels) given by <i>pixelSize</i>, and using the hinting preference specified by <i>hintingPreference</i>.</p>
    /// <p><b>Note: </b>The data must contain a TrueType or OpenType font.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_byte_array_double(
        font_data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        pixel_size: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_QRawFont5(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(font_data)
                .as_raw_ptr(),
            pixel_size,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> which is a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRawFont::QRawFont(const QRawFont& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#QRawFont-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> which is a copy of <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRawFont>>,
    ) -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_QRawFont3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRawFont>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function returns the shape of the glyph at a given <i>glyphIndex</i> in the underlying font if the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is valid. Otherwise, it returns an empty <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QRawFont::pathForGlyph(quint32 glyphIndex) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#pathForGlyph">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function returns the shape of the glyph at a given <i>glyphIndex</i> in the underlying font if the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is valid. Otherwise, it returns an empty <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a>.</p>
    /// <p>The returned glyph will always be unhinted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#alphaMapForGlyph">alphaMapForGlyph</a>() and <a href="http://doc.qt.io/qt-5/qpainterpath.html#addText">QPainterPath::addText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn path_for_glyph(
        &self,
        glyph_index: u32,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_pathForGlyph(
            self as *const crate::QRawFont,
            glyph_index,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the pixel size set for this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>. The pixel size affects how glyphs are rasterized, the size of glyphs returned by <a href="http://doc.qt.io/qt-5/qrawfont.html#pathForGlyph">pathForGlyph</a>(), and is used to convert internal metrics from design units to logical pixel units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::pixelSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#pixelSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixel size set for this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>. The pixel size affects how glyphs are rasterized, the size of glyphs returned by <a href="http://doc.qt.io/qt-5/qrawfont.html#pathForGlyph">pathForGlyph</a>(), and is used to convert internal metrics from design units to logical pixel units.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#setPixelSize">setPixelSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixel_size(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_pixelSize(self as *const crate::QRawFont)
    }

    /// <p>Sets the pixel size with which this font should be rendered to <i>pixelSize</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRawFont::setPixelSize(double pixelSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#setPixelSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pixel size with which this font should be rendered to <i>pixelSize</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#pixelSize">pixelSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pixel_size(&mut self, pixel_size: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_setPixelSize(self as *mut crate::QRawFont, pixel_size)
    }

    /// <p>Returns the style of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::Style QRawFont::style() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#style">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the style of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#style">QFont::style</a>().</p></div>
    #[inline(always)]
    pub unsafe fn style(&self) -> crate::q_font::Style {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_style(self as *const crate::QRawFont)
    }

    /// <p>Returns the style name of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QRawFont::styleName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#styleName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the style name of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#styleName">QFont::styleName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn style_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRawFont_styleName(self as *const crate::QRawFont);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of writing systems supported by the font according to designer supplied information in the font file. Please note that this does not guarantee support for a specific unicode point in the font. You can use the <a href="http://doc.qt.io/qt-5/qrawfont.html#supportsCharacter">supportsCharacter</a>() to check support for a single, specific character.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem> QRawFont::supportedWritingSystems() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#supportedWritingSystems">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of writing systems supported by the font according to designer supplied information in the font file. Please note that this does not guarantee support for a specific unicode point in the font. You can use the <a href="http://doc.qt.io/qt-5/qrawfont.html#supportsCharacter">supportsCharacter</a>() to check support for a single, specific character.</p>
    /// <p><b>Note: </b>The list is determined based on the unicode ranges and codepage ranges set in the font's OS/2 table and requires such a table to be present in the underlying font file.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#supportsCharacter">supportsCharacter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supported_writing_systems(
        &self,
    ) -> ::cpp_core::CppBox<crate::QListOfWritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRawFont_supportedWritingSystems(
            self as *const crate::QRawFont,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRawFont::supportsCharacter(unsigned int ucs4) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#supportsCharacter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns <code>true</code> if the font has a glyph that corresponds to the UCS-4 encoded character <i>ucs4</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#supportedWritingSystems">supportedWritingSystems</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supports_character_uint(&self, ucs4: ::std::os::raw::c_uint) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_supportsCharacter(
            self as *const crate::QRawFont,
            ucs4,
        )
    }

    /// <p>Returns <code>true</code> if the font has a glyph that corresponds to the given <i>character</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRawFont::supportsCharacter(QChar character) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#supportsCharacter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font has a glyph that corresponds to the given <i>character</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#supportedWritingSystems">supportedWritingSystems</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supports_character_q_char(
        &self,
        character: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_supportsCharacter1(
            self as *const crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(character)
                .as_raw_ptr(),
        )
    }

    /// <p>Swaps this raw font with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRawFont::swap(QRawFont& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this raw font with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QRawFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_swap(
            self as *mut crate::QRawFont,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QRawFont>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the position from baseline for drawing underlines below the text rendered with this font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::underlinePosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#underlinePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position from baseline for drawing underlines below the text rendered with this font.</p></div>
    #[inline(always)]
    pub unsafe fn underline_position(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_underlinePosition(self as *const crate::QRawFont)
    }

    /// <p>Returns the number of design units define the width and height of the em square for this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>. This value is used together with the pixel size when converting design metrics to pixel units, as the internal metrics are specified in design units and the pixel size gives the size of 1 em in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::unitsPerEm() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#unitsPerEm">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of design units define the width and height of the em square for this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>. This value is used together with the pixel size when converting design metrics to pixel units, as the internal metrics are specified in design units and the pixel size gives the size of 1 em in pixels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrawfont.html#pixelSize">pixelSize</a>() and <a href="http://doc.qt.io/qt-5/qrawfont.html#setPixelSize">setPixelSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn units_per_em(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_unitsPerEm(self as *const crate::QRawFont)
    }

    /// <p>Returns the weight of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QRawFont::weight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#weight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the weight of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#weight">QFont::weight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn weight(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_weight(self as *const crate::QRawFont)
    }

    /// <p>Returns the xHeight of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QRawFont::xHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#xHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the xHeight of this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> in pixel units.</p>
    /// <p>This is often but not always the same as the height of the character 'x'.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#xHeight">QFontMetricsF::xHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x_height(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_xHeight(self as *const crate::QRawFont)
    }
}

pub mod q_glyph_run {
    //! C++ type: <span style='color: green;'>```QGlyphRun```</span>

    /// <p>This enum describes flags that alter the way the run of glyphs might be presented or behave in a visual layout. The layout which generates the glyph runs can set these flags based on relevant internal data, to retain information needed to present the text as intended by the user of the layout.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QGlyphRun::GlyphRunFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#GlyphRunFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes flags that alter the way the run of glyphs might be presented or behave in a visual layout. The layout which generates the glyph runs can set these flags based on relevant internal data, to retain information needed to present the text as intended by the user of the layout.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.0.</p>
    /// <p>The GlyphRunFlags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;GlyphRunFlag&gt;. It stores an OR combination of GlyphRunFlag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct GlyphRunFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for GlyphRunFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            GlyphRunFlag(value)
        }
    }

    impl From<GlyphRunFlag> for ::std::os::raw::c_int {
        fn from(value: GlyphRunFlag) -> Self {
            value.0
        }
    }

    impl GlyphRunFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl GlyphRunFlag {
        /// Indicates that the glyphs should be visualized together with an overline. (C++ enum variant: <span style='color: green;'>```Overline = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Overline: crate::q_glyph_run::GlyphRunFlag = crate::q_glyph_run::GlyphRunFlag(1);
        /// Indicates that the glyphs should be visualized together with an underline. (C++ enum variant: <span style='color: green;'>```Underline = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Underline: crate::q_glyph_run::GlyphRunFlag = crate::q_glyph_run::GlyphRunFlag(2);
        /// Indicates that the glyphs should be struck out visually. (C++ enum variant: <span style='color: green;'>```StrikeOut = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const StrikeOut: crate::q_glyph_run::GlyphRunFlag = crate::q_glyph_run::GlyphRunFlag(4);
        /// Indicates that the glyphs are ordered right to left. This can affect the positioning of other screen elements that are relative to the glyph run, such as an inline text object. (C++ enum variant: <span style='color: green;'>```RightToLeft = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const RightToLeft: crate::q_glyph_run::GlyphRunFlag =
            crate::q_glyph_run::GlyphRunFlag(8);
        /// Indicates that the glyph run splits a ligature glyph. This means that a ligature glyph is included in the run, but the characters represented by it corresponds only to part of that ligature. The glyph run's <a href="http://doc.qt.io/qt-5/qglyphrun.html#boundingRect">boundingRect</a>() function can in this case be used to retrieve the area covered by glyphs that correspond to the characters represented by the glyph run. When visualizing the glyphs, care needs to be taken to clip to this bounding rect to ensure that only the corresponding part of the ligature is painted. In particular, this can be the case when retrieving a glyph run from a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> for a specific character range, e.g. when retrieving the selected area of a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. (C++ enum variant: <span style='color: green;'>```SplitLigature = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const SplitLigature: crate::q_glyph_run::GlyphRunFlag =
            crate::q_glyph_run::GlyphRunFlag(16);
    }

    impl From<crate::q_glyph_run::GlyphRunFlag>
        for ::qt_core::QFlags<crate::q_glyph_run::GlyphRunFlag>
    {
        fn from(value: crate::q_glyph_run::GlyphRunFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_glyph_run::GlyphRunFlag>>> std::ops::BitOr<T>
        for crate::q_glyph_run::GlyphRunFlag
    {
        type Output = ::qt_core::QFlags<crate::q_glyph_run::GlyphRunFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_glyph_run::GlyphRunFlag> {
            Into::<::qt_core::QFlags<crate::q_glyph_run::GlyphRunFlag>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> class provides direct access to the internal glyphs in a font.</p>
///
/// C++ class: <span style='color: green;'>```QGlyphRun```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qglyphrun.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> class provides direct access to the internal glyphs in a font.</p>
/// <p>When Qt displays a string of text encoded in Unicode, it will first convert the Unicode points into a list of glyph indexes and a list of positions based on one or more fonts. The Unicode representation of the text and the <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> object will in this case serve as a convenient abstraction that hides the details of what actually takes place when displaying the text on-screen. For instance, by the time the text actually reaches the screen, it may be represented by a set of fonts in addition to the one specified by the user, e.g. in case the originally selected font did not support all the writing systems contained in the text.</p>
/// <p>Under certain circumstances, it can be useful as an application developer to have more low-level control over which glyphs in a specific font are drawn to the screen. This could for instance be the case in applications that use an external font engine and text shaper together with Qt. <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> provides an interface to the raw data needed to get text on the screen. It contains a list of glyph indexes, a position for each glyph and a font.</p>
/// <p>It is the user's responsibility to ensure that the selected font actually contains the provided glyph indexes.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">QTextLayout::glyphRuns</a>() or <a href="http://doc.qt.io/qt-5/qtextfragment.html#glyphRuns">QTextFragment::glyphRuns</a>() can be used to convert unicode encoded text into a list of <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> objects, and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>() can be used to draw the glyphs.</p>
/// <p><b>Note: </b>Please note that <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is considered local to the thread in which it is constructed. This in turn means that a new <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> will have to be created and set on the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> if it is moved to a different thread. If the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> contains a reference to a <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> from a different thread than the current, it will not be possible to draw the glyphs using a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>, as the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is considered invalid and inaccessible in this case.</p></div>
#[repr(C)]
pub struct QGlyphRun {
    _unused: u8,
}
impl QGlyphRun {
    /// <p>Returns the smallest rectangle that contains all glyphs in this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>. If a bounding rect has been set using <a href="http://doc.qt.io/qt-5/qglyphrun.html#setBoundingRect">setBoundingRect</a>(), then this will be returned. Otherwise the bounding rect will be calculated based on the font metrics of the glyphs in the glyph run.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QGlyphRun::boundingRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the smallest rectangle that contains all glyphs in this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>. If a bounding rect has been set using <a href="http://doc.qt.io/qt-5/qglyphrun.html#setBoundingRect">setBoundingRect</a>(), then this will be returned. Otherwise the bounding rect will be calculated based on the font metrics of the glyphs in the glyph run.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setBoundingRect">setBoundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_boundingRect(self as *const crate::QGlyphRun);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Clears all data in the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears all data in the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_clear(self as *mut crate::QGlyphRun)
    }

    /// <p>Assigns <i>other</i> to this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QGlyphRun::operator=(const QGlyphRun& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> ::cpp_core::MutRef<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_operator_1(
            self as *mut crate::QGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the flags set for this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QGlyphRun::GlyphRunFlag> QGlyphRun::flags() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#flags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the flags set for this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlags">setFlags</a>(), <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">setFlag</a>(), and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">setFlag</a>().</p></div>
    #[inline(always)]
    pub unsafe fn flags(&self) -> ::qt_core::QFlags<crate::q_glyph_run::GlyphRunFlag> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_flags(self as *const crate::QGlyphRun);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the glyph indexes for this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32> QGlyphRun::glyphIndexes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#glyphIndexes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyph indexes for this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setGlyphIndexes">setGlyphIndexes</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setPositions">setPositions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_indexes(&self) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_glyphIndexes(self as *const crate::QGlyphRun);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> does not contain any glyphs.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGlyphRun::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> does not contain any glyphs.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_isEmpty(self as *const crate::QGlyphRun)
    }

    /// <p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> contains glyphs that are painted from the right to the left.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGlyphRun::isRightToLeft() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#isRightToLeft">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> contains glyphs that are painted from the right to the left.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setRightToLeft">setRightToLeft</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_right_to_left(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_isRightToLeft(self as *const crate::QGlyphRun)
    }

    /// <p>Constructs an empty <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGlyphRun::QGlyphRun()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#QGlyphRun">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_QGlyphRun();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object which is a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGlyphRun::QGlyphRun(const QGlyphRun& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#QGlyphRun-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object which is a copy of <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> ::cpp_core::CppBox<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_QGlyphRun1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an overline decoration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGlyphRun::overline() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#overline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an overline decoration.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setOverline">setOverline</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn overline(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_overline(self as *const crate::QGlyphRun)
    }

    /// <p>Returns the position of the edge of the baseline for each glyph in this set of glyph indexes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPointF> QGlyphRun::positions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#positions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the edge of the baseline for each glyph in this set of glyph indexes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setPositions">setPositions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn positions(&self) -> ::cpp_core::CppBox<::qt_core::QVectorOfQPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_positions(self as *const crate::QGlyphRun);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the font selected for this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRawFont QGlyphRun::rawFont() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#rawFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font selected for this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setRawFont">setRawFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn raw_font(&self) -> ::cpp_core::CppBox<crate::QRawFont> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_rawFont(self as *const crate::QGlyphRun);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the bounding rect of the glyphs in this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> to be <i>boundingRect</i>. This rectangle will be returned by <a href="http://doc.qt.io/qt-5/qglyphrun.html#boundingRect">boundingRect</a>() unless it is empty, in which case the bounding rectangle of the glyphs in the glyph run will be returned instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setBoundingRect(const QRectF& boundingRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setBoundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the bounding rect of the glyphs in this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> to be <i>boundingRect</i>. This rectangle will be returned by <a href="http://doc.qt.io/qt-5/qglyphrun.html#boundingRect">boundingRect</a>() unless it is empty, in which case the bounding rectangle of the glyphs in the glyph run will be returned instead.</p>
    /// <p><b>Note: </b>Unless you are implementing text shaping, you should not have to use this function. It is used specifically when the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should represent an area which is smaller than the area of the glyphs it contains. This could happen e.g. if the glyph run is retrieved by calling <a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">QTextLayout::glyphRuns</a>() and the specified range only includes part of a ligature (where two or more characters are combined to a single glyph.) When this is the case, the bounding rect should only include the appropriate part of the ligature glyph, based on a calculation of the average width of the characters in the ligature.</p><p>In order to support such a case (an example is selections which should be drawn with a different color than the main text color), it is necessary to clip the painting mechanism to the rectangle returned from <a href="http://doc.qt.io/qt-5/qglyphrun.html#boundingRect">boundingRect</a>() to avoid drawing the entire ligature glyph.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bounding_rect(
        &mut self,
        bounding_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setBoundingRect(
            self as *mut crate::QGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(bounding_rect)
                .as_raw_ptr(),
        )
    }

    /// <p>If <i>enabled</i> is true, then <i>flag</i> is enabled; otherwise, it is disabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setFlag(QGlyphRun::GlyphRunFlag flag, bool enabled = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enabled</i> is true, then <i>flag</i> is enabled; otherwise, it is disabled.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#flags">flags</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_flag_2a(&mut self, flag: crate::q_glyph_run::GlyphRunFlag, enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setFlag(self as *mut crate::QGlyphRun, flag, enabled)
    }

    /// <p>If <i>enabled</i> is true, then <i>flag</i> is enabled; otherwise, it is disabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setFlag(QGlyphRun::GlyphRunFlag flag)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enabled</i> is true, then <i>flag</i> is enabled; otherwise, it is disabled.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#flags">flags</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_flag_1a(&mut self, flag: crate::q_glyph_run::GlyphRunFlag) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setFlag1(self as *mut crate::QGlyphRun, flag)
    }

    /// <p>Sets the flags of this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> to <i>flags</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setFlags(QFlags<QGlyphRun::GlyphRunFlag> flags)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the flags of this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> to <i>flags</i>.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">setFlag</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_flags(&mut self, flags: ::qt_core::QFlags<crate::q_glyph_run::GlyphRunFlag>) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setFlags(
            self as *mut crate::QGlyphRun,
            flags.to_int(),
        )
    }

    /// <p>Set the glyph indexes for this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object to <i>glyphIndexes</i>. The glyph indexes must be valid for the selected font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setGlyphIndexes(const QVector<quint32>& glyphIndexes)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setGlyphIndexes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the glyph indexes for this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object to <i>glyphIndexes</i>. The glyph indexes must be valid for the selected font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#glyphIndexes">glyphIndexes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_glyph_indexes(
        &mut self,
        glyph_indexes: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setGlyphIndexes(
            self as *mut crate::QGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(glyph_indexes)
                .as_raw_ptr(),
        )
    }

    /// <p>Indicates that this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an overline decoration if <i>overline</i> is true. Otherwise the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with no overline decoration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setOverline(bool overline)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setOverline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Indicates that this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an overline decoration if <i>overline</i> is true. Otherwise the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with no overline decoration.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#overline">overline</a>(), <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">setFlag</a>(), and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_overline(&mut self, overline: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setOverline(self as *mut crate::QGlyphRun, overline)
    }

    /// <p>Sets the positions of the edge of the baseline for each glyph in this set of glyph indexes to <i>positions</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setPositions(const QVector<QPointF>& positions)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setPositions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the positions of the edge of the baseline for each glyph in this set of glyph indexes to <i>positions</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#positions">positions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_positions(
        &mut self,
        positions: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfQPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setPositions(
            self as *mut crate::QGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfQPointF>>::cast_into(
                positions,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Sets the glyph indexes and positions of this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> to use the first <i>size</i> elements in the arrays <i>glyphIndexArray</i> and <i>glyphPositionArray</i>. The data is <i>not</i> copied. The caller must guarantee that the arrays are not deleted as long as this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> and any copies of it exists.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setRawData(const quint32* glyphIndexArray, const QPointF* glyphPositionArray, int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setRawData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the glyph indexes and positions of this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> to use the first <i>size</i> elements in the arrays <i>glyphIndexArray</i> and <i>glyphPositionArray</i>. The data is <i>not</i> copied. The caller must guarantee that the arrays are not deleted as long as this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> and any copies of it exists.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setGlyphIndexes">setGlyphIndexes</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setPositions">setPositions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_raw_data(
        &mut self,
        glyph_index_array: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
        glyph_position_array: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setRawData(
            self as *mut crate::QGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(glyph_index_array).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(
                glyph_position_array,
            )
            .as_raw_ptr(),
            size,
        )
    }

    /// <p>Sets the font in which to look up the glyph indexes to the <i>rawFont</i> specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setRawFont(const QRawFont& rawFont)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setRawFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the font in which to look up the glyph indexes to the <i>rawFont</i> specified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#rawFont">rawFont</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setGlyphIndexes">setGlyphIndexes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_raw_font(
        &mut self,
        raw_font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRawFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setRawFont(
            self as *mut crate::QGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRawFont>>::cast_into(raw_font)
                .as_raw_ptr(),
        )
    }

    /// <p>Indicates that this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> contains glyphs that should be ordered from the right to left if <i>rightToLeft</i> is true. Otherwise the order of the glyphs is assumed to be left to right.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setRightToLeft(bool on)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setRightToLeft">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Indicates that this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> contains glyphs that should be ordered from the right to left if <i>rightToLeft</i> is true. Otherwise the order of the glyphs is assumed to be left to right.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#isRightToLeft">isRightToLeft</a>(), <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">setFlag</a>(), and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_right_to_left(&mut self, on: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setRightToLeft(self as *mut crate::QGlyphRun, on)
    }

    /// <p>Indicates that this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an strike out decoration if <i>strikeOut</i> is true. Otherwise the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with no strike out decoration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setStrikeOut(bool strikeOut)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setStrikeOut">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Indicates that this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an strike out decoration if <i>strikeOut</i> is true. Otherwise the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with no strike out decoration.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#strikeOut">strikeOut</a>(), <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">setFlag</a>(), and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_strike_out(&mut self, strike_out: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setStrikeOut(
            self as *mut crate::QGlyphRun,
            strike_out,
        )
    }

    /// <p>Indicates that this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an underline decoration if <i>underline</i> is true. Otherwise the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with no underline decoration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::setUnderline(bool underline)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#setUnderline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Indicates that this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an underline decoration if <i>underline</i> is true. Otherwise the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with no underline decoration.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#underline">underline</a>(), <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlag">setFlag</a>(), and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_underline(&mut self, underline: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_setUnderline(
            self as *mut crate::QGlyphRun,
            underline,
        )
    }

    /// <p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with a strike out decoration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGlyphRun::strikeOut() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#strikeOut">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with a strike out decoration.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setStrikeOut">setStrikeOut</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn strike_out(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_strikeOut(self as *const crate::QGlyphRun)
    }

    /// <p>Swaps this glyph run instance with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGlyphRun::swap(QGlyphRun& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this glyph run instance with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_swap(
            self as *mut crate::QGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QGlyphRun>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an underline decoration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGlyphRun::underline() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#underline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> should be painted with an underline decoration.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setUnderline">setUnderline</a>() and <a href="http://doc.qt.io/qt-5/qglyphrun.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn underline(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_underline(self as *const crate::QGlyphRun)
    }
}

pub mod q_text_cursor {
    //! C++ type: <span style='color: green;'>```QTextCursor```</span>

    /// <p>If the <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>() is kept where it is and the <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() is moved, the text in between will be selected.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextCursor::MoveMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#MoveMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>() is kept where it is and the <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() is moved, the text in between will be selected.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct MoveMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for MoveMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            MoveMode(value)
        }
    }

    impl From<MoveMode> for ::std::os::raw::c_int {
        fn from(value: MoveMode) -> Self {
            value.0
        }
    }

    impl MoveMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl MoveMode {
        /// Moves the anchor to the same position as the cursor itself. (C++ enum variant: <span style='color: green;'>```MoveAnchor = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const MoveAnchor: crate::q_text_cursor::MoveMode = crate::q_text_cursor::MoveMode(0);
        /// Keeps the anchor where it is. (C++ enum variant: <span style='color: green;'>```KeepAnchor = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const KeepAnchor: crate::q_text_cursor::MoveMode = crate::q_text_cursor::MoveMode(1);
    }

    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>().</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextCursor::MoveOperation```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#MoveOperation-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct MoveOperation(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for MoveOperation {
        fn from(value: ::std::os::raw::c_int) -> Self {
            MoveOperation(value)
        }
    }

    impl From<MoveOperation> for ::std::os::raw::c_int {
        fn from(value: MoveOperation) -> Self {
            value.0
        }
    }

    impl MoveOperation {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl MoveOperation {
        /// Keep the cursor where it is (C++ enum variant: <span style='color: green;'>```NoMove = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoMove: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(0);
        /// Move to the start of the document. (C++ enum variant: <span style='color: green;'>```Start = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Start: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(1);
        /// Move up one line. (C++ enum variant: <span style='color: green;'>```Up = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Up: crate::q_text_cursor::MoveOperation = crate::q_text_cursor::MoveOperation(2);
        /// Move to the start of the current line. (C++ enum variant: <span style='color: green;'>```StartOfLine = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const StartOfLine: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(3);
        /// Move to the start of the current block. (C++ enum variant: <span style='color: green;'>```StartOfBlock = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const StartOfBlock: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(4);
        /// Move to the start of the current word. (C++ enum variant: <span style='color: green;'>```StartOfWord = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const StartOfWord: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(5);
        /// Move to the start of the previous block. (C++ enum variant: <span style='color: green;'>```PreviousBlock = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreviousBlock: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(6);
        /// Move to the previous character. (C++ enum variant: <span style='color: green;'>```PreviousCharacter = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreviousCharacter: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(7);
        /// Move to the beginning of the previous word. (C++ enum variant: <span style='color: green;'>```PreviousWord = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreviousWord: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(8);
        /// Move left one character. (C++ enum variant: <span style='color: green;'>```Left = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const Left: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(9);
        /// Move left one word. (C++ enum variant: <span style='color: green;'>```WordLeft = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const WordLeft: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(10);
        /// Move to the end of the document. (C++ enum variant: <span style='color: green;'>```End = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const End: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(11);
        /// Move down one line. (C++ enum variant: <span style='color: green;'>```Down = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const Down: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(12);
        /// Move to the end of the current line. (C++ enum variant: <span style='color: green;'>```EndOfLine = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const EndOfLine: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(13);
        /// Move to the end of the current word. (C++ enum variant: <span style='color: green;'>```EndOfWord = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const EndOfWord: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(14);
        /// Move to the end of the current block. (C++ enum variant: <span style='color: green;'>```EndOfBlock = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const EndOfBlock: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(15);
        /// Move to the beginning of the next block. (C++ enum variant: <span style='color: green;'>```NextBlock = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const NextBlock: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(16);
        /// Move to the next character. (C++ enum variant: <span style='color: green;'>```NextCharacter = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const NextCharacter: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(17);
        /// Move to the next word. (C++ enum variant: <span style='color: green;'>```NextWord = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const NextWord: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(18);
        /// Move right one character. (C++ enum variant: <span style='color: green;'>```Right = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const Right: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(19);
        /// Move right one word. (C++ enum variant: <span style='color: green;'>```WordRight = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const WordRight: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(20);
        /// Move to the beginning of the next table cell inside the current table. If the current cell is the last cell in the row, the cursor will move to the first cell in the next row. (C++ enum variant: <span style='color: green;'>```NextCell = 21```</span>)
        #[allow(non_upper_case_globals)]
        pub const NextCell: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(21);
        /// Move to the beginning of the previous table cell inside the current table. If the current cell is the first cell in the row, the cursor will move to the last cell in the previous row. (C++ enum variant: <span style='color: green;'>```PreviousCell = 22```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreviousCell: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(22);
        /// Move to the first new cell of the next row in the current table. (C++ enum variant: <span style='color: green;'>```NextRow = 23```</span>)
        #[allow(non_upper_case_globals)]
        pub const NextRow: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(23);
        /// Move to the last cell of the previous row in the current table. (C++ enum variant: <span style='color: green;'>```PreviousRow = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const PreviousRow: crate::q_text_cursor::MoveOperation =
            crate::q_text_cursor::MoveOperation(24);
    }

    /// <p>This enum describes the types of selection that can be applied with the <a href="http://doc.qt.io/qt-5/qtextcursor.html#select">select</a>() function.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextCursor::SelectionType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#SelectionType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the types of selection that can be applied with the <a href="http://doc.qt.io/qt-5/qtextcursor.html#select">select</a>() function.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SelectionType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SelectionType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SelectionType(value)
        }
    }

    impl From<SelectionType> for ::std::os::raw::c_int {
        fn from(value: SelectionType) -> Self {
            value.0
        }
    }

    impl SelectionType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SelectionType {
        /// Selects the word under the cursor. If the cursor is not positioned within a string of selectable characters, no text is selected. (C++ enum variant: <span style='color: green;'>```WordUnderCursor = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const WordUnderCursor: crate::q_text_cursor::SelectionType =
            crate::q_text_cursor::SelectionType(0);
        /// Selects the line of text under the cursor. (C++ enum variant: <span style='color: green;'>```LineUnderCursor = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const LineUnderCursor: crate::q_text_cursor::SelectionType =
            crate::q_text_cursor::SelectionType(1);
        /// Selects the block of text under the cursor. (C++ enum variant: <span style='color: green;'>```BlockUnderCursor = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlockUnderCursor: crate::q_text_cursor::SelectionType =
            crate::q_text_cursor::SelectionType(2);
        /// Selects the entire document. (C++ enum variant: <span style='color: green;'>```Document = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Document: crate::q_text_cursor::SelectionType =
            crate::q_text_cursor::SelectionType(3);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> class offers an API to access and modify QTextDocuments.</p>
///
/// C++ class: <span style='color: green;'>```QTextCursor```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextcursor.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> class offers an API to access and modify QTextDocuments.</p>
/// <p>Text cursors are objects that are used to access and modify the contents and underlying structure of text documents via a programming interface that mimics the behavior of a cursor in a text editor. <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> contains information about both the cursor's position within a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> and any selection that it has made.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> is modeled on the way a text cursor behaves in a text editor, providing a programmatic means of performing standard actions through the user interface. A document can be thought of as a single string of characters. The cursor's current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() then is always either <i>between</i> two consecutive characters in the string, or else <i>before</i> the very first character or <i>after</i> the very last character in the string. Documents can also contain tables, lists, images, and other objects in addition to text but, from the developer's point of view, the document can be treated as one long string. Some portions of that string can be considered to lie within particular blocks (e.g. paragraphs), or within a table's cell, or a list's item, or other structural elements. When we refer to "current character" we mean the character immediately <i>before</i> the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() in the document. Similarly, the "current block" is the block that contains the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> also has an <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>() position. The text that is between the <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>() and the <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() is the selection. If <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>() == <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() there is no selection.</p>
/// <p>The cursor position can be changed programmatically using <a href="http://doc.qt.io/qt-5/qtextcursor.html#setPosition">setPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>(); the latter can also be used to select text. For selections see <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionStart">selectionStart</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionEnd">selectionEnd</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#clearSelection">clearSelection</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#removeSelectedText">removeSelectedText</a>().</p>
/// <p>If the <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() is at the start of a block, <a href="http://doc.qt.io/qt-5/qtextcursor.html#atBlockStart">atBlockStart</a>() returns <code>true</code>; and if it is at the end of a block, <a href="http://doc.qt.io/qt-5/qtextcursor.html#atBlockEnd">atBlockEnd</a>() returns true. The format of the current character is returned by <a href="http://doc.qt.io/qt-5/qtextcursor.html#charFormat">charFormat</a>(), and the format of the current block is returned by <a href="http://doc.qt.io/qt-5/qtextcursor.html#blockFormat">blockFormat</a>().</p>
/// <p>Formatting can be applied to the current text document using the <a href="http://doc.qt.io/qt-5/qtextcursor.html#setCharFormat">setCharFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#mergeCharFormat">mergeCharFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockFormat">setBlockFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#mergeBlockFormat">mergeBlockFormat</a>() functions. The 'set' functions will replace the cursor's current character or block format, while the 'merge' functions add the given format properties to the cursor's current format. If the cursor has a selection, the given format is applied to the current selection. Note that when only a part of a block is selected, the block format is applied to the entire block. The text at the current character position can be turned into a list using <a href="http://doc.qt.io/qt-5/qtextcursor.html#createList">createList</a>().</p>
/// <p>Deletions can be achieved using <a href="http://doc.qt.io/qt-5/qtextcursor.html#deleteChar">deleteChar</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#deletePreviousChar">deletePreviousChar</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#removeSelectedText">removeSelectedText</a>().</p>
/// <p>Text strings can be inserted into the document with the <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertText">insertText</a>() function, blocks (representing new paragraphs) can be inserted with <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertBlock">insertBlock</a>().</p>
/// <p>Existing fragments of text can be inserted with <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertFragment">insertFragment</a>() but, if you want to insert pieces of text in various formats, it is usually still easier to use <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertText">insertText</a>() and supply a character format.</p>
/// <p>Various types of higher-level structure can also be inserted into the document with the cursor:</p>
/// <ul>
/// <li>Lists are ordered sequences of block elements that are decorated with bullet points or symbols. These are inserted in a specified format with <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertList">insertList</a>().</li>
/// <li>Tables are inserted with the <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertTable">insertTable</a>() function, and can be given an optional format. These contain an array of cells that can be traversed using the cursor.</li>
/// <li>Inline images are inserted with <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertImage">insertImage</a>(). The image to be used can be specified in an image format, or by name.</li>
/// <li>Frames are inserted by calling <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertFrame">insertFrame</a>() with a specified format.</li>
/// </ul>
/// <p>Actions can be grouped (i.e. treated as a single action for undo/redo) using <a href="http://doc.qt.io/qt-5/qtextcursor.html#beginEditBlock">beginEditBlock</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#endEditBlock">endEditBlock</a>().</p>
/// <p>Cursor movements are limited to valid cursor positions. In Latin writing this is between any two consecutive characters in the text, before the first character, or after the last character. In some other writing systems cursor movements are limited to "clusters" (e.g. a syllable in Devanagari, or a base letter plus diacritics). Functions such as <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#deleteChar">deleteChar</a>() limit cursor movement to these valid positions.</p></div>
#[repr(C)]
pub struct QTextCursor {
    _unused: u8,
}
impl QTextCursor {
    /// <p>Returns the anchor position; this is the same as <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() unless there is a selection in which case <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() marks one end of the selection and anchor() marks the other end. Just like the cursor position, the anchor position is between characters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCursor::anchor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the anchor position; this is the same as <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() unless there is a selection in which case <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() marks one end of the selection and anchor() marks the other end. Just like the cursor position, the anchor position is between characters.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#setPosition">setPosition</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionStart">selectionStart</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionEnd">selectionEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn anchor(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_anchor(self as *const crate::QTextCursor)
    }

    /// <p>Returns <code>true</code> if the cursor is at the end of a block; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::atBlockEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#atBlockEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the cursor is at the end of a block; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#atBlockStart">atBlockStart</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#atEnd">atEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at_block_end(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_atBlockEnd(self as *const crate::QTextCursor)
    }

    /// <p>Returns <code>true</code> if the cursor is at the start of a block; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::atBlockStart() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#atBlockStart">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the cursor is at the start of a block; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#atBlockEnd">atBlockEnd</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#atStart">atStart</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at_block_start(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_atBlockStart(self as *const crate::QTextCursor)
    }

    /// <p>Returns <code>true</code> if the cursor is at the end of the document; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::atEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#atEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the cursor is at the end of the document; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#atStart">atStart</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#atBlockEnd">atBlockEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at_end(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_atEnd(self as *const crate::QTextCursor)
    }

    /// <p>Returns <code>true</code> if the cursor is at the start of the document; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::atStart() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#atStart">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the cursor is at the start of the document; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#atBlockStart">atBlockStart</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#atEnd">atEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at_start(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_atStart(self as *const crate::QTextCursor)
    }

    /// <p>Indicates the start of a block of editing operations on the document that should appear as a single operation from an undo/redo point of view.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::beginEditBlock()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#beginEditBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Indicates the start of a block of editing operations on the document that should appear as a single operation from an undo/redo point of view.</p>
    /// <p>For example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor">QTextCursor</a></span> cursor(textDocument);
    ///   cursor<span class="operator">.</span>beginEditBlock();
    ///   cursor<span class="operator">.</span>insertText(<span class="string">"Hello"</span>);
    ///   cursor<span class="operator">.</span>insertText(<span class="string">"World"</span>);
    ///   cursor<span class="operator">.</span>endEditBlock();
    ///
    ///   textDocument<span class="operator">-</span><span class="operator">&gt;</span>undo();
    ///
    /// </pre>
    /// <p>The call to undo() will cause both insertions to be undone, causing both "World" and "Hello" to be removed.</p>
    /// <p>It is possible to nest calls to beginEditBlock and <a href="http://doc.qt.io/qt-5/qtextcursor.html#endEditBlock">endEditBlock</a>. The top-most pair will determine the scope of the undo/redo operation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#endEditBlock">endEditBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_edit_block(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_beginEditBlock(self as *mut crate::QTextCursor)
    }

    /// <p>Returns the block that contains the cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextCursor::block() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#block">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the block that contains the cursor.</p></div>
    #[inline(always)]
    pub unsafe fn block(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextCursor_block(self as *const crate::QTextCursor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the block character format of the block the cursor is in.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat QTextCursor::blockCharFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#blockCharFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the block character format of the block the cursor is in.</p>
    /// <p>The block char format is the format used when inserting text at the beginning of an empty block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockCharFormat">setBlockCharFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn block_char_format(&self) -> ::cpp_core::CppBox<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_blockCharFormat(
            self as *const crate::QTextCursor,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the block format of the block the cursor is in.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlockFormat QTextCursor::blockFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#blockFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the block format of the block the cursor is in.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockFormat">setBlockFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#charFormat">charFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn block_format(&self) -> ::cpp_core::CppBox<crate::QTextBlockFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextCursor_blockFormat(self as *const crate::QTextCursor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of the block the cursor is in, or 0 if the cursor is invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCursor::blockNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#blockNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of the block the cursor is in, or 0 if the cursor is invalid.</p>
    /// <p>Note that this function only makes sense in documents without complex objects such as tables or frames.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn block_number(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_blockNumber(self as *const crate::QTextCursor)
    }

    /// <p>Returns the format of the character immediately before the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(). If the cursor is positioned at the beginning of a text block that is not empty then the format of the character immediately after the cursor is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat QTextCursor::charFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#charFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format of the character immediately before the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(). If the cursor is positioned at the beginning of a text block that is not empty then the format of the character immediately after the cursor is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setCharFormat">setCharFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertText">insertText</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#blockFormat">blockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn char_format(&self) -> ::cpp_core::CppBox<crate::QTextCharFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextCursor_charFormat(self as *const crate::QTextCursor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Clears the current selection by setting the anchor to the cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::clearSelection()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#clearSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the current selection by setting the anchor to the cursor position.</p>
    /// <p>Note that it does <b>not</b> delete the text of the selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#removeSelectedText">removeSelectedText</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_selection(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_clearSelection(self as *mut crate::QTextCursor)
    }

    /// <p>Returns the position of the cursor within its containing line.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCursor::columnNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#columnNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the cursor within its containing line.</p>
    /// <p>Note that this is the column number relative to a wrapped line, not relative to the block (i.e. the paragraph).</p>
    /// <p>You probably want to call <a href="http://doc.qt.io/qt-5/qtextcursor.html#positionInBlock">positionInBlock</a>() instead.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#positionInBlock">positionInBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column_number(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_columnNumber(self as *const crate::QTextCursor)
    }

    /// <p>Makes a copy of <i>cursor</i> and assigns it to this <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a>. Note that <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> is an <a href="http://doc.qt.io/qt-5/implicit-sharing.html#implicitly-shared-classes">implicitly shared</a> class.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor& QTextCursor::operator=(const QTextCursor& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes a copy of <i>cursor</i> and assigns it to this <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a>. Note that <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> is an <a href="http://doc.qt.io/qt-5/implicit-sharing.html#implicitly-shared-classes">implicitly shared</a> class.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::MutRef<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_operator_1(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates and returns a new list with the given <i>format</i>, and makes the current paragraph the cursor is in the first list item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextList* QTextCursor::createList(const QTextListFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#createList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a new list with the given <i>format</i>, and makes the current paragraph the cursor is in the first list item.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#insertList">insertList</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#currentList">currentList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_list_q_text_list_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextListFormat>>,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_createList(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextListFormat>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextList* QTextCursor::createList(QTextListFormat::Style style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#createList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and returns a new list with the given <i>style</i>, making the cursor's current paragraph the first list item.</p>
    /// <p>The style to be used is defined by the <a href="http://doc.qt.io/qt-5/qtextlistformat.html#Style-enum">QTextListFormat::Style</a> enum.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#insertList">insertList</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#currentList">currentList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_list_style(
        &mut self,
        style: crate::q_text_list_format::Style,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_createList1(
            self as *mut crate::QTextCursor,
            style,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to the current frame. Returns 0 if the cursor is invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QTextCursor::currentFrame() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#currentFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current frame. Returns 0 if the cursor is invalid.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#insertFrame">insertFrame</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_frame(&self) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_currentFrame(
            self as *const crate::QTextCursor,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the current list if the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() is inside a block that is part of a list; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextList* QTextCursor::currentList() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#currentList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current list if the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() is inside a block that is part of a list; otherwise returns 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#insertList">insertList</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#createList">createList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_list(&self) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextCursor_currentList(self as *const crate::QTextCursor);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to the current table if the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() is inside a block that is part of a table; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTable* QTextCursor::currentTable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#currentTable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current table if the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() is inside a block that is part of a table; otherwise returns 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#insertTable">insertTable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_table(&self) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_currentTable(
            self as *const crate::QTextCursor,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>If there is no selected text, deletes the character <i>at</i> the current cursor position; otherwise deletes the selected text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::deleteChar()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#deleteChar">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If there is no selected text, deletes the character <i>at</i> the current cursor position; otherwise deletes the selected text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#deletePreviousChar">deletePreviousChar</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#clearSelection">clearSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn delete_char(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_deleteChar(self as *mut crate::QTextCursor)
    }

    /// <p>If there is no selected text, deletes the character <i>before</i> the current cursor position; otherwise deletes the selected text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::deletePreviousChar()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#deletePreviousChar">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If there is no selected text, deletes the character <i>before</i> the current cursor position; otherwise deletes the selected text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#deleteChar">deleteChar</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#clearSelection">clearSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn delete_previous_char(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_deletePreviousChar(self as *mut crate::QTextCursor)
    }

    /// <p>Returns the document this cursor is associated with.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextDocument* QTextCursor::document() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#document">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document this cursor is associated with.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn document(&self) -> ::cpp_core::MutPtr<crate::QTextDocument> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextCursor_document(self as *const crate::QTextCursor);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Indicates the end of a block of editing operations on the document that should appear as a single operation from an undo/redo point of view.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::endEditBlock()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#endEditBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Indicates the end of a block of editing operations on the document that should appear as a single operation from an undo/redo point of view.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#beginEditBlock">beginEditBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_edit_block(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_endEditBlock(self as *mut crate::QTextCursor)
    }

    /// <p>Returns <code>true</code> if the cursor contains a selection that is not simply a range from <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionStart">selectionStart</a>() to <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionEnd">selectionEnd</a>(); otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::hasComplexSelection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#hasComplexSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the cursor contains a selection that is not simply a range from <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionStart">selectionStart</a>() to <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionEnd">selectionEnd</a>(); otherwise returns <code>false</code>.</p>
    /// <p>Complex selections are ones that span at least two cells in a table; their extent is specified by <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectedTableCells">selectedTableCells</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_complex_selection(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_hasComplexSelection(
            self as *const crate::QTextCursor,
        )
    }

    /// <p>Returns <code>true</code> if the cursor contains a selection; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::hasSelection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the cursor contains a selection; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn has_selection(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_hasSelection(self as *const crate::QTextCursor)
    }

    /// <p>Inserts a new empty block at the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() with the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#blockFormat">blockFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#charFormat">charFormat</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertBlock()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a new empty block at the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() with the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#blockFormat">blockFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#charFormat">charFormat</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockFormat">setBlockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_block_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertBlock(self as *mut crate::QTextCursor)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertBlock(const QTextBlockFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertBlock-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts a new empty block at the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() with block format <i>format</i> and the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#charFormat">charFormat</a>() as block char format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockFormat">setBlockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_block_1a(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlockFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertBlock1(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlockFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertBlock(const QTextBlockFormat& format, const QTextCharFormat& charFormat)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertBlock-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts a new empty block at the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() with block format <i>format</i> and <i>charFormat</i> as block char format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockFormat">setBlockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_block_2a(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlockFormat>>,
        char_format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertBlock2(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlockFormat>>::cast_into(format)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(char_format)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts the text <i>fragment</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertFragment(const QTextDocumentFragment& fragment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertFragment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts the text <i>fragment</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_fragment(
        &mut self,
        fragment: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextDocumentFragment>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertFragment(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextDocumentFragment>>::cast_into(
                fragment,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Inserts a frame with the given <i>format</i> at the current cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(), moves the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() inside the frame, and returns the frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QTextCursor::insertFrame(const QTextFrameFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a frame with the given <i>format</i> at the current cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(), moves the cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() inside the frame, and returns the frame.</p>
    /// <p>If the cursor holds a selection, the whole selection is moved inside the frame.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_frame(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFrameFormat>>,
    ) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertFrame(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFrameFormat>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Inserts the text <i>html</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(). The text is interpreted as HTML.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertHtml(const QString& html)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertHtml">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts the text <i>html</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(). The text is interpreted as HTML.</p>
    /// <p><b>Note: </b>When using this function with a style sheet, the style sheet will only apply to the current block in the document. In order to apply a style sheet throughout a document, use <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultStyleSheet-prop">QTextDocument::setDefaultStyleSheet</a>() instead.</p><p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn insert_html(
        &mut self,
        html: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertHtml(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(html)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertImage(const QTextImageFormat& format, QTextFrameFormat::Position alignment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertImage-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts the image defined by the given <i>format</i> at the cursor's current position with the specified <i>alignment</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_image_q_text_image_format_position(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextImageFormat>>,
        alignment: crate::q_text_frame_format::Position,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertImage(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextImageFormat>>::cast_into(format)
                .as_raw_ptr(),
            alignment,
        )
    }

    /// <p>Inserts the image defined by <i>format</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertImage(const QTextImageFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts the image defined by <i>format</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_image_q_text_image_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextImageFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertImage1(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextImageFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertImage(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertImage-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Convenience method for inserting the image with the given <i>name</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span> img <span class="operator">=</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   textDocument<span class="operator">-</span><span class="operator">&gt;</span>addResource(<span class="type"><a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a></span><span class="operator">::</span>ImageResource<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qurl.html">QUrl</a></span>(<span class="string">"myimage"</span>)<span class="operator">,</span> img);
    ///   cursor<span class="operator">.</span>insertImage(<span class="string">"myimage"</span>);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_image_q_string(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertImage2(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertImage(const QImage& image, const QString& name = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertImage-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Convenience function for inserting the given <i>image</i> with an optional <i>name</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn insert_image_q_image_q_string(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertImage3(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertImage(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertImage-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Convenience function for inserting the given <i>image</i> with an optional <i>name</i> at the current <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn insert_image_q_image(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertImage4(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }

    /// <p>Inserts a new block at the current position and makes it the first list item of a newly created list with the given <i>format</i>. Returns the created list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextList* QTextCursor::insertList(const QTextListFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a new block at the current position and makes it the first list item of a newly created list with the given <i>format</i>. Returns the created list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#currentList">currentList</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#createList">createList</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertBlock">insertBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_list_q_text_list_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextListFormat>>,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertList(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextListFormat>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextList* QTextCursor::insertList(QTextListFormat::Style style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts a new block at the current position and makes it the first list item of a newly created list with the given <i>style</i>. Returns the created list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#currentList">currentList</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#createList">createList</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertBlock">insertBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_list_style(
        &mut self,
        style: crate::q_text_list_format::Style,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertList1(
            self as *mut crate::QTextCursor,
            style,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Creates a new table with the given number of <i>rows</i> and <i>columns</i> in the specified <i>format</i>, inserts it at the current cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() in the document, and returns the table object. The cursor is moved to the beginning of the first cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTable* QTextCursor::insertTable(int rows, int cols, const QTextTableFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertTable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new table with the given number of <i>rows</i> and <i>columns</i> in the specified <i>format</i>, inserts it at the current cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() in the document, and returns the table object. The cursor is moved to the beginning of the first cell.</p>
    /// <p>There must be at least one row and one column in the table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#currentTable">currentTable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_table_3a(
        &mut self,
        rows: ::std::os::raw::c_int,
        cols: ::std::os::raw::c_int,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextTableFormat>>,
    ) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertTable(
            self as *mut crate::QTextCursor,
            rows,
            cols,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextTableFormat>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTable* QTextCursor::insertTable(int rows, int cols)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertTable-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates a new table with the given number of <i>rows</i> and <i>columns</i>, inserts it at the current cursor <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() in the document, and returns the table object. The cursor is moved to the beginning of the first cell.</p>
    /// <p>There must be at least one row and one column in the table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#currentTable">currentTable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_table_2a(
        &mut self,
        rows: ::std::os::raw::c_int,
        cols: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertTable1(
            self as *mut crate::QTextCursor,
            rows,
            cols,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Inserts <i>text</i> at the current position, using the current character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertText(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>text</i> at the current position, using the current character format.</p>
    /// <p>If there is a selection, the selection is deleted and replaced by <i>text</i>, for example:</p>
    /// <pre class="cpp">
    ///
    ///   cursor<span class="operator">.</span>clearSelection();
    ///   cursor<span class="operator">.</span>movePosition(<span class="type"><a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor">QTextCursor</a></span><span class="operator">::</span>NextWord<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor">QTextCursor</a></span><span class="operator">::</span>KeepAnchor);
    ///   cursor<span class="operator">.</span>insertText(<span class="string">"Hello World"</span>);
    ///
    /// </pre>
    /// <p>This clears any existing selection, selects the word at the cursor (i.e. from <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() forward), and replaces the selection with the phrase "Hello World".</p>
    /// <p>Any ASCII linefeed characters (\n) in the inserted text are transformed into unicode block separators, corresponding to <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertBlock">insertBlock</a>() calls.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#charFormat">charFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_text_1a(
        &mut self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertText(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::insertText(const QString& text, const QTextCharFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertText-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>text</i> at the current position with the given <i>format</i>.</p></div>
    #[inline(always)]
    pub unsafe fn insert_text_2a(
        &mut self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_insertText1(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if this cursor and <i>other</i> are copies of each other, i.e. one of them was created as a copy of the other and neither has moved since. This is much stricter than equality.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::isCopyOf(const QTextCursor& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#isCopyOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this cursor and <i>other</i> are copies of each other, i.e. one of them was created as a copy of the other and neither has moved since. This is much stricter than equality.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#operator-eq">operator=</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#operator-eq-eq">operator==</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_copy_of(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_isCopyOf(
            self as *const crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the cursor is null; otherwise returns <code>false</code>. A null cursor is created by the default constructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the cursor is null; otherwise returns <code>false</code>. A null cursor is created by the default constructor.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_isNull(self as *const crate::QTextCursor)
    }

    /// <p>Like <a href="http://doc.qt.io/qt-5/qtextcursor.html#beginEditBlock">beginEditBlock</a>() indicates the start of a block of editing operations that should appear as a single operation for undo/redo. However unlike <a href="http://doc.qt.io/qt-5/qtextcursor.html#beginEditBlock">beginEditBlock</a>() it does not start a new block but reverses the previous call to <a href="http://doc.qt.io/qt-5/qtextcursor.html#endEditBlock">endEditBlock</a>() and therefore makes following operations part of the previous edit block created.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::joinPreviousEditBlock()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#joinPreviousEditBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Like <a href="http://doc.qt.io/qt-5/qtextcursor.html#beginEditBlock">beginEditBlock</a>() indicates the start of a block of editing operations that should appear as a single operation for undo/redo. However unlike <a href="http://doc.qt.io/qt-5/qtextcursor.html#beginEditBlock">beginEditBlock</a>() it does not start a new block but reverses the previous call to <a href="http://doc.qt.io/qt-5/qtextcursor.html#endEditBlock">endEditBlock</a>() and therefore makes following operations part of the previous edit block created.</p>
    /// <p>For example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor">QTextCursor</a></span> cursor(textDocument);
    ///   cursor<span class="operator">.</span>beginEditBlock();
    ///   cursor<span class="operator">.</span>insertText(<span class="string">"Hello"</span>);
    ///   cursor<span class="operator">.</span>insertText(<span class="string">"World"</span>);
    ///   cursor<span class="operator">.</span>endEditBlock();
    ///
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    ///   cursor<span class="operator">.</span>joinPreviousEditBlock();
    ///   cursor<span class="operator">.</span>insertText(<span class="string">"Hey"</span>);
    ///   cursor<span class="operator">.</span>endEditBlock();
    ///
    ///   textDocument<span class="operator">-</span><span class="operator">&gt;</span>undo();
    ///
    /// </pre>
    /// <p>The call to undo() will cause all three insertions to be undone.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#beginEditBlock">beginEditBlock</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#endEditBlock">endEditBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn join_previous_edit_block(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_joinPreviousEditBlock(
            self as *mut crate::QTextCursor,
        )
    }

    /// <p>Returns whether the cursor should keep its current position when text gets inserted at the position of the cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::keepPositionOnInsert() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#keepPositionOnInsert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the cursor should keep its current position when text gets inserted at the position of the cursor.</p>
    /// <p>The default is false;</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setKeepPositionOnInsert">setKeepPositionOnInsert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn keep_position_on_insert(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_keepPositionOnInsert(
            self as *const crate::QTextCursor,
        )
    }

    /// <p>Modifies the block char format of the current block (or all blocks that are contained in the selection) with the block format specified by <i>modifier</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::mergeBlockCharFormat(const QTextCharFormat& modifier)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#mergeBlockCharFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Modifies the block char format of the current block (or all blocks that are contained in the selection) with the block format specified by <i>modifier</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockCharFormat">setBlockCharFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn merge_block_char_format(
        &mut self,
        modifier: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_mergeBlockCharFormat(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(modifier)
                .as_raw_ptr(),
        )
    }

    /// <p>Modifies the block format of the current block (or all blocks that are contained in the selection) with the block format specified by <i>modifier</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::mergeBlockFormat(const QTextBlockFormat& modifier)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#mergeBlockFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Modifies the block format of the current block (or all blocks that are contained in the selection) with the block format specified by <i>modifier</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockFormat">setBlockFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#blockFormat">blockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn merge_block_format(
        &mut self,
        modifier: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlockFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_mergeBlockFormat(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlockFormat>>::cast_into(modifier)
                .as_raw_ptr(),
        )
    }

    /// <p>Merges the cursor's current character format with the properties described by format <i>modifier</i>. If the cursor has a selection, this function applies all the properties set in <i>modifier</i> to all the character formats that are part of the selection.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::mergeCharFormat(const QTextCharFormat& modifier)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#mergeCharFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Merges the cursor's current character format with the properties described by format <i>modifier</i>. If the cursor has a selection, this function applies all the properties set in <i>modifier</i> to all the character formats that are part of the selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#setCharFormat">setCharFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn merge_char_format(
        &mut self,
        modifier: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_mergeCharFormat(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(modifier)
                .as_raw_ptr(),
        )
    }

    /// <p>Moves the cursor by performing the given <i>operation</i> <i>n</i> times, using the specified <i>mode</i>, and returns <code>true</code> if all operations were completed successfully; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::movePosition(QTextCursor::MoveOperation op, QTextCursor::MoveMode arg2 = …, int n = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the cursor by performing the given <i>operation</i> <i>n</i> times, using the specified <i>mode</i>, and returns <code>true</code> if all operations were completed successfully; otherwise returns <code>false</code>.</p>
    /// <p>For example, if this function is repeatedly used to seek to the end of the next word, it will eventually fail when the end of the document is reached.</p>
    /// <p>By default, the move operation is performed once (<i>n</i> = 1).</p>
    /// <p>If <i>mode</i> is <code>KeepAnchor</code>, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setVisualNavigation">setVisualNavigation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_position_3a(
        &mut self,
        op: crate::q_text_cursor::MoveOperation,
        arg2: crate::q_text_cursor::MoveMode,
        n: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_movePosition(
            self as *mut crate::QTextCursor,
            op,
            arg2,
            n,
        )
    }

    /// <p>Moves the cursor by performing the given <i>operation</i> <i>n</i> times, using the specified <i>mode</i>, and returns <code>true</code> if all operations were completed successfully; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::movePosition(QTextCursor::MoveOperation op, QTextCursor::MoveMode arg2 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the cursor by performing the given <i>operation</i> <i>n</i> times, using the specified <i>mode</i>, and returns <code>true</code> if all operations were completed successfully; otherwise returns <code>false</code>.</p>
    /// <p>For example, if this function is repeatedly used to seek to the end of the next word, it will eventually fail when the end of the document is reached.</p>
    /// <p>By default, the move operation is performed once (<i>n</i> = 1).</p>
    /// <p>If <i>mode</i> is <code>KeepAnchor</code>, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setVisualNavigation">setVisualNavigation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_position_2a(
        &mut self,
        op: crate::q_text_cursor::MoveOperation,
        arg2: crate::q_text_cursor::MoveMode,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_movePosition1(
            self as *mut crate::QTextCursor,
            op,
            arg2,
        )
    }

    /// <p>Moves the cursor by performing the given <i>operation</i> <i>n</i> times, using the specified <i>mode</i>, and returns <code>true</code> if all operations were completed successfully; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::movePosition(QTextCursor::MoveOperation op)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the cursor by performing the given <i>operation</i> <i>n</i> times, using the specified <i>mode</i>, and returns <code>true</code> if all operations were completed successfully; otherwise returns <code>false</code>.</p>
    /// <p>For example, if this function is repeatedly used to seek to the end of the next word, it will eventually fail when the end of the document is reached.</p>
    /// <p>By default, the move operation is performed once (<i>n</i> = 1).</p>
    /// <p>If <i>mode</i> is <code>KeepAnchor</code>, the cursor selects the text it moves over. This is the same effect that the user achieves when they hold down the Shift key and move the cursor with the cursor keys.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setVisualNavigation">setVisualNavigation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_position_1a(&mut self, op: crate::q_text_cursor::MoveOperation) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_movePosition2(self as *mut crate::QTextCursor, op)
    }

    /// <p>Constructs a null cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextCursor::QTextCursor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a null cursor.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_QTextCursor();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a cursor pointing to the beginning of the <i>document</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextCursor::QTextCursor(QTextDocument* document)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a cursor pointing to the beginning of the <i>document</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_text_document(
        document: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextDocument>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_QTextCursor1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextDocument>>::cast_into(document)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a cursor pointing to the beginning of the <i>frame</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextCursor::QTextCursor(QTextFrame* frame)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a cursor pointing to the beginning of the <i>frame</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_text_frame(
        frame: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextFrame>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_QTextCursor4(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextFrame>>::cast_into(frame)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a cursor pointing to the beginning of the <i>block</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextCursor::QTextCursor(const QTextBlock& block)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a cursor pointing to the beginning of the <i>block</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_text_block(
        block: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_QTextCursor5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(block)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new cursor that is a copy of <i>cursor</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextCursor::QTextCursor(const QTextCursor& cursor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#QTextCursor-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new cursor that is a copy of <i>cursor</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_QTextCursor6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the absolute position of the cursor within the document. The cursor is positioned between characters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCursor::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the absolute position of the cursor within the document. The cursor is positioned between characters.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setPosition">setPosition</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#positionInBlock">positionInBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_position(self as *const crate::QTextCursor)
    }

    /// <p>Returns the relative position of the cursor within the block. The cursor is positioned between characters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCursor::positionInBlock() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#positionInBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the relative position of the cursor within the block. The cursor is positioned between characters.</p>
    /// <p>This is equivalent to <code>position() - block().position()</code>.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn position_in_block(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_positionInBlock(self as *const crate::QTextCursor)
    }

    /// <p>If there is a selection, its content is deleted; otherwise does nothing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::removeSelectedText()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#removeSelectedText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If there is a selection, its content is deleted; otherwise does nothing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_selected_text(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_removeSelectedText(self as *mut crate::QTextCursor)
    }

    /// <p>Selects text in the document according to the given <i>selection</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::select(QTextCursor::SelectionType selection)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#select">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Selects text in the document according to the given <i>selection</i>.</p></div>
    #[inline(always)]
    pub unsafe fn select(&mut self, selection: crate::q_text_cursor::SelectionType) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_select(self as *mut crate::QTextCursor, selection)
    }

    /// <p>If the selection spans over table cells, <i>firstRow</i> is populated with the number of the first row in the selection, <i>firstColumn</i> with the number of the first column in the selection, and <i>numRows</i> and <i>numColumns</i> with the number of rows and columns in the selection. If the selection does not span any table cells the results are harmless but undefined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::selectedTableCells(int* firstRow, int* numRows, int* firstColumn, int* numColumns) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectedTableCells">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the selection spans over table cells, <i>firstRow</i> is populated with the number of the first row in the selection, <i>firstColumn</i> with the number of the first column in the selection, and <i>numRows</i> and <i>numColumns</i> with the number of rows and columns in the selection. If the selection does not span any table cells the results are harmless but undefined.</p></div>
    #[inline(always)]
    pub unsafe fn selected_table_cells(
        &self,
        first_row: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        num_rows: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        first_column: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        num_columns: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_selectedTableCells(
            self as *const crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(first_row)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(num_rows)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                first_column,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                num_columns,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the current selection's text (which may be empty). This only returns the text, with no rich text formatting information. If you want a document fragment (i.e. formatted rich text) use <a href="http://doc.qt.io/qt-5/qtextcursor.html#selection">selection</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextCursor::selectedText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectedText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current selection's text (which may be empty). This only returns the text, with no rich text formatting information. If you want a document fragment (i.e. formatted rich text) use <a href="http://doc.qt.io/qt-5/qtextcursor.html#selection">selection</a>() instead.</p>
    /// <p><b>Note: </b>If the selection obtained from an editor spans a line break, the text will contain a Unicode U+2029 paragraph separator character instead of a newline <code>\n</code> character. Use <a href="http://doc.qt.io/qt-5/qstring.html#replace-3">QString::replace</a>() to replace these characters with newlines.</p></div>
    #[inline(always)]
    pub unsafe fn selected_text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextCursor_selectedText(
            self as *const crate::QTextCursor,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current selection (which may be empty) with all its formatting information. If you just want the selected text (i.e. plain text) use <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectedText">selectedText</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextDocumentFragment QTextCursor::selection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#selection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current selection (which may be empty) with all its formatting information. If you just want the selected text (i.e. plain text) use <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectedText">selectedText</a>() instead.</p>
    /// <p><b>Note: </b>Unlike <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toPlainText">QTextDocumentFragment::toPlainText</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectedText">selectedText</a>() may include special unicode characters such as <a href="http://doc.qt.io/qt-5/qchar.html#SpecialCharacter-enum">QChar::ParagraphSeparator</a>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toPlainText">QTextDocumentFragment::toPlainText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn selection(&self) -> ::cpp_core::CppBox<crate::QTextDocumentFragment> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextCursor_selection(self as *const crate::QTextCursor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the end of the selection or <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() if the cursor doesn't have a selection.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCursor::selectionEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the end of the selection or <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() if the cursor doesn't have a selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionStart">selectionStart</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn selection_end(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_selectionEnd(self as *const crate::QTextCursor)
    }

    /// <p>Returns the start of the selection or <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() if the cursor doesn't have a selection.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCursor::selectionStart() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionStart">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the start of the selection or <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>() if the cursor doesn't have a selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#selectionEnd">selectionEnd</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn selection_start(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_selectionStart(self as *const crate::QTextCursor)
    }

    /// <p>Sets the block char format of the current block (or all blocks that are contained in the selection) to <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::setBlockCharFormat(const QTextCharFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockCharFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the block char format of the current block (or all blocks that are contained in the selection) to <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#blockCharFormat">blockCharFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_block_char_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_setBlockCharFormat(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the block format of the current block (or all blocks that are contained in the selection) to <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::setBlockFormat(const QTextBlockFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#setBlockFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the block format of the current block (or all blocks that are contained in the selection) to <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#blockFormat">blockFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#mergeBlockFormat">mergeBlockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_block_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlockFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_setBlockFormat(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlockFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the cursor's current character format to the given <i>format</i>. If the cursor has a selection, the given <i>format</i> is applied to the current selection.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::setCharFormat(const QTextCharFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#setCharFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the cursor's current character format to the given <i>format</i>. If the cursor has a selection, the given <i>format</i> is applied to the current selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#charFormat">charFormat</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#hasSelection">hasSelection</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#mergeCharFormat">mergeCharFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_char_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_setCharFormat(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Defines whether the cursor should keep its current position when text gets inserted at the current position of the cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::setKeepPositionOnInsert(bool b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#setKeepPositionOnInsert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines whether the cursor should keep its current position when text gets inserted at the current position of the cursor.</p>
    /// <p>If <i>b</i> is true, the cursor keeps its current position when text gets inserted at the positing of the cursor. If <i>b</i> is false, the cursor moves along with the inserted text.</p>
    /// <p>The default is false.</p>
    /// <p>Note that a cursor always moves when text is inserted before the current position of the cursor, and it always keeps its position when text is inserted after the current position of the cursor.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#keepPositionOnInsert">keepPositionOnInsert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_keep_position_on_insert(&mut self, b: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_setKeepPositionOnInsert(
            self as *mut crate::QTextCursor,
            b,
        )
    }

    /// <p>Moves the cursor to the absolute position in the document specified by <i>pos</i> using a <code>MoveMode</code> specified by <i>m</i>. The cursor is positioned between characters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::setPosition(int pos, QTextCursor::MoveMode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#setPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the cursor to the absolute position in the document specified by <i>pos</i> using a <code>MoveMode</code> specified by <i>m</i>. The cursor is positioned between characters.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_position_2a(
        &mut self,
        pos: ::std::os::raw::c_int,
        mode: crate::q_text_cursor::MoveMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_setPosition(
            self as *mut crate::QTextCursor,
            pos,
            mode,
        )
    }

    /// <p>Moves the cursor to the absolute position in the document specified by <i>pos</i> using a <code>MoveMode</code> specified by <i>m</i>. The cursor is positioned between characters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::setPosition(int pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#setPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the cursor to the absolute position in the document specified by <i>pos</i> using a <code>MoveMode</code> specified by <i>m</i>. The cursor is positioned between characters.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#position">position</a>(), <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>(), and <a href="http://doc.qt.io/qt-5/qtextcursor.html#anchor">anchor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_position_1a(&mut self, pos: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_setPosition1(self as *mut crate::QTextCursor, pos)
    }

    /// <p>Sets the visual x position for vertical cursor movements to <i>x</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::setVerticalMovementX(int x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#setVerticalMovementX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the visual x position for vertical cursor movements to <i>x</i>.</p>
    /// <p>The vertical movement x position is cleared automatically when the cursor moves horizontally, and kept unchanged when the cursor moves vertically. The mechanism allows the cursor to move up and down on a visually straight line with proportional fonts, and to gently "jump" over short lines.</p>
    /// <p>A value of -1 indicates no predefined x position. It will then be set automatically the next time the cursor moves up or down.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#verticalMovementX">verticalMovementX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_vertical_movement_x(&mut self, x: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_setVerticalMovementX(
            self as *mut crate::QTextCursor,
            x,
        )
    }

    /// <p>Sets visual navigation to <i>b</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::setVisualNavigation(bool b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#setVisualNavigation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets visual navigation to <i>b</i>.</p>
    /// <p>Visual navigation means skipping over hidden text paragraphs. The default is false.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#visualNavigation">visualNavigation</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_visual_navigation(&mut self, b: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_setVisualNavigation(
            self as *mut crate::QTextCursor,
            b,
        )
    }

    /// <p>Swaps this text cursor instance with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextCursor::swap(QTextCursor& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this text cursor instance with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_swap(
            self as *mut crate::QTextCursor,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextCursor>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the visual x position for vertical cursor movements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextCursor::verticalMovementX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#verticalMovementX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the visual x position for vertical cursor movements.</p>
    /// <p>A value of -1 indicates no predefined x position. It will then be set automatically the next time the cursor moves up or down.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setVerticalMovementX">setVerticalMovementX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn vertical_movement_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_verticalMovementX(
            self as *const crate::QTextCursor,
        )
    }

    /// <p>Returns <code>true</code> if the cursor does visual navigation; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::visualNavigation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#visualNavigation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the cursor does visual navigation; otherwise returns <code>false</code>.</p>
    /// <p>Visual navigation means skipping over hidden text paragraphs. The default is false.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#setVisualNavigation">setVisualNavigation</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#movePosition">movePosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn visual_navigation(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_visualNavigation(self as *const crate::QTextCursor)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a> class represents an inline object in a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> and its implementations.</p>
///
/// C++ class: <span style='color: green;'>```QTextInlineObject```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a> class represents an inline object in a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> and its implementations.</p>
/// <p>Normally, you do not need to create a <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a>. It is used by <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> to handle inline objects when implementing a custom layout.</p>
/// <p>The inline object has various attributes that can be set, for example using, <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setAscent">setAscent</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setDescent">setDescent</a>(). The rectangle it occupies is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>(), and its direction by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textDirection">textDirection</a>(). Its position in the text layout is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textPosition">textPosition</a>(), and its format is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#format">format</a>().</p></div>
#[repr(C)]
pub struct QTextInlineObject {
    _unused: u8,
}
impl QTextInlineObject {
    /// <p>Returns the inline object's ascent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextInlineObject::ascent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inline object's ascent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setAscent">setAscent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">descent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#width">width</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ascent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_ascent(
            self as *const crate::QTextInlineObject,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a> class represents an inline object in a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> and its implementations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextInlineObject& QTextInlineObject::operator=(const QTextInlineObject& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a> class represents an inline object in a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> and its implementations.</p>
    /// <p>Normally, you do not need to create a <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a>. It is used by <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> to handle inline objects when implementing a custom layout.</p>
    /// <p>The inline object has various attributes that can be set, for example using, <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setAscent">setAscent</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setDescent">setDescent</a>(). The rectangle it occupies is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>(), and its direction by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textDirection">textDirection</a>(). Its position in the text layout is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textPosition">textPosition</a>(), and its format is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextInlineObject>>,
    ) -> ::cpp_core::MutRef<crate::QTextInlineObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_operator_(
            self as *mut crate::QTextInlineObject,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextInlineObject>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the inline object's descent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextInlineObject::descent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inline object's descent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setDescent">setDescent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#width">width</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn descent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_descent(
            self as *const crate::QTextInlineObject,
        )
    }

    /// <p>Returns format of the inline object within the text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat QTextInlineObject::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns format of the inline object within the text layout.</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_format(
            self as *const crate::QTextInlineObject,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns an integer describing the format of the inline object within the text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextInlineObject::formatIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#formatIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an integer describing the format of the inline object within the text layout.</p></div>
    #[inline(always)]
    pub unsafe fn format_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_formatIndex(
            self as *const crate::QTextInlineObject,
        )
    }

    /// <p>Returns the inline object's total height. This is equal to <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">ascent</a>() + <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">descent</a>() + 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextInlineObject::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inline object's total height. This is equal to <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">ascent</a>() + <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">descent</a>() + 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">descent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#width">width</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_height(
            self as *const crate::QTextInlineObject,
        )
    }

    /// <p>Returns <code>true</code> if this inline object is valid; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextInlineObject::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this inline object is valid; otherwise returns false.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_isValid(
            self as *const crate::QTextInlineObject,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextInlineObject::QTextInlineObject()```</span>.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextInlineObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_QTextInlineObject1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a> class represents an inline object in a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> and its implementations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextInlineObject::QTextInlineObject(const QTextInlineObject& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a> class represents an inline object in a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> and its implementations.</p>
    /// <p>Normally, you do not need to create a <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a>. It is used by <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> to handle inline objects when implementing a custom layout.</p>
    /// <p>The inline object has various attributes that can be set, for example using, <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setAscent">setAscent</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setDescent">setDescent</a>(). The rectangle it occupies is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>(), and its direction by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textDirection">textDirection</a>(). Its position in the text layout is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textPosition">textPosition</a>(), and its format is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextInlineObject>>,
    ) -> ::cpp_core::CppBox<crate::QTextInlineObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_QTextInlineObject2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextInlineObject>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the inline object's rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QTextInlineObject::rect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inline object's rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">descent</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_rect(
            self as *const crate::QTextInlineObject,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the inline object's ascent to <i>a</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextInlineObject::setAscent(double a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setAscent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the inline object's ascent to <i>a</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setDescent">setDescent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#width">width</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_ascent(&mut self, a: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_setAscent(
            self as *mut crate::QTextInlineObject,
            a,
        )
    }

    /// <p>Sets the inline object's descent to <i>d</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextInlineObject::setDescent(double d)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setDescent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the inline object's descent to <i>d</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">descent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setAscent">setAscent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#width">width</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_descent(&mut self, d: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_setDescent(
            self as *mut crate::QTextInlineObject,
            d,
        )
    }

    /// <p>Sets the inline object's width to <i>w</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextInlineObject::setWidth(double w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the inline object's width to <i>w</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextinlineobject.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">descent</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width(&mut self, w: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_setWidth(
            self as *mut crate::QTextInlineObject,
            w,
        )
    }

    /// <p>Returns if the object should be laid out right-to-left or left-to-right.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::LayoutDirection QTextInlineObject::textDirection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns if the object should be laid out right-to-left or left-to-right.</p></div>
    #[inline(always)]
    pub unsafe fn text_direction(&self) -> ::qt_core::LayoutDirection {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_textDirection(
            self as *const crate::QTextInlineObject,
        )
    }

    /// <p>The position of the inline object within the text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextInlineObject::textPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The position of the inline object within the text layout.</p></div>
    #[inline(always)]
    pub unsafe fn text_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_textPosition(
            self as *const crate::QTextInlineObject,
        )
    }

    /// <p>Returns the inline object's width.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextInlineObject::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inline object's width.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#descent">descent</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_width(
            self as *const crate::QTextInlineObject,
        )
    }
}

pub mod q_text_layout {
    //! C++ type: <span style='color: green;'>```QTextLayout```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p>
    ///
    /// C++ class: <span style='color: green;'>```QTextLayout::FormatRange```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p></div>
    #[repr(C)]
    pub struct FormatRange {
        _unused: u8,
    }
    impl FormatRange {
        /// <p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QTextLayout::FormatRange::operator=(const QTextLayout::FormatRange& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
        ) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_FormatRange_operator_(self as *mut crate::q_text_layout::FormatRange, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a reference to the <span style='color: green;'>```format```</span> field.
        #[inline(always)]
        pub unsafe fn format(&self) -> ::cpp_core::Ref<crate::QTextCharFormat> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_FormatRange_format(
                self as *const crate::q_text_layout::FormatRange,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```format```</span> field.
        #[inline(always)]
        pub unsafe fn format_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextCharFormat> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_FormatRange_format_mut(
                self as *mut crate::q_text_layout::FormatRange,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```length```</span> field.
        #[inline(always)]
        pub unsafe fn length(&self) -> ::std::os::raw::c_int {
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_FormatRange_length(
                self as *const crate::q_text_layout::FormatRange,
            )
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLayout::FormatRange::FormatRange()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_FormatRange_FormatRange();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLayout::FormatRange::FormatRange(const QTextLayout::FormatRange& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
        ) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_FormatRange_FormatRange1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(other).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Sets the value of the <span style='color: green;'>```format```</span> field.
        #[inline(always)]
        pub unsafe fn set_format(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QTextLayout_FormatRange_format(
                self as *mut crate::q_text_layout::FormatRange,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Sets the value of the <span style='color: green;'>```length```</span> field.
        #[inline(always)]
        pub unsafe fn set_length(&mut self, value: ::std::os::raw::c_int) {
            crate::__ffi::ctr_qt_gui_ffi_set_QTextLayout_FormatRange_length(
                self as *mut crate::q_text_layout::FormatRange,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```start```</span> field.
        #[inline(always)]
        pub unsafe fn set_start(&mut self, value: ::std::os::raw::c_int) {
            crate::__ffi::ctr_qt_gui_ffi_set_QTextLayout_FormatRange_start(
                self as *mut crate::q_text_layout::FormatRange,
                value,
            )
        }

        /// Returns the value of the <span style='color: green;'>```start```</span> field.
        #[inline(always)]
        pub unsafe fn start(&self) -> ::std::os::raw::c_int {
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_FormatRange_start(
                self as *const crate::q_text_layout::FormatRange,
            )
        }
    }

    /// C++ enum: <span style='color: green;'>```QTextLayout::CursorMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#CursorMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CursorMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CursorMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CursorMode(value)
        }
    }

    impl From<CursorMode> for ::std::os::raw::c_int {
        fn from(value: CursorMode) -> Self {
            value.0
        }
    }

    impl CursorMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CursorMode {
        /// C++ enum variant: <span style='color: green;'>```SkipCharacters = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const SkipCharacters: crate::q_text_layout::CursorMode =
            crate::q_text_layout::CursorMode(0);
        /// C++ enum variant: <span style='color: green;'>```SkipWords = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const SkipWords: crate::q_text_layout::CursorMode = crate::q_text_layout::CursorMode(1);
    }

    impl ::cpp_core::CppDeletable for crate::q_text_layout::FormatRange {
        /// <p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextLayout::FormatRange::~FormatRange()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlayout-formatrange.html">QTextLayout::FormatRange</a> structure is used to apply extra formatting information for a specified area in the text layout's content.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_FormatRange_dFormatRange(
                self as *mut crate::q_text_layout::FormatRange,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> class is used to lay out and render text.</p>
///
/// C++ class: <span style='color: green;'>```QTextLayout```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextlayout.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> class is used to lay out and render text.</p>
/// <p>It offers many features expected from a modern text layout engine, including Unicode compliant rendering, line breaking and handling of cursor positioning. It can also produce and render device independent layout, something that is important for WYSIWYG applications.</p>
/// <p>The class has a rather low level API and unless you intend to implement your own text rendering for some specialized widget, you probably won't need to use it directly.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> can be used with both plain and rich text.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> can be used to create a sequence of <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> instances with given widths and can position them independently on the screen. Once the layout is done, these lines can be drawn on a paint device.</p>
/// <p>The text to be laid out can be provided in the constructor or set with <a href="http://doc.qt.io/qt-5/qtextlayout.html#setText">setText</a>().</p>
/// <p>The layout can be seen as a sequence of <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> objects; use <a href="http://doc.qt.io/qt-5/qtextlayout.html#createLine">createLine</a>() to create a <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> instance, and <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineAt">lineAt</a>() or <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineForTextPosition">lineForTextPosition</a>() to retrieve created lines.</p>
/// <p>Here is a code snippet that demonstrates the layout phase:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> leading <span class="operator">=</span> fontMetrics<span class="operator">.</span>leading();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span> height <span class="operator">=</span> <span class="number">0</span>;
///   textLayout<span class="operator">.</span>setCacheEnabled(<span class="keyword">true</span>);
///   textLayout<span class="operator">.</span>beginLayout();
///   <span class="keyword">while</span> (<span class="number">1</span>) {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a></span> line <span class="operator">=</span> textLayout<span class="operator">.</span>createLine();
/// &#32;     <span class="keyword">if</span> (<span class="operator">!</span>line<span class="operator">.</span>isValid())
/// &#32;   &#32;     <span class="keyword">break</span>;
///
/// &#32;     line<span class="operator">.</span>setLineWidth(lineWidth);
/// &#32;     height <span class="operator">+</span><span class="operator">=</span> leading;
/// &#32;     line<span class="operator">.</span>setPosition(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">0</span><span class="operator">,</span> height));
/// &#32;     height <span class="operator">+</span><span class="operator">=</span> line<span class="operator">.</span>height();
///   }
///   textLayout<span class="operator">.</span>endLayout();
///
/// </pre>
/// <p>The text can then be rendered by calling the layout's <a href="http://doc.qt.io/qt-5/qtextlayout.html#draw">draw</a>() function:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
///   textLayout<span class="operator">.</span>draw(<span class="operator">&amp;</span>painter<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span>(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span>));
///
/// </pre>
/// <p>For a given position in the text you can find a valid cursor position with <a href="http://doc.qt.io/qt-5/qtextlayout.html#isValidCursorPosition">isValidCursorPosition</a>(), <a href="http://doc.qt.io/qt-5/qtextlayout.html#nextCursorPosition">nextCursorPosition</a>(), and <a href="http://doc.qt.io/qt-5/qtextlayout.html#previousCursorPosition">previousCursorPosition</a>().</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> itself can be positioned with <a href="http://doc.qt.io/qt-5/qtextlayout.html#setPosition">setPosition</a>(); it has a <a href="http://doc.qt.io/qt-5/qtextlayout.html#boundingRect">boundingRect</a>(), and a <a href="http://doc.qt.io/qt-5/qtextlayout.html#minimumWidth">minimumWidth</a>() and a <a href="http://doc.qt.io/qt-5/qtextlayout.html#maximumWidth">maximumWidth</a>().</p></div>
#[repr(C)]
pub struct QTextLayout {
    _unused: u8,
}
impl QTextLayout {
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#setAdditionalFormats">setAdditionalFormats</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#clearAdditionalFormats">clearAdditionalFormats</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange> QTextLayout::additionalFormats() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#additionalFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#setAdditionalFormats">setAdditionalFormats</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#clearAdditionalFormats">clearAdditionalFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn additional_formats(&self) -> ::cpp_core::CppBox<crate::QListOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_additionalFormats(
            self as *const crate::QTextLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Begins the layout process.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::beginLayout()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#beginLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Begins the layout process.</p>
    /// <p><b>Warning:</b> This will invalidate the layout, so all existing <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> objects that refer to the previous contents should now be discarded.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#endLayout">endLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_layout(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_beginLayout(self as *mut crate::QTextLayout)
    }

    /// <p>The smallest rectangle that contains all the lines in the layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QTextLayout::boundingRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The smallest rectangle that contains all the lines in the layout.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_boundingRect(
            self as *const crate::QTextLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the complete layout information is cached; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextLayout::cacheEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#cacheEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the complete layout information is cached; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#setCacheEnabled">setCacheEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cache_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_cacheEnabled(self as *const crate::QTextLayout)
    }

    /// <p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::clearAdditionalFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#clearAdditionalFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.</p></div>
    #[inline(always)]
    pub unsafe fn clear_additional_formats(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_clearAdditionalFormats(
            self as *mut crate::QTextLayout,
        )
    }

    /// <p>Clears the list of additional formats supported by the text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::clearFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#clearFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the list of additional formats supported by the text layout.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#formats">formats</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#setFormats">setFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_formats(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_clearFormats(self as *mut crate::QTextLayout)
    }

    /// <p>Clears the line information in the layout. After having called this function, <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineCount">lineCount</a>() returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::clearLayout()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#clearLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the line information in the layout. After having called this function, <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineCount">lineCount</a>() returns 0.</p>
    /// <p><b>Warning:</b> This will invalidate the layout, so all existing <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> objects that refer to the previous contents should now be discarded.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn clear_layout(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_clearLayout(self as *mut crate::QTextLayout)
    }

    /// <p>Returns a new text line to be laid out if there is text to be inserted into the layout; otherwise returns an invalid text line.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLine QTextLayout::createLine()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#createLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new text line to be laid out if there is text to be inserted into the layout; otherwise returns an invalid text line.</p>
    /// <p>The text layout creates a new line object that starts after the last line in the layout, or at the beginning if the layout is empty. The layout maintains an internal cursor, and each line is filled with text from the cursor position onwards when the <a href="http://doc.qt.io/qt-5/qtextline.html#setLineWidth">QTextLine::setLineWidth</a>() function is called.</p>
    /// <p>Once <a href="http://doc.qt.io/qt-5/qtextline.html#setLineWidth">QTextLine::setLineWidth</a>() is called, a new line can be created and filled with text. Repeating this process will lay out the whole block of text contained in the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. If there is no text left to be inserted into the layout, the <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> returned will not be valid (isValid() will return false).</p></div>
    #[inline(always)]
    pub unsafe fn create_line(&mut self) -> ::cpp_core::CppBox<crate::QTextLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_createLine(self as *mut crate::QTextLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The cursor movement style of this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. The default is <a href="http://doc.qt.io/qt-5/qt.html#CursorMoveStyle-enum">Qt::LogicalMoveStyle</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::CursorMoveStyle QTextLayout::cursorMoveStyle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#cursorMoveStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The cursor movement style of this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. The default is <a href="http://doc.qt.io/qt-5/qt.html#CursorMoveStyle-enum">Qt::LogicalMoveStyle</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#setCursorMoveStyle">setCursorMoveStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cursor_move_style(&self) -> ::qt_core::CursorMoveStyle {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_cursorMoveStyle(self as *const crate::QTextLayout)
    }

    /// <p>Draws the whole layout on the painter <i>p</i> at the position specified by <i>pos</i>. The rendered layout includes the given <i>selections</i> and is clipped within the rectangle specified by <i>clip</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::draw(QPainter* p, const QPointF& pos, const QVector<QTextLayout::FormatRange>& selections = …, const QRectF& clip = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#draw">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the whole layout on the painter <i>p</i> at the position specified by <i>pos</i>. The rendered layout includes the given <i>selections</i> and is clipped within the rectangle specified by <i>clip</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_4a(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        selections: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFormatRange>>,
        clip: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_draw(
            self as *const crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(p)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFormatRange>>::cast_into(
                selections,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(clip)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the whole layout on the painter <i>p</i> at the position specified by <i>pos</i>. The rendered layout includes the given <i>selections</i> and is clipped within the rectangle specified by <i>clip</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::draw(QPainter* p, const QPointF& pos, const QVector<QTextLayout::FormatRange>& selections = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#draw">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the whole layout on the painter <i>p</i> at the position specified by <i>pos</i>. The rendered layout includes the given <i>selections</i> and is clipped within the rectangle specified by <i>clip</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_3a(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        selections: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_draw1(
            self as *const crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(p)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFormatRange>>::cast_into(
                selections,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Draws the whole layout on the painter <i>p</i> at the position specified by <i>pos</i>. The rendered layout includes the given <i>selections</i> and is clipped within the rectangle specified by <i>clip</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::draw(QPainter* p, const QPointF& pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#draw">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the whole layout on the painter <i>p</i> at the position specified by <i>pos</i>. The rendered layout includes the given <i>selections</i> and is clipped within the rectangle specified by <i>clip</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_2a(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_draw2(
            self as *const crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(p)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::drawCursor(QPainter* p, const QPointF& pos, int cursorPosition) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#drawCursor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a text cursor with the current pen at the given <i>position</i> using the <i>painter</i> specified. The corresponding position within the text is specified by <i>cursorPosition</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_cursor_3a(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        cursor_position: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_drawCursor(
            self as *const crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(p)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            cursor_position,
        )
    }

    /// <p>Draws a text cursor with the current pen and the specified <i>width</i> at the given <i>position</i> using the <i>painter</i> specified. The corresponding position within the text is specified by <i>cursorPosition</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::drawCursor(QPainter* p, const QPointF& pos, int cursorPosition, int width) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#drawCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a text cursor with the current pen and the specified <i>width</i> at the given <i>position</i> using the <i>painter</i> specified. The corresponding position within the text is specified by <i>cursorPosition</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_cursor_4a(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        cursor_position: ::std::os::raw::c_int,
        width: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_drawCursor1(
            self as *const crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(p)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
            cursor_position,
            width,
        )
    }

    /// <p>Ends the layout process.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::endLayout()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#endLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Ends the layout process.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#beginLayout">beginLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_layout(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_endLayout(self as *mut crate::QTextLayout)
    }

    /// <p>Returns the current font that is used for the layout, or a default font if none is set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont QTextLayout::font() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#font">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current font that is used for the layout, or a default font if none is set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font(&self) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_font(self as *const crate::QTextLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list of additional formats supported by the text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange> QTextLayout::formats() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#formats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of additional formats supported by the text layout.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#setFormats">setFormats</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#clearFormats">clearFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn formats(&self) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_formats(self as *const crate::QTextLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the glyph indexes and positions for all glyphs corresponding to the <i>length</i> characters starting at the position <i>from</i> in this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. This is an expensive function, and should not be called in a time sensitive context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextLayout::glyphRuns(int from = …, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyph indexes and positions for all glyphs corresponding to the <i>length</i> characters starting at the position <i>from</i> in this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. This is an expensive function, and should not be called in a time sensitive context.</p>
    /// <p>If <i>from</i> is less than zero, then the glyph run will begin at the first character in the layout. If <i>length</i> is less than zero, it will span the entire string from the start position.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#draw">draw</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_2a(
        &self,
        from: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_glyphRuns(
            self as *const crate::QTextLayout,
            from,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the glyph indexes and positions for all glyphs corresponding to the <i>length</i> characters starting at the position <i>from</i> in this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. This is an expensive function, and should not be called in a time sensitive context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextLayout::glyphRuns(int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyph indexes and positions for all glyphs corresponding to the <i>length</i> characters starting at the position <i>from</i> in this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. This is an expensive function, and should not be called in a time sensitive context.</p>
    /// <p>If <i>from</i> is less than zero, then the glyph run will begin at the first character in the layout. If <i>length</i> is less than zero, it will span the entire string from the start position.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#draw">draw</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_1a(
        &self,
        from: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_glyphRuns1(
            self as *const crate::QTextLayout,
            from,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the glyph indexes and positions for all glyphs corresponding to the <i>length</i> characters starting at the position <i>from</i> in this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. This is an expensive function, and should not be called in a time sensitive context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextLayout::glyphRuns() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyph indexes and positions for all glyphs corresponding to the <i>length</i> characters starting at the position <i>from</i> in this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. This is an expensive function, and should not be called in a time sensitive context.</p>
    /// <p>If <i>from</i> is less than zero, then the glyph run will begin at the first character in the layout. If <i>length</i> is less than zero, it will span the entire string from the start position.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#draw">draw</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_0a(&self) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_glyphRuns2(self as *const crate::QTextLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>/ Returns <code>true</code> if position <i>pos</i> is a valid cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextLayout::isValidCursorPosition(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#isValidCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>/ Returns <code>true</code> if position <i>pos</i> is a valid cursor position.</p>
    /// <p>In a Unicode context some positions in the text are not valid cursor positions, because the position is inside a Unicode surrogate or a grapheme cluster.</p>
    /// <p>A grapheme cluster is a sequence of two or more Unicode characters that form one indivisible entity on the screen. For example the latin character `Ä' can be represented in Unicode by two characters, `A' (0x41), and the combining diaresis (0x308). A text cursor can only validly be positioned before or after these two characters, never between them since that wouldn't make sense. In indic languages every syllable forms a grapheme cluster.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid_cursor_position(&self, pos: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_isValidCursorPosition(
            self as *const crate::QTextLayout,
            pos,
        )
    }

    /// <p>Returns the cursor position to the left of <i>oldPos</i>, next to it. It's dependent on the visual position of characters, after bi-directional reordering.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLayout::leftCursorPosition(int oldPos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#leftCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor position to the left of <i>oldPos</i>, next to it. It's dependent on the visual position of characters, after bi-directional reordering.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#rightCursorPosition">rightCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#previousCursorPosition">previousCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn left_cursor_position(
        &self,
        old_pos: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_leftCursorPosition(
            self as *const crate::QTextLayout,
            old_pos,
        )
    }

    /// <p>Returns the <i>i</i>-th line of text in this text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLine QTextLayout::lineAt(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <i>i</i>-th line of text in this text layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#lineCount">lineCount</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineForTextPosition">lineForTextPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QTextLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_lineAt(self as *const crate::QTextLayout, i);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of lines in this text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLayout::lineCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of lines in this text layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#lineAt">lineAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_lineCount(self as *const crate::QTextLayout)
    }

    /// <p>Returns the line that contains the cursor position specified by <i>pos</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLine QTextLayout::lineForTextPosition(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineForTextPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line that contains the cursor position specified by <i>pos</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#isValidCursorPosition">isValidCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#lineAt">lineAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_for_text_position(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_lineForTextPosition(
            self as *const crate::QTextLayout,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The maximum width the layout could expand to; this is essentially the width of the entire text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLayout::maximumWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#maximumWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The maximum width the layout could expand to; this is essentially the width of the entire text.</p>
    /// <p><b>Warning:</b> This function only returns a valid value after the layout has been done.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#minimumWidth">minimumWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_maximumWidth(self as *const crate::QTextLayout)
    }

    /// <p>The minimum width the layout needs. This is the width of the layout's smallest non-breakable substring.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLayout::minimumWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#minimumWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The minimum width the layout needs. This is the width of the layout's smallest non-breakable substring.</p>
    /// <p><b>Warning:</b> This function only returns a valid value after the layout has been done.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#maximumWidth">maximumWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn minimum_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_minimumWidth(self as *const crate::QTextLayout)
    }

    /// <p>Constructs an empty text layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLayout::QTextLayout()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#QTextLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty text layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#setText">setText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_QTextLayout();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a text layout to lay out the given <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLayout::QTextLayout(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#QTextLayout-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a text layout to lay out the given <i>text</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QTextLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_QTextLayout1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a text layout to lay out the given <i>text</i> with the specified <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLayout::QTextLayout(const QString& text, const QFont& font, QPaintDevice* paintdevice = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#QTextLayout-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a text layout to lay out the given <i>text</i> with the specified <i>font</i>.</p>
    /// <p>All the metric and layout calculations will be done in terms of the paint device, <i>paintdevice</i>. If <i>paintdevice</i> is 0 the calculations will be done in screen metrics.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_font_q_paint_device(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        paintdevice: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) -> ::cpp_core::CppBox<crate::QTextLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_QTextLayout2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(paintdevice)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLayout::QTextLayout(const QTextBlock& b)```</span>.
    #[inline(always)]
    pub unsafe fn from_q_text_block(
        b: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::cpp_core::CppBox<crate::QTextLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_QTextLayout3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(b).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a text layout to lay out the given <i>text</i> with the specified <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLayout::QTextLayout(const QString& text, const QFont& font)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#QTextLayout-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a text layout to lay out the given <i>text</i> with the specified <i>font</i>.</p>
    /// <p>All the metric and layout calculations will be done in terms of the paint device, <i>paintdevice</i>. If <i>paintdevice</i> is 0 the calculations will be done in screen metrics.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_font(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::CppBox<crate::QTextLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_QTextLayout4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the next valid cursor position after <i>oldPos</i> that respects the given cursor <i>mode</i>. Returns value of <i>oldPos</i>, if <i>oldPos</i> is not a valid cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLayout::nextCursorPosition(int oldPos, QTextLayout::CursorMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#nextCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the next valid cursor position after <i>oldPos</i> that respects the given cursor <i>mode</i>. Returns value of <i>oldPos</i>, if <i>oldPos</i> is not a valid cursor position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#isValidCursorPosition">isValidCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#previousCursorPosition">previousCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn next_cursor_position_2a(
        &self,
        old_pos: ::std::os::raw::c_int,
        mode: crate::q_text_layout::CursorMode,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_nextCursorPosition(
            self as *const crate::QTextLayout,
            old_pos,
            mode,
        )
    }

    /// <p>Returns the next valid cursor position after <i>oldPos</i> that respects the given cursor <i>mode</i>. Returns value of <i>oldPos</i>, if <i>oldPos</i> is not a valid cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLayout::nextCursorPosition(int oldPos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#nextCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the next valid cursor position after <i>oldPos</i> that respects the given cursor <i>mode</i>. Returns value of <i>oldPos</i>, if <i>oldPos</i> is not a valid cursor position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#isValidCursorPosition">isValidCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#previousCursorPosition">previousCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn next_cursor_position_1a(
        &self,
        old_pos: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_nextCursorPosition1(
            self as *const crate::QTextLayout,
            old_pos,
        )
    }

    /// <p>The global position of the layout. This is independent of the bounding rectangle and of the layout process.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QTextLayout::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#position">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The global position of the layout. This is independent of the bounding rectangle and of the layout process.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#setPosition">setPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_position(self as *const crate::QTextLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the area in the text layout that will be processed before editing occurs.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLayout::preeditAreaPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#preeditAreaPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the area in the text layout that will be processed before editing occurs.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#preeditAreaText">preeditAreaText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn preedit_area_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_preeditAreaPosition(
            self as *const crate::QTextLayout,
        )
    }

    /// <p>Returns the text that is inserted in the layout before editing occurs.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextLayout::preeditAreaText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#preeditAreaText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text that is inserted in the layout before editing occurs.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#preeditAreaPosition">preeditAreaPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn preedit_area_text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLayout_preeditAreaText(
            self as *const crate::QTextLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the first valid cursor position before <i>oldPos</i> that respects the given cursor <i>mode</i>. Returns value of <i>oldPos</i>, if <i>oldPos</i> is not a valid cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLayout::previousCursorPosition(int oldPos, QTextLayout::CursorMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#previousCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first valid cursor position before <i>oldPos</i> that respects the given cursor <i>mode</i>. Returns value of <i>oldPos</i>, if <i>oldPos</i> is not a valid cursor position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#isValidCursorPosition">isValidCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#nextCursorPosition">nextCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn previous_cursor_position_2a(
        &self,
        old_pos: ::std::os::raw::c_int,
        mode: crate::q_text_layout::CursorMode,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_previousCursorPosition(
            self as *const crate::QTextLayout,
            old_pos,
            mode,
        )
    }

    /// <p>Returns the first valid cursor position before <i>oldPos</i> that respects the given cursor <i>mode</i>. Returns value of <i>oldPos</i>, if <i>oldPos</i> is not a valid cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLayout::previousCursorPosition(int oldPos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#previousCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first valid cursor position before <i>oldPos</i> that respects the given cursor <i>mode</i>. Returns value of <i>oldPos</i>, if <i>oldPos</i> is not a valid cursor position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#isValidCursorPosition">isValidCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#nextCursorPosition">nextCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn previous_cursor_position_1a(
        &self,
        old_pos: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_previousCursorPosition1(
            self as *const crate::QTextLayout,
            old_pos,
        )
    }

    /// <p>Returns the cursor position to the right of <i>oldPos</i>, next to it. It's dependent on the visual position of characters, after bi-directional reordering.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLayout::rightCursorPosition(int oldPos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#rightCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor position to the right of <i>oldPos</i>, next to it. It's dependent on the visual position of characters, after bi-directional reordering.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#leftCursorPosition">leftCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#nextCursorPosition">nextCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn right_cursor_position(
        &self,
        old_pos: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_rightCursorPosition(
            self as *const crate::QTextLayout,
            old_pos,
        )
    }

    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#additionalFormats">additionalFormats</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setAdditionalFormats(const QList<QTextLayout::FormatRange>& overrides)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#setAdditionalFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout-obsolete.html#additionalFormats">additionalFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_additional_formats(
        &mut self,
        overrides: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfFormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setAdditionalFormats(
            self as *mut crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfFormatRange>>::cast_into(
                overrides,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Enables caching of the complete layout information if <i>enable</i> is true; otherwise disables layout caching. Usually <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> throws most of the layouting information away after a call to <a href="http://doc.qt.io/qt-5/qtextlayout.html#endLayout">endLayout</a>() to reduce memory consumption. If you however want to draw the laid out text directly afterwards enabling caching might speed up drawing significantly.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setCacheEnabled(bool enable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#setCacheEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables caching of the complete layout information if <i>enable</i> is true; otherwise disables layout caching. Usually <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> throws most of the layouting information away after a call to <a href="http://doc.qt.io/qt-5/qtextlayout.html#endLayout">endLayout</a>() to reduce memory consumption. If you however want to draw the laid out text directly afterwards enabling caching might speed up drawing significantly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#cacheEnabled">cacheEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cache_enabled(&mut self, enable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setCacheEnabled(
            self as *mut crate::QTextLayout,
            enable,
        )
    }

    /// <p>Sets the visual cursor movement style to the given <i>style</i>. If the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> is backed by a document, you can ignore this and use the option in <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, this option is for widgets like <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a> or custom widgets without a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>. Default value is <a href="http://doc.qt.io/qt-5/qt.html#CursorMoveStyle-enum">Qt::LogicalMoveStyle</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setCursorMoveStyle(Qt::CursorMoveStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#setCursorMoveStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the visual cursor movement style to the given <i>style</i>. If the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> is backed by a document, you can ignore this and use the option in <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, this option is for widgets like <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a> or custom widgets without a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>. Default value is <a href="http://doc.qt.io/qt-5/qt.html#CursorMoveStyle-enum">Qt::LogicalMoveStyle</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#cursorMoveStyle">cursorMoveStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cursor_move_style(&mut self, style: ::qt_core::CursorMoveStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setCursorMoveStyle(
            self as *mut crate::QTextLayout,
            style,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setFlags(int flags)```</span>.
    #[inline(always)]
    pub unsafe fn set_flags(&mut self, flags: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setFlags(self as *mut crate::QTextLayout, flags)
    }

    /// <p>Sets the layout's font to the given <i>font</i>. The layout is invalidated and must be laid out again.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setFont(const QFont& f)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#setFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the layout's font to the given <i>font</i>. The layout is invalidated and must be laid out again.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font(&mut self, f: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setFont(
            self as *mut crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(f).as_raw_ptr(),
        )
    }

    /// <p>Sets the additional formats supported by the text layout to <i>formats</i>. The formats are applied with preedit area text in place.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setFormats(const QVector<QTextLayout::FormatRange>& overrides)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#setFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the additional formats supported by the text layout to <i>formats</i>. The formats are applied with preedit area text in place.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#formats">formats</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#clearFormats">clearFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_formats(
        &mut self,
        overrides: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setFormats(
            self as *mut crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFormatRange>>::cast_into(
                overrides,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Moves the text layout to point <i>p</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setPosition(const QPointF& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#setPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the text layout to point <i>p</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_position(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setPosition(
            self as *mut crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>Sets the <i>position</i> and <i>text</i> of the area in the layout that is processed before editing occurs. The layout is invalidated and must be laid out again.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setPreeditArea(int position, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#setPreeditArea">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>position</i> and <i>text</i> of the area in the layout that is processed before editing occurs. The layout is invalidated and must be laid out again.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#preeditAreaPosition">preeditAreaPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextlayout.html#preeditAreaText">preeditAreaText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_preedit_area(
        &mut self,
        position: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setPreeditArea(
            self as *mut crate::QTextLayout,
            position,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setRawFont(const QRawFont& rawFont)```</span>.
    #[inline(always)]
    pub unsafe fn set_raw_font(
        &mut self,
        raw_font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRawFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setRawFont(
            self as *mut crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRawFont>>::cast_into(raw_font)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the layout's text to the given <i>string</i>. The layout is invalidated and must be laid out again.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setText(const QString& string)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#setText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the layout's text to the given <i>string</i>. The layout is invalidated and must be laid out again.</p>
    /// <p>Notice that when using this <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> as part of a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> this method will have no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#text">text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text(
        &mut self,
        string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setText(
            self as *mut crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(string)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the text option structure that controls the layout process to the given <i>option</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLayout::setTextOption(const QTextOption& option)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#setTextOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text option structure that controls the layout process to the given <i>option</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#textOption">textOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_option(
        &mut self,
        option: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextOption>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_setTextOption(
            self as *mut crate::QTextLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextOption>>::cast_into(option)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the layout's text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextLayout::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the layout's text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#setText">setText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_text(self as *const crate::QTextLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current text option used to control the layout process.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption& QTextLayout::textOption() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#textOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current text option used to control the layout process.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#setTextOption">setTextOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_option(&self) -> ::cpp_core::Ref<crate::QTextOption> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLayout_textOption(self as *const crate::QTextLayout);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

pub mod q_text_line {
    //! C++ type: <span style='color: green;'>```QTextLine```</span>

    /// C++ enum: <span style='color: green;'>```QTextLine::Edge```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#Edge-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Edge(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Edge {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Edge(value)
        }
    }

    impl From<Edge> for ::std::os::raw::c_int {
        fn from(value: Edge) -> Self {
            value.0
        }
    }

    impl Edge {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Edge {
        /// C++ enum variant: <span style='color: green;'>```Leading = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Leading: crate::q_text_line::Edge = crate::q_text_line::Edge(0);
        /// C++ enum variant: <span style='color: green;'>```Trailing = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Trailing: crate::q_text_line::Edge = crate::q_text_line::Edge(1);
    }

    /// C++ enum: <span style='color: green;'>```QTextLine::CursorPosition```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#CursorPosition-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CursorPosition(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CursorPosition {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CursorPosition(value)
        }
    }

    impl From<CursorPosition> for ::std::os::raw::c_int {
        fn from(value: CursorPosition) -> Self {
            value.0
        }
    }

    impl CursorPosition {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CursorPosition {
        /// C++ enum variant: <span style='color: green;'>```CursorBetweenCharacters = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const CursorBetweenCharacters: crate::q_text_line::CursorPosition =
            crate::q_text_line::CursorPosition(0);
        /// C++ enum variant: <span style='color: green;'>```CursorOnCharacter = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const CursorOnCharacter: crate::q_text_line::CursorPosition =
            crate::q_text_line::CursorPosition(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> class represents a line of text inside a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextLine```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextline.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> class represents a line of text inside a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
/// <p>A text line is usually created by <a href="http://doc.qt.io/qt-5/qtextlayout.html#createLine">QTextLayout::createLine</a>().</p>
/// <p>After being created, the line can be filled using the <a href="http://doc.qt.io/qt-5/qtextline.html#setLineWidth">setLineWidth</a>() or <a href="http://doc.qt.io/qt-5/qtextline.html#setNumColumns">setNumColumns</a>() functions. A line has a number of attributes including the rectangle it occupies, <a href="http://doc.qt.io/qt-5/qtextline.html#rect">rect</a>(), its coordinates, <a href="http://doc.qt.io/qt-5/qtextline.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#y">y</a>(), its <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextWidth">naturalTextWidth</a>(), and its <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() relative to the text. The position of the cursor in terms of the line is available from <a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX">cursorToX</a>() and its inverse from <a href="http://doc.qt.io/qt-5/qtextline.html#xToCursor">xToCursor</a>(). A line can be moved with <a href="http://doc.qt.io/qt-5/qtextline.html#setPosition">setPosition</a>().</p></div>
#[repr(C)]
pub struct QTextLine {
    _unused: u8,
}
impl QTextLine {
    /// <p>Returns the line's ascent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::ascent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's ascent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#height">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ascent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_ascent(self as *const crate::QTextLine)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> class represents a line of text inside a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLine& QTextLine::operator=(const QTextLine& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> class represents a line of text inside a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
    /// <p>A text line is usually created by <a href="http://doc.qt.io/qt-5/qtextlayout.html#createLine">QTextLayout::createLine</a>().</p>
    /// <p>After being created, the line can be filled using the <a href="http://doc.qt.io/qt-5/qtextline.html#setLineWidth">setLineWidth</a>() or <a href="http://doc.qt.io/qt-5/qtextline.html#setNumColumns">setNumColumns</a>() functions. A line has a number of attributes including the rectangle it occupies, <a href="http://doc.qt.io/qt-5/qtextline.html#rect">rect</a>(), its coordinates, <a href="http://doc.qt.io/qt-5/qtextline.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#y">y</a>(), its <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextWidth">naturalTextWidth</a>(), and its <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() relative to the text. The position of the cursor in terms of the line is available from <a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX">cursorToX</a>() and its inverse from <a href="http://doc.qt.io/qt-5/qtextline.html#xToCursor">xToCursor</a>(). A line can be moved with <a href="http://doc.qt.io/qt-5/qtextline.html#setPosition">setPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLine>>,
    ) -> ::cpp_core::MutRef<crate::QTextLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLine_operator_(
            self as *mut crate::QTextLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLine>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Converts the cursor position <i>cursorPos</i> to the corresponding x position inside the line, taking account of the <i>edge</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::cursorToX(int* cursorPos, QTextLine::Edge edge = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the cursor position <i>cursorPos</i> to the corresponding x position inside the line, taking account of the <i>edge</i>.</p>
    /// <p>If <i>cursorPos</i> is not a valid cursor position, the nearest valid cursor position will be used instead, and <i>cursorPos</i> will be modified to point to this valid cursor position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#xToCursor">xToCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cursor_to_x_int_edge(
        &self,
        cursor_pos: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        edge: crate::q_text_line::Edge,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_cursorToX(
            self as *const crate::QTextLine,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                cursor_pos,
            )
            .as_mut_raw_ptr(),
            edge,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::cursorToX(int cursorPos, QTextLine::Edge edge = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn cursor_to_x_int_edge2(
        &self,
        cursor_pos: ::std::os::raw::c_int,
        edge: crate::q_text_line::Edge,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_cursorToX1(
            self as *const crate::QTextLine,
            cursor_pos,
            edge,
        )
    }

    /// <p>Converts the cursor position <i>cursorPos</i> to the corresponding x position inside the line, taking account of the <i>edge</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::cursorToX(int* cursorPos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the cursor position <i>cursorPos</i> to the corresponding x position inside the line, taking account of the <i>edge</i>.</p>
    /// <p>If <i>cursorPos</i> is not a valid cursor position, the nearest valid cursor position will be used instead, and <i>cursorPos</i> will be modified to point to this valid cursor position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#xToCursor">xToCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cursor_to_x_int(
        &self,
        cursor_pos: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_cursorToX2(
            self as *const crate::QTextLine,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                cursor_pos,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::cursorToX(int cursorPos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn cursor_to_x_int2(
        &self,
        cursor_pos: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_cursorToX3(
            self as *const crate::QTextLine,
            cursor_pos,
        )
    }

    /// <p>Returns the line's descent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::descent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#descent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's descent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#height">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn descent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_descent(self as *const crate::QTextLine)
    }

    /// <p>Draws a line on the given <i>painter</i> at the specified <i>position</i>. The <i>selection</i> is reserved for internal use.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLine::draw(QPainter* p, const QPointF& point, const QTextLayout::FormatRange* selection = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#draw">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a line on the given <i>painter</i> at the specified <i>position</i>. The <i>selection</i> is reserved for internal use.</p></div>
    #[inline(always)]
    pub unsafe fn draw_3a(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        selection: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_draw(
            self as *const crate::QTextLine,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(p)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::q_text_layout::FormatRange>>::cast_into(
                selection,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Draws a line on the given <i>painter</i> at the specified <i>position</i>. The <i>selection</i> is reserved for internal use.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLine::draw(QPainter* p, const QPointF& point) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#draw">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a line on the given <i>painter</i> at the specified <i>position</i>. The <i>selection</i> is reserved for internal use.</p></div>
    #[inline(always)]
    pub unsafe fn draw_2a(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_draw1(
            self as *const crate::QTextLine,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(p)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the glyph indexes and positions for all glyphs in this <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> for characters in the range defined by <i>from</i> and <i>length</i>. The <i>from</i> index is relative to the beginning of the text in the containing <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>, and the range must be within the range of <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> as given by functions <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextLine::glyphRuns(int from = …, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyph indexes and positions for all glyphs in this <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> for characters in the range defined by <i>from</i> and <i>length</i>. The <i>from</i> index is relative to the beginning of the text in the containing <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>, and the range must be within the range of <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> as given by functions <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    /// <p>If <i>from</i> is negative, it will default to <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>(), and if <i>length</i> is negative it will default to the return value of <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">QTextLayout::glyphRuns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_2a(
        &self,
        from: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLine_glyphRuns(
            self as *const crate::QTextLine,
            from,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the glyph indexes and positions for all glyphs in this <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> for characters in the range defined by <i>from</i> and <i>length</i>. The <i>from</i> index is relative to the beginning of the text in the containing <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>, and the range must be within the range of <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> as given by functions <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextLine::glyphRuns(int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyph indexes and positions for all glyphs in this <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> for characters in the range defined by <i>from</i> and <i>length</i>. The <i>from</i> index is relative to the beginning of the text in the containing <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>, and the range must be within the range of <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> as given by functions <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    /// <p>If <i>from</i> is negative, it will default to <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>(), and if <i>length</i> is negative it will default to the return value of <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">QTextLayout::glyphRuns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_1a(
        &self,
        from: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLine_glyphRuns1(
            self as *const crate::QTextLine,
            from,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the glyph indexes and positions for all glyphs in this <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> for characters in the range defined by <i>from</i> and <i>length</i>. The <i>from</i> index is relative to the beginning of the text in the containing <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>, and the range must be within the range of <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> as given by functions <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextLine::glyphRuns() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyph indexes and positions for all glyphs in this <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> for characters in the range defined by <i>from</i> and <i>length</i>. The <i>from</i> index is relative to the beginning of the text in the containing <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>, and the range must be within the range of <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> as given by functions <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    /// <p>If <i>from</i> is negative, it will default to <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">textStart</a>(), and if <i>length</i> is negative it will default to the return value of <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>().</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlayout.html#glyphRuns">QTextLayout::glyphRuns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_0a(&self) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLine_glyphRuns2(self as *const crate::QTextLine);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the line's height. This is equal to <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() + <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() if leading is not included. If leading is included, this equals to <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() + <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() + <a href="http://doc.qt.io/qt-5/qtextline.html#leading">leading</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's height. This is equal to <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() + <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() if leading is not included. If leading is included, this equals to <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() + <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() + <a href="http://doc.qt.io/qt-5/qtextline.html#leading">leading</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#leading">leading</a>(), and <a href="http://doc.qt.io/qt-5/qtextline.html#setLeadingIncluded">setLeadingIncluded</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_height(self as *const crate::QTextLine)
    }

    /// <p>Returns the horizontal advance of the text. The advance of the text is the distance from its position to the next position at which text would naturally be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::horizontalAdvance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#horizontalAdvance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal advance of the text. The advance of the text is the distance from its position to the next position at which text would naturally be drawn.</p>
    /// <p>By adding the advance to the position of the text line and using this as the position of a second text line, you will be able to position the two lines side-by-side without gaps in-between.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn horizontal_advance(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_horizontalAdvance(self as *const crate::QTextLine)
    }

    /// <p>Returns <code>true</code> if this text line is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextLine::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text line is valid; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_isValid(self as *const crate::QTextLine)
    }

    /// <p>Returns the line's leading.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::leading() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#leading">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's leading.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>(), and <a href="http://doc.qt.io/qt-5/qtextline.html#height">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn leading(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_leading(self as *const crate::QTextLine)
    }

    /// <p>Returns <code>true</code> if positive leading is included into the line's height; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextLine::leadingIncluded() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#leadingIncluded">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if positive leading is included into the line's height; otherwise returns <code>false</code>.</p>
    /// <p>By default, leading is not included.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#setLeadingIncluded">setLeadingIncluded</a>().</p></div>
    #[inline(always)]
    pub unsafe fn leading_included(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_leadingIncluded(self as *const crate::QTextLine)
    }

    /// <p>Returns the position of the line in the text engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLine::lineNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#lineNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the line in the text engine.</p></div>
    #[inline(always)]
    pub unsafe fn line_number(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_lineNumber(self as *const crate::QTextLine)
    }

    /// <p>Returns the rectangle covered by the line.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QTextLine::naturalTextRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rectangle covered by the line.</p></div>
    #[inline(always)]
    pub unsafe fn natural_text_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLine_naturalTextRect(self as *const crate::QTextLine);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the width of the line that is occupied by text. This is always &lt;= to <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>(), and is the minimum width that could be used by layout() without changing the line break position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::naturalTextWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the line that is occupied by text. This is always &lt;= to <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>(), and is the minimum width that could be used by layout() without changing the line break position.</p></div>
    #[inline(always)]
    pub unsafe fn natural_text_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_naturalTextWidth(self as *const crate::QTextLine)
    }

    /// <p>Creates an invalid line.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLine::QTextLine()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#QTextLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates an invalid line.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLine_QTextLine();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> class represents a line of text inside a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextLine::QTextLine(const QTextLine& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> class represents a line of text inside a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
    /// <p>A text line is usually created by <a href="http://doc.qt.io/qt-5/qtextlayout.html#createLine">QTextLayout::createLine</a>().</p>
    /// <p>After being created, the line can be filled using the <a href="http://doc.qt.io/qt-5/qtextline.html#setLineWidth">setLineWidth</a>() or <a href="http://doc.qt.io/qt-5/qtextline.html#setNumColumns">setNumColumns</a>() functions. A line has a number of attributes including the rectangle it occupies, <a href="http://doc.qt.io/qt-5/qtextline.html#rect">rect</a>(), its coordinates, <a href="http://doc.qt.io/qt-5/qtextline.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#y">y</a>(), its <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextWidth">naturalTextWidth</a>(), and its <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() relative to the text. The position of the cursor in terms of the line is available from <a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX">cursorToX</a>() and its inverse from <a href="http://doc.qt.io/qt-5/qtextline.html#xToCursor">xToCursor</a>(). A line can be moved with <a href="http://doc.qt.io/qt-5/qtextline.html#setPosition">setPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLine>>,
    ) -> ::cpp_core::CppBox<crate::QTextLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextLine_QTextLine1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLine>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the line's position relative to the text layout's position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QTextLine::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#position">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's position relative to the text layout's position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#setPosition">setPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLine_position(self as *const crate::QTextLine);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the line's bounding rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QTextLine::rect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's bounding rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>(), and <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextLine_rect(self as *const crate::QTextLine);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Includes positive leading into the line's height if <i>included</i> is true; otherwise does not include leading.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLine::setLeadingIncluded(bool included)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#setLeadingIncluded">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Includes positive leading into the line's height if <i>included</i> is true; otherwise does not include leading.</p>
    /// <p>By default, leading is not included.</p>
    /// <p>Note that negative leading is ignored, it must be handled in the code using the text lines by letting the lines overlap.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#leadingIncluded">leadingIncluded</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_leading_included(&mut self, included: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_setLeadingIncluded(
            self as *mut crate::QTextLine,
            included,
        )
    }

    /// <p>Lays out the line with the given <i>width</i>. The line is filled from its starting position with as many characters as will fit into the line. In case the text cannot be split at the end of the line, it will be filled with additional characters to the next whitespace or end of the text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLine::setLineWidth(double width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#setLineWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Lays out the line with the given <i>width</i>. The line is filled from its starting position with as many characters as will fit into the line. In case the text cannot be split at the end of the line, it will be filled with additional characters to the next whitespace or end of the text.</p></div>
    #[inline(always)]
    pub unsafe fn set_line_width(&mut self, width: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_setLineWidth(self as *mut crate::QTextLine, width)
    }

    /// <p>Lays out the line. The line is filled from its starting position with as many characters as are specified by <i>numColumns</i>. In case the text cannot be split until <i>numColumns</i> characters, the line will be filled with as many characters to the next whitespace or end of the text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLine::setNumColumns(int columns)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#setNumColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Lays out the line. The line is filled from its starting position with as many characters as are specified by <i>numColumns</i>. In case the text cannot be split until <i>numColumns</i> characters, the line will be filled with as many characters to the next whitespace or end of the text.</p></div>
    #[inline(always)]
    pub unsafe fn set_num_columns_1a(&mut self, columns: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_setNumColumns(self as *mut crate::QTextLine, columns)
    }

    /// <p>Lays out the line. The line is filled from its starting position with as many characters as are specified by <i>numColumns</i>. In case the text cannot be split until <i>numColumns</i> characters, the line will be filled with as many characters to the next whitespace or end of the text. The provided <i>alignmentWidth</i> is used as reference width for alignment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLine::setNumColumns(int columns, double alignmentWidth)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#setNumColumns-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Lays out the line. The line is filled from its starting position with as many characters as are specified by <i>numColumns</i>. In case the text cannot be split until <i>numColumns</i> characters, the line will be filled with as many characters to the next whitespace or end of the text. The provided <i>alignmentWidth</i> is used as reference width for alignment.</p></div>
    #[inline(always)]
    pub unsafe fn set_num_columns_2a(
        &mut self,
        columns: ::std::os::raw::c_int,
        alignment_width: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_setNumColumns1(
            self as *mut crate::QTextLine,
            columns,
            alignment_width,
        )
    }

    /// <p>Moves the line to position <i>pos</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextLine::setPosition(const QPointF& pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#setPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the line to position <i>pos</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_position(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_setPosition(
            self as *mut crate::QTextLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the length of the text in the line.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLine::textLength() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the length of the text in the line.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextWidth">naturalTextWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_textLength(self as *const crate::QTextLine)
    }

    /// <p>Returns the start of the line from the beginning of the string passed to the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLine::textStart() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#textStart">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the start of the line from the beginning of the string passed to the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p></div>
    #[inline(always)]
    pub unsafe fn text_start(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_textStart(self as *const crate::QTextLine)
    }

    /// <p>Returns the line's width as specified by the layout() function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's width as specified by the layout() function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextWidth">naturalTextWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>(), and <a href="http://doc.qt.io/qt-5/qtextline.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_width(self as *const crate::QTextLine)
    }

    /// <p>Returns the line's x position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's x position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#rect">rect</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>(), and <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_x(self as *const crate::QTextLine)
    }

    /// <p>Converts the x-coordinate <i>x</i>, to the nearest matching cursor position, depending on the cursor position type, <i>cpos</i>. Note that result cursor position includes possible preedit area text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLine::xToCursor(double x, QTextLine::CursorPosition arg2 = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#xToCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the x-coordinate <i>x</i>, to the nearest matching cursor position, depending on the cursor position type, <i>cpos</i>. Note that result cursor position includes possible preedit area text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX">cursorToX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x_to_cursor_2a(
        &self,
        x: ::std::os::raw::c_double,
        arg2: crate::q_text_line::CursorPosition,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_xToCursor(self as *const crate::QTextLine, x, arg2)
    }

    /// <p>Converts the x-coordinate <i>x</i>, to the nearest matching cursor position, depending on the cursor position type, <i>cpos</i>. Note that result cursor position includes possible preedit area text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextLine::xToCursor(double x) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#xToCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the x-coordinate <i>x</i>, to the nearest matching cursor position, depending on the cursor position type, <i>cpos</i>. Note that result cursor position includes possible preedit area text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX">cursorToX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x_to_cursor_1a(&self, x: ::std::os::raw::c_double) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_xToCursor1(self as *const crate::QTextLine, x)
    }

    /// <p>Returns the line's y position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextLine::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line's y position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextline.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#rect">rect</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>(), and <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_y(self as *const crate::QTextLine)
    }
}

pub mod qt;
/// C++ class: <span style='color: green;'>```QAbstractUndoItem```</span>.
#[repr(C)]
pub struct QAbstractUndoItem {
    _unused: u8,
}
impl QAbstractUndoItem {
    /// Calls C++ function: <span style='color: green;'>```QAbstractUndoItem& QAbstractUndoItem::operator=(const QAbstractUndoItem& other)```</span>.
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAbstractUndoItem>>,
    ) -> ::cpp_core::MutRef<crate::QAbstractUndoItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractUndoItem_operator_(
            self as *mut crate::QAbstractUndoItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAbstractUndoItem>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAbstractUndoItem::redo()```</span>.
    #[inline(always)]
    pub unsafe fn redo(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractUndoItem_redo(self as *mut crate::QAbstractUndoItem)
    }

    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAbstractUndoItem::undo()```</span>.
    #[inline(always)]
    pub unsafe fn undo(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractUndoItem_undo(self as *mut crate::QAbstractUndoItem)
    }
}

pub mod q_text_document {
    //! C++ type: <span style='color: green;'>```QTextDocument```</span>

    /// <p>This enum describes the different types of meta information that can be added to a document.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextDocument::MetaInformation```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#MetaInformation-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different types of meta information that can be added to a document.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#metaInformation">metaInformation</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#setMetaInformation">setMetaInformation</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct MetaInformation(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for MetaInformation {
        fn from(value: ::std::os::raw::c_int) -> Self {
            MetaInformation(value)
        }
    }

    impl From<MetaInformation> for ::std::os::raw::c_int {
        fn from(value: MetaInformation) -> Self {
            value.0
        }
    }

    impl MetaInformation {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl MetaInformation {
        /// The title of the document. (C++ enum variant: <span style='color: green;'>```DocumentTitle = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const DocumentTitle: crate::q_text_document::MetaInformation =
            crate::q_text_document::MetaInformation(0);
        /// The url of the document. The <a href="http://doc.qt.io/qt-5/qtextdocument.html#loadResource">loadResource</a>() function uses this url as the base when loading relative resources. (C++ enum variant: <span style='color: green;'>```DocumentUrl = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const DocumentUrl: crate::q_text_document::MetaInformation =
            crate::q_text_document::MetaInformation(1);
    }

    /// <p>This enum describes the options available to <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>'s find function. The options can be OR-ed together from the following list:</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextDocument::FindFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#FindFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the options available to <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>'s find function. The options can be OR-ed together from the following list:</p>
    ///
    /// <p>The FindFlags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;FindFlag&gt;. It stores an OR combination of FindFlag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FindFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FindFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FindFlag(value)
        }
    }

    impl From<FindFlag> for ::std::os::raw::c_int {
        fn from(value: FindFlag) -> Self {
            value.0
        }
    }

    impl FindFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FindFlag {
        /// Search backwards instead of forwards. (C++ enum variant: <span style='color: green;'>```FindBackward = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const FindBackward: crate::q_text_document::FindFlag =
            crate::q_text_document::FindFlag(1);
        /// By default find works case insensitive. Specifying this option changes the behaviour to a case sensitive find operation. (C++ enum variant: <span style='color: green;'>```FindCaseSensitively = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const FindCaseSensitively: crate::q_text_document::FindFlag =
            crate::q_text_document::FindFlag(2);
        /// Makes find match only complete words. (C++ enum variant: <span style='color: green;'>```FindWholeWords = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const FindWholeWords: crate::q_text_document::FindFlag =
            crate::q_text_document::FindFlag(4);
    }

    /// <p>This enum describes the types of resources that can be loaded by <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>'s <a href="http://doc.qt.io/qt-5/qtextdocument.html#loadResource">loadResource</a>() function.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextDocument::ResourceType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#ResourceType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the types of resources that can be loaded by <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>'s <a href="http://doc.qt.io/qt-5/qtextdocument.html#loadResource">loadResource</a>() function.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#loadResource">loadResource</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ResourceType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ResourceType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ResourceType(value)
        }
    }

    impl From<ResourceType> for ::std::os::raw::c_int {
        fn from(value: ResourceType) -> Self {
            value.0
        }
    }

    impl ResourceType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ResourceType {
        /// The resource contains HTML. (C++ enum variant: <span style='color: green;'>```HtmlResource = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const HtmlResource: crate::q_text_document::ResourceType =
            crate::q_text_document::ResourceType(1);
        /// The resource contains image data. Currently supported data types are QVariant::Pixmap and QVariant::Image. If the corresponding variant is of type QVariant::ByteArray then Qt attempts to load the image using <a href="http://doc.qt.io/qt-5/qimage.html#loadFromData">QImage::loadFromData</a>. QVariant::Icon is currently not supported. The icon needs to be converted to one of the supported types first, for example using <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">QIcon::pixmap</a>. (C++ enum variant: <span style='color: green;'>```ImageResource = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ImageResource: crate::q_text_document::ResourceType =
            crate::q_text_document::ResourceType(2);
        /// The resource contains CSS. (C++ enum variant: <span style='color: green;'>```StyleSheetResource = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const StyleSheetResource: crate::q_text_document::ResourceType =
            crate::q_text_document::ResourceType(3);
        /// The first available value for user defined resource types. (C++ enum variant: <span style='color: green;'>```UserResource = 100```</span>)
        #[allow(non_upper_case_globals)]
        pub const UserResource: crate::q_text_document::ResourceType =
            crate::q_text_document::ResourceType(100);
    }

    /// C++ enum: <span style='color: green;'>```QTextDocument::Stacks```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#Stacks-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Stacks(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Stacks {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Stacks(value)
        }
    }

    impl From<Stacks> for ::std::os::raw::c_int {
        fn from(value: Stacks) -> Self {
            value.0
        }
    }

    impl Stacks {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Stacks {
        /// The undo stack. (C++ enum variant: <span style='color: green;'>```UndoStack = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const UndoStack: crate::q_text_document::Stacks = crate::q_text_document::Stacks(1);
        /// The redo stack. (C++ enum variant: <span style='color: green;'>```RedoStack = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const RedoStack: crate::q_text_document::Stacks = crate::q_text_document::Stacks(2);
        /// Both the undo and redo stacks. (C++ enum variant: <span style='color: green;'>```UndoAndRedoStacks = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const UndoAndRedoStacks: crate::q_text_document::Stacks =
            crate::q_text_document::Stacks(3);
    }

    impl From<crate::q_text_document::FindFlag>
        for ::qt_core::QFlags<crate::q_text_document::FindFlag>
    {
        fn from(value: crate::q_text_document::FindFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_text_document::FindFlag>>> std::ops::BitOr<T>
        for crate::q_text_document::FindFlag
    {
        type Output = ::qt_core::QFlags<crate::q_text_document::FindFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_text_document::FindFlag> {
            Into::<::qt_core::QFlags<crate::q_text_document::FindFlag>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> class holds formatted text.</p>
///
/// C++ class: <span style='color: green;'>```QTextDocument```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextdocument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> class holds formatted text.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> is a container for structured rich text documents, providing support for styled text and various types of document elements, such as lists, tables, frames, and images. They can be created for use in a <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a>, or used independently.</p>
/// <p>Each document element is described by an associated format object. Each format object is treated as a unique object by QTextDocuments, and can be passed to <a href="http://doc.qt.io/qt-5/qtextdocument.html#objectForFormat">objectForFormat</a>() to obtain the document element that it is applied to.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> can be edited programmatically using a <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a>, and its contents can be examined by traversing the document structure. The entire document structure is stored as a hierarchy of document elements beneath the root frame, found with the <a href="http://doc.qt.io/qt-5/qtextdocument.html#rootFrame">rootFrame</a>() function. Alternatively, if you just want to iterate over the textual contents of the document you can use <a href="http://doc.qt.io/qt-5/qtextdocument.html#begin">begin</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#end">end</a>(), and <a href="http://doc.qt.io/qt-5/qtextdocument.html#findBlock">findBlock</a>() to retrieve text blocks that you can examine and iterate over.</p>
/// <p>The layout of a document is determined by the <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayout">documentLayout</a>(); you can create your own <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> subclass and set it using <a href="http://doc.qt.io/qt-5/qtextdocument.html#setDocumentLayout">setDocumentLayout</a>() if you want to use your own layout logic. The document's title and other meta-information can be obtained by calling the <a href="http://doc.qt.io/qt-5/qtextdocument.html#metaInformation">metaInformation</a>() function. For documents that are exposed to users through the <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a> class, the document title is also available via the <a href="http://doc.qt.io/qt-5/qtextedit.html#documentTitle-prop">QTextEdit::documentTitle</a>() function.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qtextdocument.html#toPlainText">toPlainText</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#toHtml">toHtml</a>() convenience functions allow you to retrieve the contents of the document as plain text and HTML. The document's text can be searched using the <a href="http://doc.qt.io/qt-5/qtextdocument.html#find">find</a>() functions.</p>
/// <p>Undo/redo of operations performed on the document can be controlled using the <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoRedoEnabled-prop">setUndoRedoEnabled</a>() function. The undo/redo system can be controlled by an editor widget through the <a href="http://doc.qt.io/qt-5/qtextdocument.html#undo-1">undo</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#redo-1">redo</a>() slots; the document also provides <a href="http://doc.qt.io/qt-5/qtextdocument.html#contentsChanged">contentsChanged</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoAvailable">undoAvailable</a>(), and <a href="http://doc.qt.io/qt-5/qtextdocument.html#redoAvailable">redoAvailable</a>() signals that inform connected editor widgets about the state of the undo/redo system. The following are the undo/redo operations of a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>:</p>
/// <ul>
/// <li>Insertion or removal of characters. A sequence of insertions or removals within the same text block are regarded as a single undo/redo operation.</li>
/// <li>Insertion or removal of text blocks. Sequences of insertion or removals in a single operation (e.g., by selecting and then deleting text) are regarded as a single undo/redo operation.</li>
/// <li>Text character format changes.</li>
/// <li>Text block format changes.</li>
/// <li>Text block group format changes.</li>
/// </ul></div>
#[repr(C)]
pub struct QTextDocument {
    _unused: u8,
}
impl QTextDocument {
    /// <p>This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::contentsChange` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#contentsChange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.</p>
    /// <p>Information is provided about the <i>position</i> of the character in the document where the change occurred, the number of characters removed (<i>charsRemoved</i>), and the number of characters added (<i>charsAdded</i>).</p>
    /// <p>The signal is emitted before the document's layout manager is notified about the change. This hook allows you to implement syntax highlighting for the document.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#documentChanged">QAbstractTextDocumentLayout::documentChanged</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#contentsChanged">contentsChanged</a>().</p></div>
    #[inline(always)]
    pub fn contents_change(
        &self,
    ) -> ::qt_core::Signal<(
        ::std::os::raw::c_int,
        ::std::os::raw::c_int,
        ::std::os::raw::c_int,
    )> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2contentsChange(int,int,int)\0"),
            )
        }
    }

    /// <p>This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::contentsChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#contentsChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever the document's content changes; for example, when text is inserted or deleted, or when formatting is applied.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#contentsChange">contentsChange</a>().</p></div>
    #[inline(always)]
    pub fn contents_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2contentsChanged()\0"),
            )
        }
    }

    /// <p>This signal is emitted whenever undo operations become available (<i>available</i> is true) or unavailable (<i>available</i> is false).</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::undoAvailable` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoAvailable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever undo operations become available (<i>available</i> is true) or unavailable (<i>available</i> is false).</p>
    /// <p>See the <a href="http://doc.qt.io/qt-5/qundo.html">Qt Undo Framework</a> documentation for details.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#undo-1">undo</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoRedoEnabled-prop">isUndoRedoEnabled</a>().</p></div>
    #[inline(always)]
    pub fn undo_available(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2undoAvailable(bool)\0"),
            )
        }
    }

    /// <p>This signal is emitted whenever redo operations become available (<i>available</i> is true) or unavailable (<i>available</i> is false).</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::redoAvailable` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#redoAvailable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever redo operations become available (<i>available</i> is true) or unavailable (<i>available</i> is false).</p></div>
    #[inline(always)]
    pub fn redo_available(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2redoAvailable(bool)\0"),
            )
        }
    }

    /// <p>This signal is emitted every time a new level of undo is added to the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::undoCommandAdded` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoCommandAdded">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted every time a new level of undo is added to the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub fn undo_command_added(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2undoCommandAdded()\0"),
            )
        }
    }

    /// <p>This signal is emitted whenever the content of the document changes in a way that affects the modification state. If <i>changed</i> is true, the document has been modified; otherwise it is false.</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::modificationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#modificationChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever the content of the document changes in a way that affects the modification state. If <i>changed</i> is true, the document has been modified; otherwise it is false.</p>
    /// <p>For example, calling <a href="http://doc.qt.io/qt-5/qtextdocument.html#modified-prop">setModified</a>(false) on a document and then inserting text causes the signal to get emitted. If you undo that operation, causing the document to return to its original unmodified state, the signal will get emitted again.</p></div>
    #[inline(always)]
    pub fn modification_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2modificationChanged(bool)\0"),
            )
        }
    }

    /// <p>This signal is emitted whenever the position of a cursor changed due to an editing operation. The cursor that changed is passed in <i>cursor</i>. If the document is used with the <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a> class and you need a signal when the cursor is moved with the arrow keys you can use the <a href="http://doc.qt.io/qt-5/qtextedit.html#cursorPositionChanged">cursorPositionChanged()</a> signal in <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a>.</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::cursorPositionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#cursorPositionChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever the position of a cursor changed due to an editing operation. The cursor that changed is passed in <i>cursor</i>. If the document is used with the <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a> class and you need a signal when the cursor is moved with the arrow keys you can use the <a href="http://doc.qt.io/qt-5/qtextedit.html#cursorPositionChanged">cursorPositionChanged()</a> signal in <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a>.</p></div>
    #[inline(always)]
    pub fn cursor_position_changed(&self) -> ::qt_core::Signal<(*const crate::QTextCursor,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2cursorPositionChanged(const QTextCursor&)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the total number of text blocks in the document changes. The value passed in <i>newBlockCount</i> is the new total.</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::blockCountChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#blockCountChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the total number of text blocks in the document changes. The value passed in <i>newBlockCount</i> is the new total.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub fn block_count_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2blockCountChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the base URL used to resolve relative resource URLs within the document.</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::baseUrlChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#baseUrl-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the base URL used to resolve relative resource URLs within the document.</p>
    /// <p>Resource URLs are resolved to be within the same directory as the target of the base URL meaning any portion of the path after the last '/' will be ignored.</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Base URL</th><th>Relative URL</th><th>Resolved URL</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>file:///path/to/content</td><td>images/logo.png</td><td>file:///path/to/images/logo.png</td></tr>
    /// <tr valign="top" class="even"><td>file:///path/to/content/</td><td>images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// <tr valign="top" class="odd"><td>file:///path/to/content/index.html</td><td>images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// <tr valign="top" class="even"><td>file:///path/to/content/images/</td><td>../images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// </tbody></table></div>
    /// <p>This property was introduced in  Qt 5.3.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>baseUrl</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBaseUrl</b></span>(const QUrl &amp;<i>url</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>baseUrlChanged</b></span>(const QUrl &amp;<i>url</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn base_url_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2baseUrlChanged(const QUrl&)\0"),
            )
        }
    }

    /// <p>This signal is emitted when a new document layout is set.</p>
    ///
    /// Returns a built-in Qt signal `QTextDocument::documentLayoutChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayoutChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when a new document layout is set.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setDocumentLayout">setDocumentLayout</a>().</p></div>
    #[inline(always)]
    pub fn document_layout_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2documentLayoutChanged()\0"),
            )
        }
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Returns a built-in Qt slot `QTextDocument::undo` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#undo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub fn slot_undo(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1undo()\0"),
            )
        }
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Returns a built-in Qt slot `QTextDocument::redo` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#redo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Redoes the last editing operation on the document if <a href="http://doc.qt.io/qt-5/qtextdocument.html#isRedoAvailable">redo is available</a>.</p></div>
    #[inline(always)]
    pub fn slot_redo(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1redo()\0"),
            )
        }
    }

    /// Returns a built-in Qt slot `QTextDocument::appendUndoItem` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn slot_append_undo_item(&self) -> ::qt_core::Receiver<(*mut crate::QAbstractUndoItem,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1appendUndoItem(QAbstractUndoItem*)\0",
                ),
            )
        }
    }

    /// <p>This property holds whether the document has been modified by the user</p>
    ///
    /// Returns a built-in Qt slot `QTextDocument::setModified` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#modified-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the document has been modified by the user</p>
    /// <p>By default, this property is <code>false</code>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isModified</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setModified</b></span>(bool <i>m</i> = true)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#modificationChanged">modificationChanged</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_modified(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setModified(bool)\0"),
            )
        }
    }

    /// <p>Adds the resource <i>resource</i> to the resource cache, using <i>type</i> and <i>name</i> as identifiers. <i>type</i> should be a value from <a href="http://doc.qt.io/qt-5/qtextdocument.html#ResourceType-enum">QTextDocument::ResourceType</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::addResource(int type, const QUrl& name, const QVariant& resource)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#addResource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the resource <i>resource</i> to the resource cache, using <i>type</i> and <i>name</i> as identifiers. <i>type</i> should be a value from <a href="http://doc.qt.io/qt-5/qtextdocument.html#ResourceType-enum">QTextDocument::ResourceType</a>.</p>
    /// <p>For example, you can add an image as a resource in order to reference it from within the document:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     document<span class="operator">-</span><span class="operator">&gt;</span>addResource(<span class="type"><a href="http://doc.qt.io/qt-5/qtextdocument.html#QTextDocument">QTextDocument</a></span><span class="operator">::</span>ImageResource<span class="operator">,</span>
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qurl.html">QUrl</a></span>(<span class="string">"mydata://image.png"</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></span>(image));
    ///
    /// </pre>
    /// <p>The image can be inserted into the document using the <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> API:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a></span> imageFormat;
    /// &#32;     imageFormat<span class="operator">.</span>setName(<span class="string">"mydata://image.png"</span>);
    /// &#32;     cursor<span class="operator">.</span>insertImage(imageFormat);
    ///
    /// </pre>
    /// <p>Alternatively, you can insert images using the HTML <code>img</code> tag:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     editor<span class="operator">-</span><span class="operator">&gt;</span>append(<span class="string">"&lt;img src=\"mydata://image.png\" /&gt;"</span>);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn add_resource(
        &mut self,
        type_: ::std::os::raw::c_int,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
        resource: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_addResource(
            self as *mut crate::QTextDocument,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(name).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(resource)
                .as_raw_ptr(),
        )
    }

    /// <p>Adjusts the document to a reasonable size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::adjustSize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#adjustSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the document to a reasonable size.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#textWidth-prop">textWidth</a>, and <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>.</p></div>
    #[inline(always)]
    pub unsafe fn adjust_size(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_adjustSize(self as *mut crate::QTextDocument)
    }

    /// <p>Returns a vector of text formats for all the formats used in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat> QTextDocument::allFormats() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#allFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector of text formats for all the formats used in the document.</p></div>
    #[inline(always)]
    pub unsafe fn all_formats(&self) -> ::cpp_core::CppBox<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_allFormats(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[slot] void QTextDocument::appendUndoItem(QAbstractUndoItem* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn append_undo_item(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAbstractUndoItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_appendUndoItem(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAbstractUndoItem>>::cast_into(arg1)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the number of available redo steps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextDocument::availableRedoSteps() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#availableRedoSteps">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of available redo steps.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#isRedoAvailable">isRedoAvailable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn available_redo_steps(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_availableRedoSteps(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>Returns the number of available undo steps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextDocument::availableUndoSteps() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#availableUndoSteps">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of available undo steps.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#isUndoAvailable">isUndoAvailable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn available_undo_steps(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_availableUndoSteps(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>This property holds the base URL used to resolve relative resource URLs within the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl QTextDocument::baseUrl() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#baseUrl-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the base URL used to resolve relative resource URLs within the document.</p>
    /// <p>Resource URLs are resolved to be within the same directory as the target of the base URL meaning any portion of the path after the last '/' will be ignored.</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Base URL</th><th>Relative URL</th><th>Resolved URL</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>file:///path/to/content</td><td>images/logo.png</td><td>file:///path/to/images/logo.png</td></tr>
    /// <tr valign="top" class="even"><td>file:///path/to/content/</td><td>images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// <tr valign="top" class="odd"><td>file:///path/to/content/index.html</td><td>images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// <tr valign="top" class="even"><td>file:///path/to/content/images/</td><td>../images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// </tbody></table></div>
    /// <p>This property was introduced in  Qt 5.3.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>baseUrl</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBaseUrl</b></span>(const QUrl &amp;<i>url</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>baseUrlChanged</b></span>(const QUrl &amp;<i>url</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn base_url(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_baseUrl(self as *const crate::QTextDocument);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the document's first text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document's first text block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#firstBlock">firstBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_begin(self as *const crate::QTextDocument);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of text blocks in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextDocument::blockCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#blockCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of text blocks in the document.</p>
    /// <p>The value of this property is undefined in documents with tables or frames.</p>
    /// <p>By default, if defined, this property contains a value of 1.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>blockCount</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#lineCount">lineCount</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#characterCount">characterCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn block_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_blockCount(self as *const crate::QTextDocument)
    }

    /// <p>Returns the character at position <i>pos</i>, or a null character if the position is out of range.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QChar QTextDocument::characterAt(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#characterAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the character at position <i>pos</i>, or a null character if the position is out of range.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#characterCount">characterCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn character_at(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QChar> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_characterAt(
            self as *const crate::QTextDocument,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of characters of this document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextDocument::characterCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#characterCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of characters of this document.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#blockCount-prop">blockCount</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#characterAt">characterAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn character_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_characterCount(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>Clears the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QTextDocument::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the document.</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_clear(self as *mut crate::QTextDocument)
    }

    /// <p>Clears the stacks specified by <i>stacksToClear</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::clearUndoRedoStacks(QTextDocument::Stacks historyToClear = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#clearUndoRedoStacks">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the stacks specified by <i>stacksToClear</i>.</p>
    /// <p>This method clears any commands on the undo stack, the redo stack, or both (the default). If commands are cleared, the appropriate signals are emitted, <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoAvailable">QTextDocument::undoAvailable</a>() or <a href="http://doc.qt.io/qt-5/qtextdocument.html#redoAvailable">QTextDocument::redoAvailable</a>().</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#undoAvailable">QTextDocument::undoAvailable</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#redoAvailable">QTextDocument::redoAvailable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_undo_redo_stacks_1a(
        &mut self,
        history_to_clear: crate::q_text_document::Stacks,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_clearUndoRedoStacks(
            self as *mut crate::QTextDocument,
            history_to_clear,
        )
    }

    /// <p>Clears the stacks specified by <i>stacksToClear</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::clearUndoRedoStacks()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#clearUndoRedoStacks">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the stacks specified by <i>stacksToClear</i>.</p>
    /// <p>This method clears any commands on the undo stack, the redo stack, or both (the default). If commands are cleared, the appropriate signals are emitted, <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoAvailable">QTextDocument::undoAvailable</a>() or <a href="http://doc.qt.io/qt-5/qtextdocument.html#redoAvailable">QTextDocument::redoAvailable</a>().</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#undoAvailable">QTextDocument::undoAvailable</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#redoAvailable">QTextDocument::redoAvailable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_undo_redo_stacks_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_clearUndoRedoStacks1(
            self as *mut crate::QTextDocument,
        )
    }

    /// <p>Creates a new <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> that is a copy of this text document. <i>parent</i> is the parent of the returned text document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextDocument* QTextDocument::clone(QObject* parent = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#clone">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> that is a copy of this text document. <i>parent</i> is the parent of the returned text document.</p></div>
    #[inline(always)]
    pub unsafe fn clone_1a(
        &self,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::MutPtr<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_clone(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Creates a new <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> that is a copy of this text document. <i>parent</i> is the parent of the returned text document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextDocument* QTextDocument::clone() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#clone">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> that is a copy of this text document. <i>parent</i> is the parent of the returned text document.</p></div>
    #[inline(always)]
    pub unsafe fn clone_0a(&self) -> ::cpp_core::MutPtr<crate::QTextDocument> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_clone1(self as *const crate::QTextDocument);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>The default cursor movement style is used by all <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> objects created from the document. The default is <a href="http://doc.qt.io/qt-5/qt.html#CursorMoveStyle-enum">Qt::LogicalMoveStyle</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::CursorMoveStyle QTextDocument::defaultCursorMoveStyle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultCursorMoveStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default cursor movement style is used by all <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> objects created from the document. The default is <a href="http://doc.qt.io/qt-5/qt.html#CursorMoveStyle-enum">Qt::LogicalMoveStyle</a>.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setDefaultCursorMoveStyle">setDefaultCursorMoveStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn default_cursor_move_style(&self) -> ::qt_core::CursorMoveStyle {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_defaultCursorMoveStyle(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>This property holds the default font used to display the document's text</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont QTextDocument::defaultFont() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultFont-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the default font used to display the document's text</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QFont </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultFont">defaultFont</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setDefaultFont">setDefaultFont</a></b></span>(const QFont &amp;<i>font</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn default_font(&self) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_defaultFont(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The default style sheet is applied to all newly HTML formatted text that is inserted into the document, for example using <a href="http://doc.qt.io/qt-5/qtextdocument.html#setHtml">setHtml</a>() or <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertHtml">QTextCursor::insertHtml</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocument::defaultStyleSheet() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultStyleSheet-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default style sheet is applied to all newly HTML formatted text that is inserted into the document, for example using <a href="http://doc.qt.io/qt-5/qtextdocument.html#setHtml">setHtml</a>() or <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertHtml">QTextCursor::insertHtml</a>().</p>
    /// <p>The style sheet needs to be compliant to CSS 2.1 syntax.</p>
    /// <p><b>Note:</b> Changing the default style sheet does not have any effect to the existing content of the document.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>defaultStyleSheet</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDefaultStyleSheet</b></span>(const QString &amp;<i>sheet</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/richtext-html-subset.html">Supported HTML Subset</a>.</p></div>
    #[inline(always)]
    pub unsafe fn default_style_sheet(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_defaultStyleSheet(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the default text option will be set on all <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>s in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption QTextDocument::defaultTextOption() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultTextOption-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the default text option will be set on all <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>s in the document.</p>
    /// <p>When <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>s are created, the defaultTextOption is set on their <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>. This allows setting global properties for the document such as the default word wrap mode.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QTextOption </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultTextOption">defaultTextOption</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setDefaultTextOption">setDefaultTextOption</a></b></span>(const QTextOption &amp;<i>option</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn default_text_option(&self) -> ::cpp_core::CppBox<crate::QTextOption> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_defaultTextOption(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the document layout for this document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout* QTextDocument::documentLayout() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document layout for this document.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setDocumentLayout">setDocumentLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn document_layout(&self) -> ::cpp_core::MutPtr<crate::QAbstractTextDocumentLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_documentLayout(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>The margin around the document. The default is 4.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextDocument::documentMargin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentMargin-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The margin around the document. The default is 4.</p>
    /// <p>This property was introduced in  Qt 4.5.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>documentMargin</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDocumentMargin</b></span>(qreal <i>margin</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn document_margin(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_documentMargin(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>Draws the content of the document with painter <i>p</i>, clipped to <i>rect</i>. If <i>rect</i> is a null rectangle (default) then the document is painted unclipped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::drawContents(QPainter* painter, const QRectF& rect = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#drawContents">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the content of the document with painter <i>p</i>, clipped to <i>rect</i>. If <i>rect</i> is a null rectangle (default) then the document is painted unclipped.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn draw_contents_2a(
        &mut self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_drawContents(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the content of the document with painter <i>p</i>, clipped to <i>rect</i>. If <i>rect</i> is a null rectangle (default) then the document is painted unclipped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::drawContents(QPainter* painter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#drawContents">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the content of the document with painter <i>p</i>, clipped to <i>rect</i>. If <i>rect</i> is a null rectangle (default) then the document is painted unclipped.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn draw_contents_1a(
        &mut self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_drawContents1(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This function returns a block to test for the end of the document while iterating over it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function returns a block to test for the end of the document while iterating over it.</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="keyword">for</span> (<span class="type"><a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a></span> it <span class="operator">=</span> doc<span class="operator">-</span><span class="operator">&gt;</span>begin(); it <span class="operator">!</span><span class="operator">=</span> doc<span class="operator">-</span><span class="operator">&gt;</span>end(); it <span class="operator">=</span> it<span class="operator">.</span>next())
    /// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> it<span class="operator">.</span>text()<span class="operator">.</span>toStdString() <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>The block returned is invalid and represents the block after the last block in the document. You can use <a href="http://doc.qt.io/qt-5/qtextdocument.html#lastBlock">lastBlock</a>() to retrieve the last valid block of the document.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#lastBlock">lastBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_end(self as *const crate::QTextDocument);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QString& subString, int from = …, QFlags<QTextDocument::FindFlag> options = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Finds the next occurrence of the string, <i>subString</i>, in the document. The search starts at the given <i>position</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if <i>subString</i> was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>position</i> is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_string_int_q_flags_find_flag(
        &self,
        sub_string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        from: ::std::os::raw::c_int,
        options: ::qt_core::QFlags<crate::q_text_document::FindFlag>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(sub_string)
                .as_raw_ptr(),
            from,
            options.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Finds the next occurrence of the string, <i>subString</i>, in the document. The search starts at the position of the given <i>cursor</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QString& subString, const QTextCursor& cursor, QFlags<QTextDocument::FindFlag> options = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Finds the next occurrence of the string, <i>subString</i>, in the document. The search starts at the position of the given <i>cursor</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if <i>subString</i> was found; otherwise returns a null cursor.</p>
    /// <p>If the given <i>cursor</i> has a selection, the search begins after the selection; otherwise it begins at the cursor's position.</p>
    /// <p>By default the search is case-sensitive, and can match text anywhere in the document.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_string_q_text_cursor_q_flags_find_flag(
        &self,
        sub_string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
        options: ::qt_core::QFlags<crate::q_text_document::FindFlag>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find1(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(sub_string)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
            options.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegExp& expr, int from = …, QFlags<QTextDocument::FindFlag> options = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the given <i>from</i> position, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed. The <a href="http://doc.qt.io/qt-5/qtextdocument.html#FindFlag-enum">FindCaseSensitively</a> option is ignored for this overload, use <a href="http://doc.qt.io/qt-5/qregexp.html#caseSensitivity">QRegExp::caseSensitivity</a> instead.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>from</i> position is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_reg_exp_int_q_flags_find_flag(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
        from: ::std::os::raw::c_int,
        options: ::qt_core::QFlags<crate::q_text_document::FindFlag>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find2(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(expr)
                .as_raw_ptr(),
            from,
            options.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegExp& expr, const QTextCursor& cursor, QFlags<QTextDocument::FindFlag> options = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the position of the given from <i>cursor</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed. The <a href="http://doc.qt.io/qt-5/qtextdocument.html#FindFlag-enum">FindCaseSensitively</a> option is ignored for this overload, use <a href="http://doc.qt.io/qt-5/qregexp.html#caseSensitivity">QRegExp::caseSensitivity</a> instead.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the given <i>cursor</i> has a selection, the search begins after the selection; otherwise it begins at the cursor's position.</p>
    /// <p>By default the search is case-sensitive, and can match text anywhere in the document.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_reg_exp_q_text_cursor_q_flags_find_flag(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
        options: ::qt_core::QFlags<crate::q_text_document::FindFlag>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find3(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(expr)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
            options.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegularExpression& expr, int from = …, QFlags<QTextDocument::FindFlag> options = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the given <i>from</i> position, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>from</i> position is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_regular_expression_int_q_flags_find_flag(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
        from: ::std::os::raw::c_int,
        options: ::qt_core::QFlags<crate::q_text_document::FindFlag>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find4(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(expr)
                .as_raw_ptr(),
            from,
            options.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegularExpression& expr, const QTextCursor& cursor, QFlags<QTextDocument::FindFlag> options = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the position of the given <i>cursor</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the given <i>cursor</i> has a selection, the search begins after the selection; otherwise it begins at the cursor's position.</p>
    /// <p>By default the search is case-sensitive, and can match text anywhere in the document.</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_regular_expression_q_text_cursor_q_flags_find_flag(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
        options: ::qt_core::QFlags<crate::q_text_document::FindFlag>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find5(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(expr)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
            options.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QString& subString, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Finds the next occurrence of the string, <i>subString</i>, in the document. The search starts at the given <i>position</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if <i>subString</i> was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>position</i> is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_string_int(
        &self,
        sub_string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        from: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find6(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(sub_string)
                .as_raw_ptr(),
            from,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QString& subString) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Finds the next occurrence of the string, <i>subString</i>, in the document. The search starts at the given <i>position</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if <i>subString</i> was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>position</i> is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_string(
        &self,
        sub_string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find7(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(sub_string)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Finds the next occurrence of the string, <i>subString</i>, in the document. The search starts at the position of the given <i>cursor</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QString& subString, const QTextCursor& cursor) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Finds the next occurrence of the string, <i>subString</i>, in the document. The search starts at the position of the given <i>cursor</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if <i>subString</i> was found; otherwise returns a null cursor.</p>
    /// <p>If the given <i>cursor</i> has a selection, the search begins after the selection; otherwise it begins at the cursor's position.</p>
    /// <p>By default the search is case-sensitive, and can match text anywhere in the document.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_string_q_text_cursor(
        &self,
        sub_string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find8(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(sub_string)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegExp& expr, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the given <i>from</i> position, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed. The <a href="http://doc.qt.io/qt-5/qtextdocument.html#FindFlag-enum">FindCaseSensitively</a> option is ignored for this overload, use <a href="http://doc.qt.io/qt-5/qregexp.html#caseSensitivity">QRegExp::caseSensitivity</a> instead.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>from</i> position is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_reg_exp_int(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
        from: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find9(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(expr)
                .as_raw_ptr(),
            from,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegExp& expr) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the given <i>from</i> position, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed. The <a href="http://doc.qt.io/qt-5/qtextdocument.html#FindFlag-enum">FindCaseSensitively</a> option is ignored for this overload, use <a href="http://doc.qt.io/qt-5/qregexp.html#caseSensitivity">QRegExp::caseSensitivity</a> instead.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>from</i> position is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_reg_exp(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find10(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(expr)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegExp& expr, const QTextCursor& cursor) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the position of the given from <i>cursor</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed. The <a href="http://doc.qt.io/qt-5/qtextdocument.html#FindFlag-enum">FindCaseSensitively</a> option is ignored for this overload, use <a href="http://doc.qt.io/qt-5/qregexp.html#caseSensitivity">QRegExp::caseSensitivity</a> instead.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the given <i>cursor</i> has a selection, the search begins after the selection; otherwise it begins at the cursor's position.</p>
    /// <p>By default the search is case-sensitive, and can match text anywhere in the document.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_reg_exp_q_text_cursor(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find11(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(expr)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegularExpression& expr, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the given <i>from</i> position, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>from</i> position is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_regular_expression_int(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
        from: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find12(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(expr)
                .as_raw_ptr(),
            from,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegularExpression& expr) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the given <i>from</i> position, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the <i>from</i> position is 0 (the default) the search begins from the beginning of the document; otherwise it begins at the specified position.</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_regular_expression(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find13(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(expr)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextDocument::find(const QRegularExpression& expr, const QTextCursor& cursor) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#find-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Finds the next occurrence that matches the given regular expression, <i>expr</i>, within the same paragraph in the document.</p>
    /// <p>The search starts at the position of the given <i>cursor</i>, and proceeds forwards through the document unless specified otherwise in the search options. The <i>options</i> control the type of search performed.</p>
    /// <p>Returns a cursor with the match selected if a match was found; otherwise returns a null cursor.</p>
    /// <p>If the given <i>cursor</i> has a selection, the search begins after the selection; otherwise it begins at the cursor's position.</p>
    /// <p>By default the search is case-sensitive, and can match text anywhere in the document.</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_regular_expression_q_text_cursor(
        &self,
        expr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_find14(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(expr)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text block that contains the <i>pos</i>-th character.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::findBlock(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#findBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text block that contains the <i>pos</i>-th character.</p></div>
    #[inline(always)]
    pub unsafe fn find_block(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_findBlock(
            self as *const crate::QTextDocument,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text block that contains the specified <i>lineNumber</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::findBlockByLineNumber(int blockNumber) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#findBlockByLineNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text block that contains the specified <i>lineNumber</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#firstLineNumber">QTextBlock::firstLineNumber</a>().</p></div>
    #[inline(always)]
    pub unsafe fn find_block_by_line_number(
        &self,
        block_number: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_findBlockByLineNumber(
            self as *const crate::QTextDocument,
            block_number,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text block with the specified <i>blockNumber</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::findBlockByNumber(int blockNumber) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#findBlockByNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text block with the specified <i>blockNumber</i>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#blockNumber">QTextBlock::blockNumber</a>().</p></div>
    #[inline(always)]
    pub unsafe fn find_block_by_number(
        &self,
        block_number: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_findBlockByNumber(
            self as *const crate::QTextDocument,
            block_number,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the document's first text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::firstBlock() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#firstBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document's first text block.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn first_block(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_firstBlock(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QTextDocument::frameAt(int pos) const```</span>.
    #[inline(always)]
    pub unsafe fn frame_at(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_frameAt(
            self as *const crate::QTextDocument,
            pos,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the ideal width of the text document. The ideal width is the actually used width of the document without optional alignments taken into account. It is always &lt;= <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>().width().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextDocument::idealWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the ideal width of the text document. The ideal width is the actually used width of the document without optional alignments taken into account. It is always &lt;= <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>().width().</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#adjustSize">adjustSize</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#textWidth-prop">textWidth</a>.</p></div>
    #[inline(always)]
    pub unsafe fn ideal_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_idealWidth(self as *const crate::QTextDocument)
    }

    /// <p>Returns the width used for text list and text block indenting.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextDocument::indentWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#indentWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width used for text list and text block indenting.</p>
    /// <p>The indent properties of <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> and <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> specify multiples of this value. The default indent width is 40.</p>
    /// <p>This property was introduced in  Qt 4.4.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>indentWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setIndentWidth">setIndentWidth</a></b></span>(qreal <i>width</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn indent_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_indentWidth(self as *const crate::QTextDocument)
    }

    /// <p>Returns <code>true</code> if the document is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocument::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the document is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_isEmpty(self as *const crate::QTextDocument)
    }

    /// <p>This property holds whether the document has been modified by the user</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocument::isModified() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#modified-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the document has been modified by the user</p>
    /// <p>By default, this property is <code>false</code>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isModified</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setModified</b></span>(bool <i>m</i> = true)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#modificationChanged">modificationChanged</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_modified(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_isModified(self as *const crate::QTextDocument)
    }

    /// <p>Returns <code>true</code> if redo is available; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocument::isRedoAvailable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#isRedoAvailable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if redo is available; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#isUndoAvailable">isUndoAvailable</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#availableRedoSteps">availableRedoSteps</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_redo_available(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_isRedoAvailable(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>Returns <code>true</code> if undo is available; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocument::isUndoAvailable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#isUndoAvailable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if undo is available; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#isRedoAvailable">isRedoAvailable</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#availableUndoSteps">availableUndoSteps</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_undo_available(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_isUndoAvailable(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>This property holds whether undo/redo are enabled for this document</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocument::isUndoRedoEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoRedoEnabled-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether undo/redo are enabled for this document</p>
    /// <p>This defaults to true. If disabled, the undo stack is cleared and no items will be added to it.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isUndoRedoEnabled</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUndoRedoEnabled</b></span>(bool <i>enable</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_undo_redo_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_isUndoRedoEnabled(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>Returns the document's last (valid) text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::lastBlock() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#lastBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document's last (valid) text block.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn last_block(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_lastBlock(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of lines of this document (if the layout supports this). Otherwise, this is identical to the number of blocks.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextDocument::lineCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#lineCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of lines of this document (if the layout supports this). Otherwise, this is identical to the number of blocks.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#blockCount-prop">blockCount</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#characterCount">characterCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_lineCount(self as *const crate::QTextDocument)
    }

    /// <p>Marks the contents specified by the given <i>position</i> and <i>length</i> as "dirty", informing the document that it needs to be laid out again.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::markContentsDirty(int from, int length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#markContentsDirty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the contents specified by the given <i>position</i> and <i>length</i> as "dirty", informing the document that it needs to be laid out again.</p></div>
    #[inline(always)]
    pub unsafe fn mark_contents_dirty(
        &mut self,
        from: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_markContentsDirty(
            self as *mut crate::QTextDocument,
            from,
            length,
        )
    }

    /// <p>Specifies the limit for blocks in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextDocument::maximumBlockCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#maximumBlockCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the limit for blocks in the document.</p>
    /// <p>Specifies the maximum number of blocks the document may have. If there are more blocks in the document that specified with this property blocks are removed from the beginning of the document.</p>
    /// <p>A negative or zero value specifies that the document may contain an unlimited amount of blocks.</p>
    /// <p>The default value is 0.</p>
    /// <p>Note that setting this property will apply the limit immediately to the document contents.</p>
    /// <p>Setting this property also disables the undo redo history.</p>
    /// <p>This property is undefined in documents with tables or frames.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumBlockCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumBlockCount</b></span>(int <i>maximum</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn maximum_block_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_maximumBlockCount(
            self as *const crate::QTextDocument,
        )
    }

    /// <p>Returns meta information about the document of the type specified by <i>info</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocument::metaInformation(QTextDocument::MetaInformation info) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#metaInformation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns meta information about the document of the type specified by <i>info</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setMetaInformation">setMetaInformation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn meta_information(
        &self,
        info: crate::q_text_document::MetaInformation,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_metaInformation(
            self as *const crate::QTextDocument,
            info,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QTextDocument::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_metaObject(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs an empty <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> with the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocument::QTextDocument(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#QTextDocument">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> with the given <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_QTextDocument(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> containing the plain (unformatted) <i>text</i> specified, and with the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocument::QTextDocument(const QString& text, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#QTextDocument-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> containing the plain (unformatted) <i>text</i> specified, and with the given <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_object(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_QTextDocument1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> class holds formatted text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocument::QTextDocument()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> class holds formatted text.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> is a container for structured rich text documents, providing support for styled text and various types of document elements, such as lists, tables, frames, and images. They can be created for use in a <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a>, or used independently.</p>
    /// <p>Each document element is described by an associated format object. Each format object is treated as a unique object by QTextDocuments, and can be passed to <a href="http://doc.qt.io/qt-5/qtextdocument.html#objectForFormat">objectForFormat</a>() to obtain the document element that it is applied to.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> can be edited programmatically using a <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a>, and its contents can be examined by traversing the document structure. The entire document structure is stored as a hierarchy of document elements beneath the root frame, found with the <a href="http://doc.qt.io/qt-5/qtextdocument.html#rootFrame">rootFrame</a>() function. Alternatively, if you just want to iterate over the textual contents of the document you can use <a href="http://doc.qt.io/qt-5/qtextdocument.html#begin">begin</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#end">end</a>(), and <a href="http://doc.qt.io/qt-5/qtextdocument.html#findBlock">findBlock</a>() to retrieve text blocks that you can examine and iterate over.</p>
    /// <p>The layout of a document is determined by the <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayout">documentLayout</a>(); you can create your own <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> subclass and set it using <a href="http://doc.qt.io/qt-5/qtextdocument.html#setDocumentLayout">setDocumentLayout</a>() if you want to use your own layout logic. The document's title and other meta-information can be obtained by calling the <a href="http://doc.qt.io/qt-5/qtextdocument.html#metaInformation">metaInformation</a>() function. For documents that are exposed to users through the <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a> class, the document title is also available via the <a href="http://doc.qt.io/qt-5/qtextedit.html#documentTitle-prop">QTextEdit::documentTitle</a>() function.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextdocument.html#toPlainText">toPlainText</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#toHtml">toHtml</a>() convenience functions allow you to retrieve the contents of the document as plain text and HTML. The document's text can be searched using the <a href="http://doc.qt.io/qt-5/qtextdocument.html#find">find</a>() functions.</p>
    /// <p>Undo/redo of operations performed on the document can be controlled using the <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoRedoEnabled-prop">setUndoRedoEnabled</a>() function. The undo/redo system can be controlled by an editor widget through the <a href="http://doc.qt.io/qt-5/qtextdocument.html#undo-1">undo</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#redo-1">redo</a>() slots; the document also provides <a href="http://doc.qt.io/qt-5/qtextdocument.html#contentsChanged">contentsChanged</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoAvailable">undoAvailable</a>(), and <a href="http://doc.qt.io/qt-5/qtextdocument.html#redoAvailable">redoAvailable</a>() signals that inform connected editor widgets about the state of the undo/redo system. The following are the undo/redo operations of a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>:</p>
    /// <ul>
    /// <li>Insertion or removal of characters. A sequence of insertions or removals within the same text block are regarded as a single undo/redo operation.</li>
    /// <li>Insertion or removal of text blocks. Sequences of insertion or removals in a single operation (e.g., by selecting and then deleting text) are regarded as a single undo/redo operation.</li>
    /// <li>Text character format changes.</li>
    /// <li>Text block format changes.</li>
    /// <li>Text block group format changes.</li>
    /// </ul></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_QTextDocument2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> containing the plain (unformatted) <i>text</i> specified, and with the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocument::QTextDocument(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#QTextDocument-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> containing the plain (unformatted) <i>text</i> specified, and with the given <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_QTextDocument3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text object associated with the given <i>objectIndex</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextObject* QTextDocument::object(int objectIndex) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#object">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text object associated with the given <i>objectIndex</i>.</p></div>
    #[inline(always)]
    pub unsafe fn object(
        &self,
        object_index: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QTextObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_object(
            self as *const crate::QTextDocument,
            object_index,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the text object associated with the format <i>f</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextObject* QTextDocument::objectForFormat(const QTextFormat& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#objectForFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text object associated with the format <i>f</i>.</p></div>
    #[inline(always)]
    pub unsafe fn object_for_format(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::cpp_core::MutPtr<crate::QTextObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_objectForFormat(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>returns the number of pages in this document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextDocument::pageCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>returns the number of pages in this document.</p></div>
    #[inline(always)]
    pub unsafe fn page_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_pageCount(self as *const crate::QTextDocument)
    }

    /// <p>This property holds the page size that should be used for laying out the document</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QTextDocument::pageSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the page size that should be used for laying out the document</p>
    /// <p>The units are determined by the underlying paint device. The size is measured in logical pixels when painting to the screen, and in points (1/72 inch) when painting to a printer.</p>
    /// <p>By default, for a newly-created, empty document, this property contains an undefined size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSizeF </td><td class="memItemRight bottomAlign"><span class="name"><b>pageSize</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPageSize</b></span>(const QSizeF &amp;<i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#modificationChanged">modificationChanged</a>().</p></div>
    #[inline(always)]
    pub unsafe fn page_size(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_pageSize(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Prints the document to the given <i>printer</i>. The QPageablePaintDevice must be set up before being used with this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::print(QPagedPaintDevice* printer) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#print">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Prints the document to the given <i>printer</i>. The QPageablePaintDevice must be set up before being used with this function.</p>
    /// <p>This is only a convenience method to print the whole document to the printer.</p>
    /// <p>If the document is already paginated through a specified height in the <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">pageSize</a>() property it is printed as-is.</p>
    /// <p>If the document is not paginated, like for example a document used in a <a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a>, then a temporary copy of the document is created and the copy is broken into multiple pages according to the size of the paint device's paperRect(). By default a 2 cm margin is set around the document contents. In addition the current page number is printed at the bottom of each page.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextedit.html#print">QTextEdit::print</a>().</p></div>
    #[inline(always)]
    pub unsafe fn print(
        &self,
        printer: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPagedPaintDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_print(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPagedPaintDevice>>::cast_into(
                printer,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QTextDocument::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_qt_metacall(
            self as *mut crate::QTextDocument,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QTextDocument::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_qt_metacast(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Redoes the last editing operation on the document if <a href="http://doc.qt.io/qt-5/qtextdocument.html#isRedoAvailable">redo is available</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::redo(QTextCursor* cursor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#redo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Redoes the last editing operation on the document if <a href="http://doc.qt.io/qt-5/qtextdocument.html#isRedoAvailable">redo is available</a>.</p>
    /// <p>The provided <i>cursor</i> is positioned at the end of the location where the edition operation was redone.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn redo_1a(
        &mut self,
        cursor: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_redo(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextCursor>>::cast_into(cursor)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QTextDocument::redo()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#redo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Redoes the last editing operation on the document if <a href="http://doc.qt.io/qt-5/qtextdocument.html#isRedoAvailable">redo is available</a>.</p></div>
    #[inline(always)]
    pub unsafe fn redo_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_redo1(self as *mut crate::QTextDocument)
    }

    /// <p>Returns data of the specified <i>type</i> from the resource with the given <i>name</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QTextDocument::resource(int type, const QUrl& name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#resource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns data of the specified <i>type</i> from the resource with the given <i>name</i>.</p>
    /// <p>This function is called by the rich text engine to request data that isn't directly stored by <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, but still associated with it. For example, images are referenced indirectly by the name attribute of a <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> object.</p>
    /// <p>Resources are cached internally in the document. If a resource can not be found in the cache, <a href="http://doc.qt.io/qt-5/qtextdocument.html#loadResource">loadResource</a> is called to try to load the resource. <a href="http://doc.qt.io/qt-5/qtextdocument.html#loadResource">loadResource</a> should then use <a href="http://doc.qt.io/qt-5/qtextdocument.html#addResource">addResource</a> to add the resource to the cache.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#ResourceType-enum">QTextDocument::ResourceType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn resource(
        &self,
        type_: ::std::os::raw::c_int,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_resource(
            self as *const crate::QTextDocument,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(name).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the document's revision (if undo is enabled).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextDocument::revision() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#revision">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document's revision (if undo is enabled).</p>
    /// <p>The revision is guaranteed to increase when a document that is not modified is edited.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#revision">QTextBlock::revision</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#modified-prop">isModified</a>().</p></div>
    #[inline(always)]
    pub unsafe fn revision(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_revision(self as *const crate::QTextDocument)
    }

    /// <p>Returns the document's root frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QTextDocument::rootFrame() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#rootFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document's root frame.</p></div>
    #[inline(always)]
    pub unsafe fn root_frame(&self) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_rootFrame(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This property holds the base URL used to resolve relative resource URLs within the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setBaseUrl(const QUrl& url)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#baseUrl-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the base URL used to resolve relative resource URLs within the document.</p>
    /// <p>Resource URLs are resolved to be within the same directory as the target of the base URL meaning any portion of the path after the last '/' will be ignored.</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Base URL</th><th>Relative URL</th><th>Resolved URL</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>file:///path/to/content</td><td>images/logo.png</td><td>file:///path/to/images/logo.png</td></tr>
    /// <tr valign="top" class="even"><td>file:///path/to/content/</td><td>images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// <tr valign="top" class="odd"><td>file:///path/to/content/index.html</td><td>images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// <tr valign="top" class="even"><td>file:///path/to/content/images/</td><td>../images/logo.png</td><td>file:///path/to/content/images/logo.png</td></tr>
    /// </tbody></table></div>
    /// <p>This property was introduced in  Qt 5.3.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>baseUrl</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBaseUrl</b></span>(const QUrl &amp;<i>url</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>baseUrlChanged</b></span>(const QUrl &amp;<i>url</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_base_url(
        &mut self,
        url: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setBaseUrl(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(url).as_raw_ptr(),
        )
    }

    /// <p>Sets the default cursor movement style to the given <i>style</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setDefaultCursorMoveStyle(Qt::CursorMoveStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#setDefaultCursorMoveStyle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the default cursor movement style to the given <i>style</i>.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultCursorMoveStyle">defaultCursorMoveStyle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_default_cursor_move_style(&mut self, style: ::qt_core::CursorMoveStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setDefaultCursorMoveStyle(
            self as *mut crate::QTextDocument,
            style,
        )
    }

    /// <p>Sets the default <i>font</i> to use in the document layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setDefaultFont(const QFont& font)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#setDefaultFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the default <i>font</i> to use in the document layout.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultFont-prop">defaultFont</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultFont">defaultFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_default_font(
        &mut self,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setDefaultFont(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        )
    }

    /// <p>The default style sheet is applied to all newly HTML formatted text that is inserted into the document, for example using <a href="http://doc.qt.io/qt-5/qtextdocument.html#setHtml">setHtml</a>() or <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertHtml">QTextCursor::insertHtml</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setDefaultStyleSheet(const QString& sheet)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultStyleSheet-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default style sheet is applied to all newly HTML formatted text that is inserted into the document, for example using <a href="http://doc.qt.io/qt-5/qtextdocument.html#setHtml">setHtml</a>() or <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertHtml">QTextCursor::insertHtml</a>().</p>
    /// <p>The style sheet needs to be compliant to CSS 2.1 syntax.</p>
    /// <p><b>Note:</b> Changing the default style sheet does not have any effect to the existing content of the document.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>defaultStyleSheet</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDefaultStyleSheet</b></span>(const QString &amp;<i>sheet</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/richtext-html-subset.html">Supported HTML Subset</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_default_style_sheet(
        &mut self,
        sheet: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setDefaultStyleSheet(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(sheet)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the default text option to <i>option</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setDefaultTextOption(const QTextOption& option)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#setDefaultTextOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the default text option to <i>option</i>.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultTextOption-prop">defaultTextOption</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultTextOption">defaultTextOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_default_text_option(
        &mut self,
        option: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextOption>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setDefaultTextOption(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextOption>>::cast_into(option)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the document to use the given <i>layout</i>. The previous layout is deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setDocumentLayout(QAbstractTextDocumentLayout* layout)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#setDocumentLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the document to use the given <i>layout</i>. The previous layout is deleted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayoutChanged">documentLayoutChanged</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_document_layout(
        &mut self,
        layout: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAbstractTextDocumentLayout>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setDocumentLayout(self as *mut crate::QTextDocument, ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAbstractTextDocumentLayout>>::cast_into(layout).as_mut_raw_ptr())
    }

    /// <p>The margin around the document. The default is 4.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setDocumentMargin(double margin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentMargin-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The margin around the document. The default is 4.</p>
    /// <p>This property was introduced in  Qt 4.5.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>documentMargin</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDocumentMargin</b></span>(qreal <i>margin</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_document_margin(&mut self, margin: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setDocumentMargin(
            self as *mut crate::QTextDocument,
            margin,
        )
    }

    /// <p>Replaces the entire contents of the document with the given HTML-formatted text in the <i>html</i> string. The undo/redo history is reset when this function is called.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setHtml(const QString& html)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#setHtml">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the entire contents of the document with the given HTML-formatted text in the <i>html</i> string. The undo/redo history is reset when this function is called.</p>
    /// <p>The HTML formatting is respected as much as possible; for example, "&lt;b&gt;bold&lt;/b&gt; text" will produce text where the first word has a font weight that gives it a bold appearance: "<b>bold</b> text".</p>
    /// <p><b>Note: </b>It is the responsibility of the caller to make sure that the text is correctly decoded when a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> containing HTML is created and passed to setHtml().</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setPlainText">setPlainText</a>() and <a href="http://doc.qt.io/qt-5/richtext-html-subset.html">Supported HTML Subset</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_html(
        &mut self,
        html: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setHtml(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(html)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the <i>width</i> used for text list and text block indenting.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setIndentWidth(double width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#setIndentWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>width</i> used for text list and text block indenting.</p>
    /// <p>The indent properties of <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> and <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> specify multiples of this value. The default indent width is 40 .</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qtextdocument.html#indentWidth-prop">indentWidth</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#indentWidth-prop">indentWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_indent_width(&mut self, width: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setIndentWidth(
            self as *mut crate::QTextDocument,
            width,
        )
    }

    /// <p>Specifies the limit for blocks in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setMaximumBlockCount(int maximum)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#maximumBlockCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the limit for blocks in the document.</p>
    /// <p>Specifies the maximum number of blocks the document may have. If there are more blocks in the document that specified with this property blocks are removed from the beginning of the document.</p>
    /// <p>A negative or zero value specifies that the document may contain an unlimited amount of blocks.</p>
    /// <p>The default value is 0.</p>
    /// <p>Note that setting this property will apply the limit immediately to the document contents.</p>
    /// <p>Setting this property also disables the undo redo history.</p>
    /// <p>This property is undefined in documents with tables or frames.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumBlockCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumBlockCount</b></span>(int <i>maximum</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_maximum_block_count(&mut self, maximum: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setMaximumBlockCount(
            self as *mut crate::QTextDocument,
            maximum,
        )
    }

    /// <p>Sets the document's meta information of the type specified by <i>info</i> to the given <i>string</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setMetaInformation(QTextDocument::MetaInformation info, const QString& arg2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#setMetaInformation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the document's meta information of the type specified by <i>info</i> to the given <i>string</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#metaInformation">metaInformation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_meta_information(
        &mut self,
        info: crate::q_text_document::MetaInformation,
        arg2: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setMetaInformation(
            self as *mut crate::QTextDocument,
            info,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg2)
                .as_raw_ptr(),
        )
    }

    /// <p>This property holds whether the document has been modified by the user</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QTextDocument::setModified(bool m = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#modified-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the document has been modified by the user</p>
    /// <p>By default, this property is <code>false</code>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isModified</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setModified</b></span>(bool <i>m</i> = true)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#modificationChanged">modificationChanged</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_modified_1a(&mut self, m: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setModified(self as *mut crate::QTextDocument, m)
    }

    /// <p>This property holds whether the document has been modified by the user</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QTextDocument::setModified()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#modified-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the document has been modified by the user</p>
    /// <p>By default, this property is <code>false</code>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isModified</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setModified</b></span>(bool <i>m</i> = true)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#modificationChanged">modificationChanged</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_modified_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setModified1(self as *mut crate::QTextDocument)
    }

    /// <p>This property holds the page size that should be used for laying out the document</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setPageSize(const QSizeF& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the page size that should be used for laying out the document</p>
    /// <p>The units are determined by the underlying paint device. The size is measured in logical pixels when painting to the screen, and in points (1/72 inch) when painting to a printer.</p>
    /// <p>By default, for a newly-created, empty document, this property contains an undefined size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSizeF </td><td class="memItemRight bottomAlign"><span class="name"><b>pageSize</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPageSize</b></span>(const QSizeF &amp;<i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#modificationChanged">modificationChanged</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setPageSize(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
        )
    }

    /// <p>Replaces the entire contents of the document with the given plain <i>text</i>. The undo/redo history is reset when this function is called.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setPlainText(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#setPlainText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the entire contents of the document with the given plain <i>text</i>. The undo/redo history is reset when this function is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#setHtml">setHtml</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_plain_text(
        &mut self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setPlainText(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>The text width specifies the preferred width for text in the document. If the text (or content in general) is wider than the specified with it is broken into multiple lines and grows vertically. If the text cannot be broken into multiple lines to fit into the specified text width it will be larger and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>() and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>() property will reflect that.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setTextWidth(double width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#textWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The text width specifies the preferred width for text in the document. If the text (or content in general) is wider than the specified with it is broken into multiple lines and grows vertically. If the text cannot be broken into multiple lines to fit into the specified text width it will be larger and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>() and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>() property will reflect that.</p>
    /// <p>If the text width is set to -1 then the text will not be broken into multiple lines unless it is enforced through an explicit line break or a new paragraph.</p>
    /// <p>The default value is -1.</p>
    /// <p>Setting the text width will also set the page height to -1, causing the document to grow or shrink vertically in a continuous way. If you want the document layout to break the text into multiple pages then you have to set the <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">pageSize</a> property instead.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>textWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTextWidth</b></span>(qreal <i>width</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>(), and <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">pageSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_width(&mut self, width: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setTextWidth(
            self as *mut crate::QTextDocument,
            width,
        )
    }

    /// <p>This property holds whether undo/redo are enabled for this document</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setUndoRedoEnabled(bool enable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoRedoEnabled-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether undo/redo are enabled for this document</p>
    /// <p>This defaults to true. If disabled, the undo stack is cleared and no items will be added to it.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isUndoRedoEnabled</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUndoRedoEnabled</b></span>(bool <i>enable</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_undo_redo_enabled(&mut self, enable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setUndoRedoEnabled(
            self as *mut crate::QTextDocument,
            enable,
        )
    }

    /// <p>This property holds whether the document uses design metrics of fonts to improve the accuracy of text layout</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::setUseDesignMetrics(bool b)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#useDesignMetrics-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the document uses design metrics of fonts to improve the accuracy of text layout</p>
    /// <p>If this property is set to true, the layout will use design metrics. Otherwise, the metrics of the paint device as set on <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#setPaintDevice">QAbstractTextDocumentLayout::setPaintDevice</a>() will be used.</p>
    /// <p>Using design metrics makes a layout have a width that is no longer dependent on hinting and pixel-rounding. This means that WYSIWYG text layout becomes possible because the width scales much more linearly based on paintdevice metrics than it would otherwise.</p>
    /// <p>By default, this property is <code>false</code>.</p>
    /// <p>This property was introduced in  Qt 4.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>useDesignMetrics</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUseDesignMetrics</b></span>(bool <i>b</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_use_design_metrics(&mut self, b: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_setUseDesignMetrics(
            self as *mut crate::QTextDocument,
            b,
        )
    }

    /// <p>Returns the actual size of the document. This is equivalent to <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayout">documentLayout</a>()-&gt;documentSize();</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QTextDocument::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the document. This is equivalent to <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayout">documentLayout</a>()-&gt;documentSize();</p>
    /// <p>The size of the document can be changed either by setting a text width or setting an entire page size.</p>
    /// <p>Note that the width is always &gt;= <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">pageSize</a>().width().</p>
    /// <p>By default, for a newly-created, empty document, this property contains a configuration-dependent size.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSizeF </td><td class="memItemRight bottomAlign"><span class="name"><b>size</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#textWidth-prop">setTextWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">setPageSize</a>(), and <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_size(self as *const crate::QTextDocument);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>The text width specifies the preferred width for text in the document. If the text (or content in general) is wider than the specified with it is broken into multiple lines and grows vertically. If the text cannot be broken into multiple lines to fit into the specified text width it will be larger and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>() and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>() property will reflect that.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextDocument::textWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#textWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The text width specifies the preferred width for text in the document. If the text (or content in general) is wider than the specified with it is broken into multiple lines and grows vertically. If the text cannot be broken into multiple lines to fit into the specified text width it will be larger and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>() and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>() property will reflect that.</p>
    /// <p>If the text width is set to -1 then the text will not be broken into multiple lines unless it is enforced through an explicit line break or a new paragraph.</p>
    /// <p>The default value is -1.</p>
    /// <p>Setting the text width will also set the page height to -1, causing the document to grow or shrink vertically in a continuous way. If you want the document layout to break the text into multiple pages then you have to set the <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">pageSize</a> property instead.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>textWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTextWidth</b></span>(qreal <i>width</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">size</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>(), and <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">pageSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_textWidth(self as *const crate::QTextDocument)
    }

    /// <p>Returns a string containing an HTML representation of the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocument::toHtml(const QByteArray& encoding = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#toHtml">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a string containing an HTML representation of the document.</p>
    /// <p>The <i>encoding</i> parameter specifies the value for the charset attribute in the html header. For example if 'utf-8' is specified then the beginning of the generated html will look like this:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="operator">&lt;</span>html<span class="operator">&gt;</span><span class="operator">&lt;</span>head<span class="operator">&gt;</span><span class="operator">&lt;</span>meta http<span class="operator">-</span>equiv<span class="operator">=</span><span class="string">"Content-Type"</span> content<span class="operator">=</span><span class="string">"text/html; charset=utf-8"</span><span class="operator">&gt;</span><span class="operator">&lt;</span><span class="operator">/</span>head<span class="operator">&gt;</span><span class="operator">&lt;</span>body<span class="operator">&gt;</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre>
    /// <p>If no encoding is specified then no such meta information is generated.</p>
    /// <p>If you later on convert the returned html string into a byte array for transmission over a network or when saving to disk you should specify the encoding you're going to use for the conversion to a byte array here.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/richtext-html-subset.html">Supported HTML Subset</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_html_1a(
        &self,
        encoding: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_toHtml(
            self as *const crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(encoding)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a string containing an HTML representation of the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocument::toHtml() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#toHtml">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a string containing an HTML representation of the document.</p>
    /// <p>The <i>encoding</i> parameter specifies the value for the charset attribute in the html header. For example if 'utf-8' is specified then the beginning of the generated html will look like this:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="operator">&lt;</span>html<span class="operator">&gt;</span><span class="operator">&lt;</span>head<span class="operator">&gt;</span><span class="operator">&lt;</span>meta http<span class="operator">-</span>equiv<span class="operator">=</span><span class="string">"Content-Type"</span> content<span class="operator">=</span><span class="string">"text/html; charset=utf-8"</span><span class="operator">&gt;</span><span class="operator">&lt;</span><span class="operator">/</span>head<span class="operator">&gt;</span><span class="operator">&lt;</span>body<span class="operator">&gt;</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre>
    /// <p>If no encoding is specified then no such meta information is generated.</p>
    /// <p>If you later on convert the returned html string into a byte array for transmission over a network or when saving to disk you should specify the encoding you're going to use for the conversion to a byte array here.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/richtext-html-subset.html">Supported HTML Subset</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_html_0a(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_toHtml1(self as *const crate::QTextDocument);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the plain text contained in the document. If you want formatting information use a <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocument::toPlainText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#toPlainText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the plain text contained in the document. If you want formatting information use a <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> instead.</p>
    /// <p>This function returns the same as <a href="http://doc.qt.io/qt-5/qtextdocument.html#toRawText">toRawText</a>(), but will replace some unicode characters with ASCII alternatives. In particular, no-break space (U+00A0) is replaced by a regular space (U+0020), and both paragraph (U+2029) and line (U+2028) separators are replaced by line feed (U+000A). If you need the precise contents of the document, use <a href="http://doc.qt.io/qt-5/qtextdocument.html#toRawText">toRawText</a>() instead.</p>
    /// <p><b>Note: </b>Embedded objects, such as images, are represented by a Unicode value U+FFFC (OBJECT REPLACEMENT CHARACTER).</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#toHtml">toHtml</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_plain_text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_toPlainText(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the raw text contained in the document without any formatting information. If you want formatting information use a <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocument::toRawText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#toRawText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the raw text contained in the document without any formatting information. If you want formatting information use a <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> instead.</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#toPlainText">toPlainText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_raw_text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_toRawText(
            self as *const crate::QTextDocument,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextDocument::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextDocument::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocument_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Undoes the last editing operation on the document if undo is available. The provided <i>cursor</i> is positioned at the end of the location where the edition operation was undone.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocument::undo(QTextCursor* cursor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#undo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Undoes the last editing operation on the document if undo is available. The provided <i>cursor</i> is positioned at the end of the location where the edition operation was undone.</p>
    /// <p>See the <a href="http://doc.qt.io/qt-5/qundo.html">Qt Undo Framework</a> documentation for details.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#undoAvailable">undoAvailable</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#undoRedoEnabled-prop">isUndoRedoEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn undo_1a(
        &mut self,
        cursor: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_undo(
            self as *mut crate::QTextDocument,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextCursor>>::cast_into(cursor)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QTextDocument::undo()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#undo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn undo_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_undo1(self as *mut crate::QTextDocument)
    }

    /// <p>This property holds whether the document uses design metrics of fonts to improve the accuracy of text layout</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocument::useDesignMetrics() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#useDesignMetrics-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the document uses design metrics of fonts to improve the accuracy of text layout</p>
    /// <p>If this property is set to true, the layout will use design metrics. Otherwise, the metrics of the paint device as set on <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#setPaintDevice">QAbstractTextDocumentLayout::setPaintDevice</a>() will be used.</p>
    /// <p>Using design metrics makes a layout have a width that is no longer dependent on hinting and pixel-rounding. This means that WYSIWYG text layout becomes possible because the width scales much more linearly based on paintdevice metrics than it would otherwise.</p>
    /// <p>By default, this property is <code>false</code>.</p>
    /// <p>This property was introduced in  Qt 4.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>useDesignMetrics</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUseDesignMetrics</b></span>(bool <i>b</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn use_design_metrics(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_useDesignMetrics(
            self as *const crate::QTextDocument,
        )
    }
}

pub mod q_palette {
    //! C++ type: <span style='color: green;'>```QPalette```</span>

    /// C++ enum: <span style='color: green;'>```QPalette::ColorGroup```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#ColorGroup-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ColorGroup(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ColorGroup {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ColorGroup(value)
        }
    }

    impl From<ColorGroup> for ::std::os::raw::c_int {
        fn from(value: ColorGroup) -> Self {
            value.0
        }
    }

    impl ColorGroup {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ColorGroup {
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Active = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Active: crate::q_palette::ColorGroup = crate::q_palette::ColorGroup(0);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Disabled = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Disabled: crate::q_palette::ColorGroup = crate::q_palette::ColorGroup(1);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Inactive = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Inactive: crate::q_palette::ColorGroup = crate::q_palette::ColorGroup(2);
        /// C++ enum variant: <span style='color: green;'>```NColorGroups = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const NColorGroups: crate::q_palette::ColorGroup = crate::q_palette::ColorGroup(3);
        /// C++ enum variant: <span style='color: green;'>```Current = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const Current: crate::q_palette::ColorGroup = crate::q_palette::ColorGroup(4);
        /// C++ enum variant: <span style='color: green;'>```All = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const All: crate::q_palette::ColorGroup = crate::q_palette::ColorGroup(5);
        /// synonym for Active (C++ enum variant: <span style='color: green;'>```Normal = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Normal: crate::q_palette::ColorGroup = crate::q_palette::ColorGroup(0);
    }

    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/palette.png" alt="Color Roles"></p>
    ///
    /// C++ enum: <span style='color: green;'>```QPalette::ColorRole```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/palette.png" alt="Color Roles"></p><p>The ColorRole enum defines the different symbolic color roles used in current GUIs.</p>
    /// <p>The central roles are:</p>
    ///
    /// <p>There are some color roles used mostly for 3D bevel and shadow effects. All of these are normally derived from <code>Window</code>, and used in ways that depend on that relationship. For example, buttons depend on it to make the bevels look attractive, and Motif scroll bars depend on <code>Mid</code> to be slightly different from <code>Window</code>.</p>
    ///
    /// <p>Selected (marked) items have two roles:</p>
    ///
    /// <p>There are two color roles related to hyperlinks:</p>
    ///
    /// <p>Note that we do not use the <code>Link</code> and <code>LinkVisited</code> roles when rendering rich text in Qt, and that we recommend that you use CSS and the <a href="http://doc.qt.io/qt-5/qtextdocument.html#defaultStyleSheet-prop">QTextDocument::setDefaultStyleSheet</a>() function to alter the appearance of links. For example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextbrowser.html">QTextBrowser</a></span> browser;
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span> linkColor(<span class="type">Qt</span><span class="operator">::</span>red);
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> sheet <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">::</span>fromLatin1(<span class="string">"a { text-decoration: underline; color: %1 }"</span>)<span class="operator">.</span>arg(linkColor<span class="operator">.</span>name());
    /// &#32;     browser<span class="operator">.</span>document()<span class="operator">-</span><span class="operator">&gt;</span>setDefaultStyleSheet(sheet);
    ///
    /// </pre></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ColorRole(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ColorRole {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ColorRole(value)
        }
    }

    impl From<ColorRole> for ::std::os::raw::c_int {
        fn from(value: ColorRole) -> Self {
            value.0
        }
    }

    impl ColorRole {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ColorRole {
        /// A general foreground color. (C++ enum variant: <span style='color: green;'>```WindowText = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const WindowText: crate::q_palette::ColorRole = crate::q_palette::ColorRole(0);
        /// The general button background color. This background can be different from <code>Window</code> as some styles require a different background color for buttons. (C++ enum variant: <span style='color: green;'>```Button = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Button: crate::q_palette::ColorRole = crate::q_palette::ColorRole(1);
        /// Lighter than <code>Button</code> color. (C++ enum variant: <span style='color: green;'>```Light = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Light: crate::q_palette::ColorRole = crate::q_palette::ColorRole(2);
        /// Between <code>Button</code> and <code>Light</code>. (C++ enum variant: <span style='color: green;'>```Midlight = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Midlight: crate::q_palette::ColorRole = crate::q_palette::ColorRole(3);
        /// Darker than <code>Button</code>. (C++ enum variant: <span style='color: green;'>```Dark = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Dark: crate::q_palette::ColorRole = crate::q_palette::ColorRole(4);
        /// Between <code>Button</code> and <code>Dark</code>. (C++ enum variant: <span style='color: green;'>```Mid = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const Mid: crate::q_palette::ColorRole = crate::q_palette::ColorRole(5);
        /// The foreground color used with <code>Base</code>. This is usually the same as the <code>WindowText</code>, in which case it must provide good contrast with <code>Window</code> and <code>Base</code>. (C++ enum variant: <span style='color: green;'>```Text = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const Text: crate::q_palette::ColorRole = crate::q_palette::ColorRole(6);
        /// A text color that is very different from <code>WindowText</code>, and contrasts well with e.g. <code>Dark</code>. Typically used for text that needs to be drawn where <code>Text</code> or <code>WindowText</code> would give poor contrast, such as on pressed push buttons. Note that text colors can be used for things other than just words; text colors are <i>usually</i> used for text, but it's quite common to use the text color roles for lines, icons, etc. (C++ enum variant: <span style='color: green;'>```BrightText = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const BrightText: crate::q_palette::ColorRole = crate::q_palette::ColorRole(7);
        /// A foreground color used with the <code>Button</code> color. (C++ enum variant: <span style='color: green;'>```ButtonText = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const ButtonText: crate::q_palette::ColorRole = crate::q_palette::ColorRole(8);
        /// Used mostly as the background color for text entry widgets, but can also be used for other painting - such as the background of combobox drop down lists and toolbar handles. It is usually white or another light color. (C++ enum variant: <span style='color: green;'>```Base = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const Base: crate::q_palette::ColorRole = crate::q_palette::ColorRole(9);
        /// A general background color. (C++ enum variant: <span style='color: green;'>```Window = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const Window: crate::q_palette::ColorRole = crate::q_palette::ColorRole(10);
        /// A very dark color. By default, the shadow color is <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::black</a>. (C++ enum variant: <span style='color: green;'>```Shadow = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const Shadow: crate::q_palette::ColorRole = crate::q_palette::ColorRole(11);
        /// A color to indicate a selected item or the current item. By default, the highlight color is <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::darkBlue</a>. (C++ enum variant: <span style='color: green;'>```Highlight = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const Highlight: crate::q_palette::ColorRole = crate::q_palette::ColorRole(12);
        /// A text color that contrasts with <code>Highlight</code>. By default, the highlighted text color is <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::white</a>. (C++ enum variant: <span style='color: green;'>```HighlightedText = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const HighlightedText: crate::q_palette::ColorRole = crate::q_palette::ColorRole(13);
        /// A text color used for unvisited hyperlinks. By default, the link color is <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::blue</a>. (C++ enum variant: <span style='color: green;'>```Link = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const Link: crate::q_palette::ColorRole = crate::q_palette::ColorRole(14);
        /// A text color used for already visited hyperlinks. By default, the linkvisited color is <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::magenta</a>. (C++ enum variant: <span style='color: green;'>```LinkVisited = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const LinkVisited: crate::q_palette::ColorRole = crate::q_palette::ColorRole(15);
        /// Used as the alternate background color in views with alternating row colors (see <a href="http://doc.qt.io/qt-5/qabstractitemview.html#alternatingRowColors-prop">QAbstractItemView::setAlternatingRowColors</a>()). (C++ enum variant: <span style='color: green;'>```AlternateBase = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlternateBase: crate::q_palette::ColorRole = crate::q_palette::ColorRole(16);
        /// No role; this special role is often used to indicate that a role has not been assigned. (C++ enum variant: <span style='color: green;'>```NoRole = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoRole: crate::q_palette::ColorRole = crate::q_palette::ColorRole(17);
        /// Used as the background color for <a href="http://doc.qt.io/qt-5/qtooltip.html">QToolTip</a> and <a href="http://doc.qt.io/qt-5/qwhatsthis.html">QWhatsThis</a>. Tool tips use the Inactive color group of <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a>, because tool tips are not active windows. (C++ enum variant: <span style='color: green;'>```ToolTipBase = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const ToolTipBase: crate::q_palette::ColorRole = crate::q_palette::ColorRole(18);
        /// Used as the foreground color for <a href="http://doc.qt.io/qt-5/qtooltip.html">QToolTip</a> and <a href="http://doc.qt.io/qt-5/qwhatsthis.html">QWhatsThis</a>. Tool tips use the Inactive color group of <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a>, because tool tips are not active windows. (C++ enum variant: <span style='color: green;'>```ToolTipText = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const ToolTipText: crate::q_palette::ColorRole = crate::q_palette::ColorRole(19);
        /// C++ enum variant: <span style='color: green;'>```NColorRoles = 20```</span>
        #[allow(non_upper_case_globals)]
        pub const NColorRoles: crate::q_palette::ColorRole = crate::q_palette::ColorRole(20);
        /// This value is obsolete. Use WindowText instead. (C++ enum variant: <span style='color: green;'>```Foreground = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Foreground: crate::q_palette::ColorRole = crate::q_palette::ColorRole(0);
        /// This value is obsolete. Use Window instead. (C++ enum variant: <span style='color: green;'>```Background = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const Background: crate::q_palette::ColorRole = crate::q_palette::ColorRole(10);
        /// Used as the placeholder color for various text input widgets. This enum value has been introduced in Qt 5.12 (C++ enum variant: <span style='color: green;'>```PlaceholderText = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const PlaceholderText: crate::q_palette::ColorRole = crate::q_palette::ColorRole(20);
        /// C++ enum variant: <span style='color: green;'>```NColorRoles = 21```</span>
        #[allow(non_upper_case_globals)]
        pub const NColorRoles2: crate::q_palette::ColorRole = crate::q_palette::ColorRole(21);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> class contains color groups for each widget state.</p>
///
/// C++ class: <span style='color: green;'>```QPalette```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpalette.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> class contains color groups for each widget state.</p>
/// <p>A palette consists of three color groups: <i>Active</i>, <i>Disabled</i>, and <i>Inactive</i>. All widgets in Qt contain a palette and use their palette to draw themselves. This makes the user interface easily configurable and easier to keep consistent.</p>
/// <p>If you create a new widget we strongly recommend that you use the colors in the palette rather than hard-coding specific colors.</p>
/// <p>The color groups:</p>
/// <ul>
/// <li>The Active group is used for the window that has keyboard focus.</li>
/// <li>The Inactive group is used for other windows.</li>
/// <li>The Disabled group is used for widgets (not windows) that are disabled for some reason.</li>
/// </ul>
/// <p>Both active and inactive windows can contain disabled widgets. (Disabled widgets are often called <i>inaccessible</i> or <i>grayed out</i>.)</p>
/// <p>In most styles, Active and Inactive look the same.</p>
/// <p>Colors and brushes can be set for particular roles in any of a palette's color groups with <a href="http://doc.qt.io/qt-5/qpalette.html#setColor">setColor</a>() and <a href="http://doc.qt.io/qt-5/qpalette.html#setBrush">setBrush</a>(). A color group contains a group of colors used by widgets for drawing themselves. We recommend that widgets use color group roles from the palette such as "foreground" and "base" rather than literal colors like "red" or "turquoise". The color roles are enumerated and defined in the <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> documentation.</p>
/// <p>We strongly recommend that you use the default palette of the current style (returned by <a href="http://doc.qt.io/qt-5/qguiapplication.html#palette">QGuiApplication::palette</a>()) and modify that as necessary. This is done by Qt's widgets when they are drawn.</p>
/// <p>To modify a color group you call the functions <a href="http://doc.qt.io/qt-5/qpalette.html#setColor">setColor</a>() and <a href="http://doc.qt.io/qt-5/qpalette.html#setBrush">setBrush</a>(), depending on whether you want a pure color or a pixmap pattern.</p>
/// <p>There are also corresponding <a href="http://doc.qt.io/qt-5/qpalette.html#color">color</a>() and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>() getters, and a commonly used convenience function to get the <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> for the current <a href="http://doc.qt.io/qt-5/qpalette.html#ColorGroup-enum">ColorGroup</a>: <a href="http://doc.qt.io/qt-5/qpalette.html#window">window</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#windowText">windowText</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#base">base</a>(), etc.</p>
/// <p>You can copy a palette using the copy constructor and test to see if two palettes are <i>identical</i> using <a href="http://doc.qt.io/qt-5/qpalette.html#isCopyOf">isCopyOf</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> is optimized by the use of <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>, so it is very efficient to pass <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> objects as arguments.</p>
/// <p><b>Warning:</b> Some styles do not use the palette for all drawing, for instance, if they make use of native theme engines. This is the case for both the Windows XP, Windows Vista, and the <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> styles.</p></div>
#[repr(C)]
pub struct QPalette {
    _unused: u8,
}
impl QPalette {
    /// <p>Returns the alternate base brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::alternateBase() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#alternateBase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the alternate base brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alternate_base(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_alternateBase(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpalette.html#window">window</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::background() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette-obsolete.html#background">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpalette.html#window">window</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn background(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_background(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the base brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::base() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#base">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the base brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn base(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_base(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the bright text foreground brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::brightText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#brightText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bright text foreground brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bright_text(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_brightText(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the brush in the specified color <i>group</i>, used for the given color <i>role</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::brush(QPalette::ColorGroup cg, QPalette::ColorRole cr) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#brush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush in the specified color <i>group</i>, used for the given color <i>role</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#color">color</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#setBrush">setBrush</a>(), and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a>.</p></div>
    #[inline(always)]
    pub unsafe fn brush_2a(
        &self,
        cg: crate::q_palette::ColorGroup,
        cr: crate::q_palette::ColorRole,
    ) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_brush(self as *const crate::QPalette, cg, cr);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::brush(QPalette::ColorRole cr) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#brush-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the brush that has been set for the given color <i>role</i> in the current <a href="http://doc.qt.io/qt-5/qpalette.html#ColorGroup-enum">ColorGroup</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#color">color</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#setBrush">setBrush</a>(), and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a>.</p></div>
    #[inline(always)]
    pub unsafe fn brush_1a(
        &self,
        cr: crate::q_palette::ColorRole,
    ) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_brush1(self as *const crate::QPalette, cr);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the button brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::button() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#button">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the button brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn button(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_button(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the button text foreground brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::buttonText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#buttonText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the button text foreground brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn button_text(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_buttonText(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a number that identifies the contents of this <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> object. Distinct <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> objects can have the same key if they refer to the same contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```qint64 QPalette::cacheKey() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#cacheKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a number that identifies the contents of this <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> object. Distinct <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> objects can have the same key if they refer to the same contents.</p>
    /// <p>The cacheKey() will change when the palette is altered.</p></div>
    #[inline(always)]
    pub unsafe fn cache_key(&self) -> i64 {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_cacheKey(self as *const crate::QPalette)
    }

    /// <p>Returns the color in the specified color <i>group</i>, used for the given color <i>role</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QColor& QPalette::color(QPalette::ColorGroup cg, QPalette::ColorRole cr) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#color">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color in the specified color <i>group</i>, used for the given color <i>role</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#setColor">setColor</a>(), and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a>.</p></div>
    #[inline(always)]
    pub unsafe fn color_2a(
        &self,
        cg: crate::q_palette::ColorGroup,
        cr: crate::q_palette::ColorRole,
    ) -> ::cpp_core::Ref<crate::QColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_color(self as *const crate::QPalette, cg, cr);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QColor& QPalette::color(QPalette::ColorRole cr) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#color-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the color that has been set for the given color <i>role</i> in the current <a href="http://doc.qt.io/qt-5/qpalette.html#ColorGroup-enum">ColorGroup</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>() and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a>.</p></div>
    #[inline(always)]
    pub unsafe fn color_1a(
        &self,
        cr: crate::q_palette::ColorRole,
    ) -> ::cpp_core::Ref<crate::QColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_color1(self as *const crate::QPalette, cr);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>p</i> to this palette and returns a reference to this palette.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPalette& QPalette::operator=(const QPalette& palette)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>p</i> to this palette and returns a reference to this palette.</p>
    /// <p>This operation is fast thanks to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        palette: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPalette>>,
    ) -> ::cpp_core::MutRef<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_operator_(
            self as *mut crate::QPalette,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPalette>>::cast_into(palette)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the palette's current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPalette::ColorGroup QPalette::currentColorGroup() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#currentColorGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the palette's current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#setCurrentColorGroup">setCurrentColorGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_color_group(&self) -> crate::q_palette::ColorGroup {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_currentColorGroup(self as *const crate::QPalette)
    }

    /// <p>Returns the dark brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::dark() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#dark">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dark brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn dark(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_dark(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpalette.html#windowText">windowText</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::foreground() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette-obsolete.html#foreground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpalette.html#windowText">windowText</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn foreground(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_foreground(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the highlight brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::highlight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#highlight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the highlight brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn highlight(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_highlight(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the highlighted text brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::highlightedText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#highlightedText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the highlighted text brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn highlighted_text(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_highlightedText(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qpalette.html#ColorGroup-enum">ColorGroup</a> <i>cg</i> and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> <i>cr</i> has been set previously on this palette; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPalette::isBrushSet(QPalette::ColorGroup cg, QPalette::ColorRole cr) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#isBrushSet">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qpalette.html#ColorGroup-enum">ColorGroup</a> <i>cg</i> and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> <i>cr</i> has been set previously on this palette; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#setBrush">setBrush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_brush_set(
        &self,
        cg: crate::q_palette::ColorGroup,
        cr: crate::q_palette::ColorRole,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_isBrushSet(self as *const crate::QPalette, cg, cr)
    }

    /// <p>Returns <code>true</code> if this palette and <i>p</i> are copies of each other, i.e. one of them was created as a copy of the other and neither was subsequently modified; otherwise returns <code>false</code>. This is much stricter than equality.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPalette::isCopyOf(const QPalette& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#isCopyOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this palette and <i>p</i> are copies of each other, i.e. one of them was created as a copy of the other and neither was subsequently modified; otherwise returns <code>false</code>. This is much stricter than equality.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#operator-eq">operator=</a>() and <a href="http://doc.qt.io/qt-5/qpalette.html#operator-eq-eq">operator==</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_copy_of(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPalette>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_isCopyOf(
            self as *const crate::QPalette,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPalette>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> (usually quickly) if color group <i>cg1</i> is equal to <i>cg2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPalette::isEqual(QPalette::ColorGroup cr1, QPalette::ColorGroup cr2) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#isEqual">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> (usually quickly) if color group <i>cg1</i> is equal to <i>cg2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_equal(
        &self,
        cr1: crate::q_palette::ColorGroup,
        cr2: crate::q_palette::ColorGroup,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_isEqual(self as *const crate::QPalette, cr1, cr2)
    }

    /// <p>Returns the light brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::light() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#light">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the light brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn light(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_light(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the unvisited link text brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::link() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#link">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the unvisited link text brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn link(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_link(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the visited link text brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::linkVisited() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#linkVisited">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the visited link text brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn link_visited(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_linkVisited(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the mid brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::mid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mid brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mid(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_mid(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the midlight brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::midlight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#midlight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the midlight brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn midlight(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_midlight(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a palette object that uses the application's default palette.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPalette::QPalette()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#QPalette">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a palette object that uses the application's default palette.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qapplication.html#setPalette">QApplication::setPalette</a>() and <a href="http://doc.qt.io/qt-5/qapplication.html#palette">QApplication::palette</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_QPalette();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a palette from the <i>button</i> color. The other colors are automatically calculated, based on this color. <code>Window</code> will be the button color as well.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPalette::QPalette(const QColor& button)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#QPalette-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a palette from the <i>button</i> color. The other colors are automatically calculated, based on this color. <code>Window</code> will be the button color as well.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_color(
        button: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_QPalette1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(button).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a palette from the <i>button</i> color. The other colors are automatically calculated, based on this color. <code>Window</code> will be the button color as well.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPalette::QPalette(Qt::GlobalColor button)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#QPalette-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a palette from the <i>button</i> color. The other colors are automatically calculated, based on this color. <code>Window</code> will be the button color as well.</p></div>
    #[inline(always)]
    pub unsafe fn from_global_color(
        button: ::qt_core::GlobalColor,
    ) -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_QPalette2(button);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a palette from a <i>button</i> color and a <i>window</i>. The other colors are automatically calculated, based on these colors.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPalette::QPalette(const QColor& button, const QColor& window)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#QPalette-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a palette from a <i>button</i> color and a <i>window</i>. The other colors are automatically calculated, based on these colors.</p></div>
    #[inline(always)]
    pub unsafe fn from_2_q_color(
        button: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        window: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_QPalette3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(button).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(window).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a palette. You can pass either brushes, pixmaps or plain colors for <i>windowText</i>, <i>button</i>, <i>light</i>, <i>dark</i>, <i>mid</i>, <i>text</i>, <i>bright_text</i>, <i>base</i> and <i>window</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPalette::QPalette(const QBrush& windowText, const QBrush& button, const QBrush& light, const QBrush& dark, const QBrush& mid, const QBrush& text, const QBrush& bright_text, const QBrush& base, const QBrush& window)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#QPalette-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a palette. You can pass either brushes, pixmaps or plain colors for <i>windowText</i>, <i>button</i>, <i>light</i>, <i>dark</i>, <i>mid</i>, <i>text</i>, <i>bright_text</i>, <i>base</i> and <i>window</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_9_q_brush(
        window_text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        button: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        light: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        dark: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        mid: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        bright_text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        base: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        window: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_QPalette4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(window_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(button).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(light).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(dark).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(mid).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(text).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(bright_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(base).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(window).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPalette::QPalette(const QColor& windowText, const QColor& window, const QColor& light, const QColor& dark, const QColor& mid, const QColor& text, const QColor& base)```</span>.
    #[inline(always)]
    pub unsafe fn from_7_q_color(
        window_text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        window: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        light: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        dark: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        mid: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
        base: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_QPalette5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(window_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(window).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(light).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(dark).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(mid).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(text).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(base).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>p</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPalette::QPalette(const QPalette& palette)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#QPalette-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>p</i>.</p>
    /// <p>This constructor is fast thanks to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        palette: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPalette>>,
    ) -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_QPalette6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPalette>>::cast_into(palette)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the placeholder text brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::placeholderText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#placeholderText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the placeholder text brush of the current color group.</p>
    /// <p><b>Note: </b>Before Qt 5.12, the placeholder text color was hard-coded in the code as <a href="http://doc.qt.io/qt-5/qpalette.html#text">QPalette::text</a>().<a href="http://doc.qt.io/qt-5/qpalette.html#color">color</a>() where an alpha of 128 was applied. We continue to support this behavior by default, unless you set your own brush. One can get back the original placeholder color setting the special <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> default constructor as placeholder brush.</p><p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn placeholder_text(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_placeholderText(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> that has attributes copied from <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPalette QPalette::resolve(const QPalette& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#resolve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> that has attributes copied from <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn resolve_1a(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPalette>>,
    ) -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_resolve(
            self as *const crate::QPalette,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPalette>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> that has attributes copied from <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QPalette::resolve() const```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpalette.html#resolve">C++ documentation</a> for <span style='color: green;'>```QPalette QPalette::resolve(const QPalette &other) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> that has attributes copied from <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn resolve_0a(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_resolve1(self as *const crate::QPalette)
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> that has attributes copied from <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPalette::resolve(unsigned int mask)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpalette.html#resolve">C++ documentation</a> for <span style='color: green;'>```QPalette QPalette::resolve(const QPalette &other) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a> that has attributes copied from <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn resolve_1a_mut(&mut self, mask: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_resolve2(self as *mut crate::QPalette, mask)
    }

    /// <p>Sets the brush for the given color <i>role</i> to the specified <i>brush</i> for all groups in the palette.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPalette::setBrush(QPalette::ColorRole cr, const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#setBrush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush for the given color <i>role</i> to the specified <i>brush</i> for all groups in the palette.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#setColor">setColor</a>(), and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_brush_2a(
        &mut self,
        cr: crate::q_palette::ColorRole,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_setBrush(
            self as *mut crate::QPalette,
            cr,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPalette::setBrush(QPalette::ColorGroup cg, QPalette::ColorRole cr, const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#setBrush-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the brush in the specified color <i>group</i>, used for the given color <i>role</i>, to <i>brush</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#setColor">setColor</a>(), and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_brush_3a(
        &mut self,
        cg: crate::q_palette::ColorGroup,
        cr: crate::q_palette::ColorRole,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_setBrush1(
            self as *mut crate::QPalette,
            cg,
            cr,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>Sets the color in the specified color <i>group</i>, used for the given color <i>role</i>, to the specified solid <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPalette::setColor(QPalette::ColorGroup cg, QPalette::ColorRole cr, const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#setColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color in the specified color <i>group</i>, used for the given color <i>role</i>, to the specified solid <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#setBrush">setBrush</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#color">color</a>(), and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_color_3a(
        &mut self,
        cg: crate::q_palette::ColorGroup,
        cr: crate::q_palette::ColorRole,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_setColor(
            self as *mut crate::QPalette,
            cg,
            cr,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPalette::setColor(QPalette::ColorRole cr, const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#setColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the color used for the given color <i>role</i>, in all color groups, to the specified solid <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>(), <a href="http://doc.qt.io/qt-5/qpalette.html#setColor">setColor</a>(), and <a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_color_2a(
        &mut self,
        cr: crate::q_palette::ColorRole,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_setColor1(
            self as *mut crate::QPalette,
            cr,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>Sets a the group at <i>cg</i>. You can pass either brushes, pixmaps or plain colors for <i>windowText</i>, <i>button</i>, <i>light</i>, <i>dark</i>, <i>mid</i>, <i>text</i>, <i>bright_text</i>, <i>base</i> and <i>window</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPalette::setColorGroup(QPalette::ColorGroup cr, const QBrush& windowText, const QBrush& button, const QBrush& light, const QBrush& dark, const QBrush& mid, const QBrush& text, const QBrush& bright_text, const QBrush& base, const QBrush& window)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#setColorGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a the group at <i>cg</i>. You can pass either brushes, pixmaps or plain colors for <i>windowText</i>, <i>button</i>, <i>light</i>, <i>dark</i>, <i>mid</i>, <i>text</i>, <i>bright_text</i>, <i>base</i> and <i>window</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_color_group(
        &mut self,
        cr: crate::q_palette::ColorGroup,
        window_text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        button: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        light: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        dark: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        mid: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        bright_text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        base: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
        window: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_setColorGroup(
            self as *mut crate::QPalette,
            cr,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(window_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(button).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(light).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(dark).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(mid).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(text).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(bright_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(base).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(window).as_raw_ptr(),
        )
    }

    /// <p>Set the palette's current color group to <i>cg</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPalette::setCurrentColorGroup(QPalette::ColorGroup cg)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#setCurrentColorGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the palette's current color group to <i>cg</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#currentColorGroup">currentColorGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_current_color_group(&mut self, cg: crate::q_palette::ColorGroup) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_setCurrentColorGroup(self as *mut crate::QPalette, cg)
    }

    /// <p>Returns the shadow brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::shadow() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#shadow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the shadow brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn shadow(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_shadow(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Swaps this palette instance with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPalette::swap(QPalette& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this palette instance with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPalette>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_swap(
            self as *mut crate::QPalette,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPalette>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the text foreground brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text foreground brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPalette_text(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the palette as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QPalette::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the palette as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_operator_QVariant(self as *const crate::QPalette);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the tool tip base brush of the current color group. This brush is used by <a href="http://doc.qt.io/qt-5/qtooltip.html">QToolTip</a> and <a href="http://doc.qt.io/qt-5/qwhatsthis.html">QWhatsThis</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::toolTipBase() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#toolTipBase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the tool tip base brush of the current color group. This brush is used by <a href="http://doc.qt.io/qt-5/qtooltip.html">QToolTip</a> and <a href="http://doc.qt.io/qt-5/qwhatsthis.html">QWhatsThis</a>.</p>
    /// <p><b>Note: </b>Tool tips use the Inactive color group of <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a>, because tool tips are not active windows.</p><p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tool_tip_base(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_toolTipBase(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the tool tip text brush of the current color group. This brush is used by <a href="http://doc.qt.io/qt-5/qtooltip.html">QToolTip</a> and <a href="http://doc.qt.io/qt-5/qwhatsthis.html">QWhatsThis</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::toolTipText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#toolTipText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the tool tip text brush of the current color group. This brush is used by <a href="http://doc.qt.io/qt-5/qtooltip.html">QToolTip</a> and <a href="http://doc.qt.io/qt-5/qwhatsthis.html">QWhatsThis</a>.</p>
    /// <p><b>Note: </b>Tool tips use the Inactive color group of <a href="http://doc.qt.io/qt-5/qpalette.html">QPalette</a>, because tool tips are not active windows.</p><p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tool_tip_text(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_toolTipText(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the window (general background) brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::window() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#window">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window (general background) brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn window(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_window(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the window text (general foreground) brush of the current color group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPalette::windowText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#windowText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window text (general foreground) brush of the current color group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#ColorRole-enum">ColorRole</a> and <a href="http://doc.qt.io/qt-5/qpalette.html#brush">brush</a>().</p></div>
    #[inline(always)]
    pub unsafe fn window_text(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPalette_windowText(self as *const crate::QPalette);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

pub mod q_abstract_text_document_layout {
    //! C++ type: <span style='color: green;'>```QAbstractTextDocumentLayout```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
    ///
    /// C++ class: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
    /// <p>A selection can be used to specify a part of a document that should be highlighted when drawing custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified using <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#cursor-var">cursor</a> and a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#format-var">format</a>.</p></div>
    #[repr(C)]
    pub struct Selection {
        _unused: u8,
    }
    impl Selection {
        /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection& QAbstractTextDocumentLayout::Selection::operator=(const QAbstractTextDocumentLayout::Selection& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
        /// <p>A selection can be used to specify a part of a document that should be highlighted when drawing custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified using <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#cursor-var">cursor</a> and a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#format-var">format</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_abstract_text_document_layout::Selection> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_Selection_operator_(
                    self as *mut crate::q_abstract_text_document_layout::Selection,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a reference to the <span style='color: green;'>```cursor```</span> field.
        #[inline(always)]
        pub unsafe fn cursor(&self) -> ::cpp_core::Ref<crate::QTextCursor> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_Selection_cursor(
                    self as *const crate::q_abstract_text_document_layout::Selection,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```cursor```</span> field.
        #[inline(always)]
        pub unsafe fn cursor_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextCursor> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_Selection_cursor_mut(
                    self as *mut crate::q_abstract_text_document_layout::Selection,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a reference to the <span style='color: green;'>```format```</span> field.
        #[inline(always)]
        pub unsafe fn format(&self) -> ::cpp_core::Ref<crate::QTextCharFormat> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_Selection_format(
                    self as *const crate::q_abstract_text_document_layout::Selection,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```format```</span> field.
        #[inline(always)]
        pub unsafe fn format_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextCharFormat> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_Selection_format_mut(
                    self as *mut crate::q_abstract_text_document_layout::Selection,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QAbstractTextDocumentLayout::Selection::Selection()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
        /// <p>A selection can be used to specify a part of a document that should be highlighted when drawing custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified using <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#cursor-var">cursor</a> and a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#format-var">format</a>.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::Selection>
        {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_Selection_Selection();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QAbstractTextDocumentLayout::Selection::Selection(const QAbstractTextDocumentLayout::Selection& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
        /// <p>A selection can be used to specify a part of a document that should be highlighted when drawing custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified using <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#cursor-var">cursor</a> and a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#format-var">format</a>.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::Selection> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_Selection_Selection1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Sets the value of the <span style='color: green;'>```cursor```</span> field.
        #[inline(always)]
        pub unsafe fn set_cursor(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAbstractTextDocumentLayout_Selection_cursor(
                self as *mut crate::q_abstract_text_document_layout::Selection,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Sets the value of the <span style='color: green;'>```format```</span> field.
        #[inline(always)]
        pub unsafe fn set_format(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAbstractTextDocumentLayout_Selection_format(
                self as *mut crate::q_abstract_text_document_layout::Selection,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">QAbstractTextDocumentLayout::PaintContext</a> class is a convenience class defining the parameters used when painting a document's layout.</p>
    ///
    /// C++ class: <span style='color: green;'>```QAbstractTextDocumentLayout::PaintContext```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">QAbstractTextDocumentLayout::PaintContext</a> class is a convenience class defining the parameters used when painting a document's layout.</p>
    /// <p>A paint context is used when rendering custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified by a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#cursorPosition-var">cursor position</a>, <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#palette-var">default text color</a>, <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#clip-var">clip</a> rectangle and a collection of <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#selections-var">selections</a>.</p></div>
    #[repr(C)]
    pub struct PaintContext {
        _unused: u8,
    }
    impl PaintContext {
        /// Returns a reference to the <span style='color: green;'>```clip```</span> field.
        #[inline(always)]
        pub unsafe fn clip(&self) -> ::cpp_core::Ref<::qt_core::QRectF> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_clip(
                    self as *const crate::q_abstract_text_document_layout::PaintContext,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```clip```</span> field.
        #[inline(always)]
        pub unsafe fn clip_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRectF> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_clip_mut(
                    self as *mut crate::q_abstract_text_document_layout::PaintContext,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">QAbstractTextDocumentLayout::PaintContext</a> class is a convenience class defining the parameters used when painting a document's layout.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::PaintContext& QAbstractTextDocumentLayout::PaintContext::operator=(const QAbstractTextDocumentLayout::PaintContext& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">QAbstractTextDocumentLayout::PaintContext</a> class is a convenience class defining the parameters used when painting a document's layout.</p>
        /// <p>A paint context is used when rendering custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified by a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#cursorPosition-var">cursor position</a>, <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#palette-var">default text color</a>, <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#clip-var">clip</a> rectangle and a collection of <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#selections-var">selections</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::PaintContext>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_abstract_text_document_layout::PaintContext> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_operator_(
                    self as *mut crate::q_abstract_text_document_layout::PaintContext,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_abstract_text_document_layout::PaintContext>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```cursorPosition```</span> field.
        #[inline(always)]
        pub unsafe fn cursor_position(&self) -> ::std::os::raw::c_int {
            crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_cursorPosition(
                self as *const crate::q_abstract_text_document_layout::PaintContext,
            )
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QAbstractTextDocumentLayout::PaintContext::PaintContext()```</span>.
        #[inline(always)]
        pub unsafe fn new(
        ) -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::PaintContext> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_PaintContext(
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">QAbstractTextDocumentLayout::PaintContext</a> class is a convenience class defining the parameters used when painting a document's layout.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QAbstractTextDocumentLayout::PaintContext::PaintContext(const QAbstractTextDocumentLayout::PaintContext& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">QAbstractTextDocumentLayout::PaintContext</a> class is a convenience class defining the parameters used when painting a document's layout.</p>
        /// <p>A paint context is used when rendering custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified by a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#cursorPosition-var">cursor position</a>, <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#palette-var">default text color</a>, <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#clip-var">clip</a> rectangle and a collection of <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#selections-var">selections</a>.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::PaintContext>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::PaintContext> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_PaintContext1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_abstract_text_document_layout::PaintContext>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Returns a reference to the <span style='color: green;'>```palette```</span> field.
        #[inline(always)]
        pub unsafe fn palette(&self) -> ::cpp_core::Ref<crate::QPalette> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_palette(
                    self as *const crate::q_abstract_text_document_layout::PaintContext,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```palette```</span> field.
        #[inline(always)]
        pub unsafe fn palette_mut(&mut self) -> ::cpp_core::MutRef<crate::QPalette> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_palette_mut(
                    self as *mut crate::q_abstract_text_document_layout::PaintContext,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a reference to the <span style='color: green;'>```selections```</span> field.
        #[inline(always)]
        pub unsafe fn selections(&self) -> ::cpp_core::Ref<crate::QVectorOfSelection> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_selections(
                    self as *const crate::q_abstract_text_document_layout::PaintContext,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```selections```</span> field.
        #[inline(always)]
        pub unsafe fn selections_mut(&mut self) -> ::cpp_core::MutRef<crate::QVectorOfSelection> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_selections_mut(self as *mut crate::q_abstract_text_document_layout::PaintContext);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Sets the value of the <span style='color: green;'>```clip```</span> field.
        #[inline(always)]
        pub unsafe fn set_clip(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAbstractTextDocumentLayout_PaintContext_clip(
                self as *mut crate::q_abstract_text_document_layout::PaintContext,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Sets the value of the <span style='color: green;'>```cursorPosition```</span> field.
        #[inline(always)]
        pub unsafe fn set_cursor_position(&mut self, value: ::std::os::raw::c_int) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAbstractTextDocumentLayout_PaintContext_cursorPosition(
                self as *mut crate::q_abstract_text_document_layout::PaintContext,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```palette```</span> field.
        #[inline(always)]
        pub unsafe fn set_palette(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPalette>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAbstractTextDocumentLayout_PaintContext_palette(
                self as *mut crate::q_abstract_text_document_layout::PaintContext,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPalette>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Sets the value of the <span style='color: green;'>```selections```</span> field.
        #[inline(always)]
        pub unsafe fn set_selections(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSelection>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAbstractTextDocumentLayout_PaintContext_selections(
                self as *mut crate::q_abstract_text_document_layout::PaintContext,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSelection>>::cast_into(
                    value,
                )
                .as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_abstract_text_document_layout::Selection {
        /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QAbstractTextDocumentLayout::Selection::~Selection()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html">QAbstractTextDocumentLayout::Selection</a> class is a convenience class defining the parameters of a selection.</p>
        /// <p>A selection can be used to specify a part of a document that should be highlighted when drawing custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified using <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#cursor-var">cursor</a> and a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-selection.html#format-var">format</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_Selection_dSelection(
                self as *mut crate::q_abstract_text_document_layout::Selection,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_abstract_text_document_layout::PaintContext {
        /// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">QAbstractTextDocumentLayout::PaintContext</a> class is a convenience class defining the parameters used when painting a document's layout.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QAbstractTextDocumentLayout::PaintContext::~PaintContext()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html">QAbstractTextDocumentLayout::PaintContext</a> class is a convenience class defining the parameters used when painting a document's layout.</p>
        /// <p>A paint context is used when rendering custom layouts for QTextDocuments with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">QAbstractTextDocumentLayout::draw</a>() function. It is specified by a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#cursorPosition-var">cursor position</a>, <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#palette-var">default text color</a>, <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#clip-var">clip</a> rectangle and a collection of <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout-paintcontext.html#selections-var">selections</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_PaintContext_dPaintContext(
                self as *mut crate::q_abstract_text_document_layout::PaintContext,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> class is an abstract base class used to implement custom layouts for QTextDocuments.</p>
///
/// C++ class: <span style='color: green;'>```QAbstractTextDocumentLayout```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> class is an abstract base class used to implement custom layouts for QTextDocuments.</p>
/// <p>The standard layout provided by Qt can handle simple word processing including inline images, lists and tables.</p>
/// <p>Some applications, e.g., a word processor or a DTP application might need more features than the ones provided by Qt's layout engine, in which case you can subclass <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> to provide custom layout behavior for your text documents.</p>
/// <p>An instance of the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> subclass can be installed on a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> object with the <a href="http://doc.qt.io/qt-5/qtextdocument.html#setDocumentLayout">setDocumentLayout()</a> function.</p>
/// <p>You can insert custom objects into a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>; see the <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> class description for details.</p></div>
#[repr(C)]
pub struct QAbstractTextDocumentLayout {
    _unused: u8,
}
impl QAbstractTextDocumentLayout {
    /// <p>This signal is emitted when the rectangle <i>rect</i> has been updated.</p>
    ///
    /// Returns a built-in Qt signal `QAbstractTextDocumentLayout::update` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#update">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the rectangle <i>rect</i> has been updated.</p>
    /// <p>Subclasses of <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> should emit this signal when the layout of the contents change in order to repaint.</p></div>
    #[inline(always)]
    pub fn update(&self) -> ::qt_core::Signal<(*const ::qt_core::QRectF,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2update(const QRectF&)\0"),
            )
        }
    }

    /// <p>This signal is emitted when the specified <i>block</i> has been updated.</p>
    ///
    /// Returns a built-in Qt signal `QAbstractTextDocumentLayout::updateBlock` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#updateBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the specified <i>block</i> has been updated.</p>
    /// <p>Subclasses of <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> should emit this signal when the layout of <i>block</i> has changed in order to repaint.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub fn update_block(&self) -> ::qt_core::Signal<(*const crate::QTextBlock,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2updateBlock(const QTextBlock&)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the size of the document layout changes to <i>newSize</i>.</p>
    ///
    /// Returns a built-in Qt signal `QAbstractTextDocumentLayout::documentSizeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#documentSizeChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the size of the document layout changes to <i>newSize</i>.</p>
    /// <p>Subclasses of <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> should emit this signal when the document's entire layout size changes. This signal is useful for widgets that display text documents since it enables them to update their scroll bars correctly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#documentSize">documentSize</a>().</p></div>
    #[inline(always)]
    pub fn document_size_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QSizeF,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2documentSizeChanged(const QSizeF&)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the number of pages in the layout changes; <i>newPages</i> is the updated page count.</p>
    ///
    /// Returns a built-in Qt signal `QAbstractTextDocumentLayout::pageCountChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#pageCountChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the number of pages in the layout changes; <i>newPages</i> is the updated page count.</p>
    /// <p>Subclasses of <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> should emit this signal when the number of pages in the layout has changed. Changes to the page count are caused by changes to the layout or the document content itself.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#pageCount">pageCount</a>().</p></div>
    #[inline(always)]
    pub fn page_count_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2pageCountChanged(int)\0"),
            )
        }
    }

    /// <p>Returns the reference of the anchor the given <i>position</i>, or an empty string if no anchor exists at that point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QAbstractTextDocumentLayout::anchorAt(const QPointF& pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#anchorAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the reference of the anchor the given <i>position</i>, or an empty string if no anchor exists at that point.</p></div>
    #[inline(always)]
    pub unsafe fn anchor_at(
        &self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_anchorAt(
            self as *const crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the bounding rectangle of <i>block</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QRectF QAbstractTextDocumentLayout::blockBoundingRect(const QTextBlock& block) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#blockBoundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of <i>block</i>.</p></div>
    #[inline(always)]
    pub unsafe fn block_bounding_rect(
        &self,
        block: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_blockBoundingRect(
            self as *const crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(block)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text document that this layout is operating on.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextDocument* QAbstractTextDocumentLayout::document() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#document">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text document that this layout is operating on.</p></div>
    #[inline(always)]
    pub unsafe fn document(&self) -> ::cpp_core::MutPtr<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_document(
            self as *const crate::QAbstractTextDocumentLayout,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the total size of the document's layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QSizeF QAbstractTextDocumentLayout::documentSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#documentSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the total size of the document's layout.</p>
    /// <p>This information can be used by display widgets to update their scroll bars correctly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#documentSizeChanged">documentSizeChanged</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">QTextDocument::pageSize</a>.</p></div>
    #[inline(always)]
    pub unsafe fn document_size(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_documentSize(
            self as *const crate::QAbstractTextDocumentLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Draws the layout with the given <i>painter</i> using the given <i>context</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAbstractTextDocumentLayout::draw(QPainter* painter, const QAbstractTextDocumentLayout::PaintContext& context)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#draw">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the layout with the given <i>painter</i> using the given <i>context</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw(
        &mut self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        context: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_abstract_text_document_layout::PaintContext>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_draw(
            self as *mut crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::PaintContext>,
            >::cast_into(context)
            .as_raw_ptr(),
        )
    }

    /// <p>Returns the text format at the given position <i>pos</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat QAbstractTextDocumentLayout::formatAt(const QPointF& pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#formatAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format at the given position <i>pos</i>.</p>
    /// <p>This function was introduced in  Qt 5.8.</p></div>
    #[inline(always)]
    pub unsafe fn format_at(
        &self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_formatAt(
            self as *const crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the bounding rectangle of <i>frame</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QRectF QAbstractTextDocumentLayout::frameBoundingRect(QTextFrame* frame) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#frameBoundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of <i>frame</i>.</p></div>
    #[inline(always)]
    pub unsafe fn frame_bounding_rect(
        &self,
        frame: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextFrame>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_frameBoundingRect(
            self as *const crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextFrame>>::cast_into(frame)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a handler for objects of the given <i>objectType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextObjectInterface* QAbstractTextDocumentLayout::handlerForObject(int objectType) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#handlerForObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a handler for objects of the given <i>objectType</i>.</p></div>
    #[inline(always)]
    pub unsafe fn handler_for_object(
        &self,
        object_type: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QTextObjectInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_handlerForObject(
            self as *const crate::QAbstractTextDocumentLayout,
            object_type,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the cursor position for the given <i>point</i> with the specified <i>accuracy</i>. Returns -1 if no valid cursor position was found.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAbstractTextDocumentLayout::hitTest(const QPointF& point, Qt::HitTestAccuracy accuracy) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#hitTest">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor position for the given <i>point</i> with the specified <i>accuracy</i>. Returns -1 if no valid cursor position was found.</p></div>
    #[inline(always)]
    pub unsafe fn hit_test(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        accuracy: ::qt_core::HitTestAccuracy,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_hitTest(
            self as *const crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
            accuracy,
        )
    }

    /// <p>Returns the source of the image at the given position <i>pos</i>, or an empty string if no image exists at that point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QAbstractTextDocumentLayout::imageAt(const QPointF& pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#imageAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the source of the image at the given position <i>pos</i>, or an empty string if no image exists at that point.</p>
    /// <p>This function was introduced in  Qt 5.8.</p></div>
    #[inline(always)]
    pub unsafe fn image_at(
        &self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_imageAt(
            self as *const crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QAbstractTextDocumentLayout::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_metaObject(
            self as *const crate::QAbstractTextDocumentLayout,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the number of pages contained in the layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAbstractTextDocumentLayout::pageCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#pageCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of pages contained in the layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#pageCountChanged">pageCountChanged</a>().</p></div>
    #[inline(always)]
    pub unsafe fn page_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_pageCount(
            self as *const crate::QAbstractTextDocumentLayout,
        )
    }

    /// <p>Returns the paint device used to render the document's layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* QAbstractTextDocumentLayout::paintDevice() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#paintDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paint device used to render the document's layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#setPaintDevice">setPaintDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn paint_device(&self) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_paintDevice(
            self as *const crate::QAbstractTextDocumentLayout,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QAbstractTextDocumentLayout::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_qt_metacall(
            self as *mut crate::QAbstractTextDocumentLayout,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QAbstractTextDocumentLayout::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_qt_metacast(
            self as *mut crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Registers the given <i>component</i> as a handler for items of the given <i>objectType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAbstractTextDocumentLayout::registerHandler(int objectType, QObject* component)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#registerHandler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Registers the given <i>component</i> as a handler for items of the given <i>objectType</i>.</p>
    /// <p><b>Note: </b>registerHandler() has to be called once for each object type. This means that there is only one handler for multiple replacement characters of the same object type.</p><p>The text document layout does not take ownership of <code>component</code>.</p></div>
    #[inline(always)]
    pub unsafe fn register_handler(
        &mut self,
        object_type: ::std::os::raw::c_int,
        component: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_registerHandler(
            self as *mut crate::QAbstractTextDocumentLayout,
            object_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(component)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the paint device used for rendering the document's layout to the given <i>device</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAbstractTextDocumentLayout::setPaintDevice(QPaintDevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#setPaintDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the paint device used for rendering the document's layout to the given <i>device</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#paintDevice">paintDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_paint_device(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_setPaintDevice(
            self as *mut crate::QAbstractTextDocumentLayout,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QAbstractTextDocumentLayout::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QAbstractTextDocumentLayout::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Unregisters the given <i>component</i> as a handler for items of the given <i>objectType</i>, or any handler if the <i>component</i> is not specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAbstractTextDocumentLayout::unregisterHandler(int objectType, QObject* component = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#unregisterHandler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unregisters the given <i>component</i> as a handler for items of the given <i>objectType</i>, or any handler if the <i>component</i> is not specified.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn unregister_handler_2a(
        &mut self,
        object_type: ::std::os::raw::c_int,
        component: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_unregisterHandler(
            self as *mut crate::QAbstractTextDocumentLayout,
            object_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(component)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Unregisters the given <i>component</i> as a handler for items of the given <i>objectType</i>, or any handler if the <i>component</i> is not specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAbstractTextDocumentLayout::unregisterHandler(int objectType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#unregisterHandler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unregisters the given <i>component</i> as a handler for items of the given <i>objectType</i>, or any handler if the <i>component</i> is not specified.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn unregister_handler_1a(&mut self, object_type: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_unregisterHandler1(
            self as *mut crate::QAbstractTextDocumentLayout,
            object_type,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> class allows drawing of custom text objects in <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>s.</p>
///
/// C++ class: <span style='color: green;'>```QTextObjectInterface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> class allows drawing of custom text objects in <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>s.</p>
/// <p>A text object describes the structure of one or more elements in a text document; for instance, images imported from HTML are implemented using text objects. A text object knows how to lay out and draw its elements when a document is being rendered.</p>
/// <p>Qt allows custom text objects to be inserted into a document by registering a custom <a href="http://doc.qt.io/qt-5/qtextformat.html#objectType">object type</a> with <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>. A <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> must also be implemented for this type and be <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#registerHandler">registered</a> with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> of the document. When the object type is encountered while rendering a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, the <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#intrinsicSize">intrinsicSize</a>() and <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#drawObject">drawObject</a>() functions of the interface are called.</p>
/// <p>The following list explains the required steps of inserting a custom text object into a document:</p>
/// <ul>
/// <li>Choose an <i>objectType</i>. The <i>objectType</i> is an integer with a value greater or equal to <a href="http://doc.qt.io/qt-5/qtextformat.html#ObjectTypes-enum">QTextFormat::UserObject</a>.</li>
/// <li>Create a <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> object and set the object type to the chosen type using the setObjectType() function.</li>
/// <li>Implement the <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> class.</li>
/// <li>Call <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#registerHandler">QAbstractTextDocumentLayout::registerHandler</a>() with an instance of your <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> subclass to register your object type.</li>
/// <li>Insert <a href="http://doc.qt.io/qt-5/qchar.html#SpecialCharacter-enum">QChar::ObjectReplacementCharacter</a> with the aforementioned <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> of the chosen object type into the document. As mentioned, the functions of <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#intrinsicSize">intrinsicSize()</a> and <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#drawObject">drawObject()</a> will then be called with the <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> as parameter whenever the replacement character is encountered.</li>
/// </ul>
/// <p>A class implementing a text object needs to inherit both <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> and <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a>. <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> must be the first class inherited. For instance:</p>
/// <pre class="cpp">
///
///   <span class="keyword">class</span> SvgTextObject : <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qobject.html">QObject</a></span><span class="operator">,</span> <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a></span>
///   {
/// &#32;     Q_OBJECT
/// &#32;     Q_INTERFACES(<span class="type"><a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a></span>)
///
/// </pre>
/// <p>The data of a text object is usually stored in the <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> using <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">QTextCharFormat::setProperty</a>(), and then retrieved with <a href="http://doc.qt.io/qt-5/qtextformat.html#property">QTextCharFormat::property</a>().</p>
/// <p><b>Warning:</b> Copy and Paste operations ignore custom text objects.</p></div>
#[repr(C)]
pub struct QTextObjectInterface {
    _unused: u8,
}
impl QTextObjectInterface {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> class allows drawing of custom text objects in <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>s.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextObjectInterface& QTextObjectInterface::operator=(const QTextObjectInterface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> class allows drawing of custom text objects in <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>s.</p>
    /// <p>A text object describes the structure of one or more elements in a text document; for instance, images imported from HTML are implemented using text objects. A text object knows how to lay out and draw its elements when a document is being rendered.</p>
    /// <p>Qt allows custom text objects to be inserted into a document by registering a custom <a href="http://doc.qt.io/qt-5/qtextformat.html#objectType">object type</a> with <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>. A <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> must also be implemented for this type and be <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#registerHandler">registered</a> with the <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> of the document. When the object type is encountered while rendering a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, the <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#intrinsicSize">intrinsicSize</a>() and <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#drawObject">drawObject</a>() functions of the interface are called.</p>
    /// <p>The following list explains the required steps of inserting a custom text object into a document:</p>
    /// <ul>
    /// <li>Choose an <i>objectType</i>. The <i>objectType</i> is an integer with a value greater or equal to <a href="http://doc.qt.io/qt-5/qtextformat.html#ObjectTypes-enum">QTextFormat::UserObject</a>.</li>
    /// <li>Create a <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> object and set the object type to the chosen type using the setObjectType() function.</li>
    /// <li>Implement the <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> class.</li>
    /// <li>Call <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html#registerHandler">QAbstractTextDocumentLayout::registerHandler</a>() with an instance of your <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> subclass to register your object type.</li>
    /// <li>Insert <a href="http://doc.qt.io/qt-5/qchar.html#SpecialCharacter-enum">QChar::ObjectReplacementCharacter</a> with the aforementioned <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> of the chosen object type into the document. As mentioned, the functions of <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a> <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#intrinsicSize">intrinsicSize()</a> and <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#drawObject">drawObject()</a> will then be called with the <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> as parameter whenever the replacement character is encountered.</li>
    /// </ul>
    /// <p>A class implementing a text object needs to inherit both <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> and <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a>. <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> must be the first class inherited. For instance:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">class</span> SvgTextObject : <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qobject.html">QObject</a></span><span class="operator">,</span> <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a></span>
    ///   {
    /// &#32;     Q_OBJECT
    /// &#32;     Q_INTERFACES(<span class="type"><a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a></span>)
    ///
    /// </pre>
    /// <p>The data of a text object is usually stored in the <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> using <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">QTextCharFormat::setProperty</a>(), and then retrieved with <a href="http://doc.qt.io/qt-5/qtextformat.html#property">QTextCharFormat::property</a>().</p>
    /// <p><b>Warning:</b> Copy and Paste operations ignore custom text objects.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextObjectInterface>>,
    ) -> ::cpp_core::MutRef<crate::QTextObjectInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextObjectInterface_operator_(
            self as *mut crate::QTextObjectInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextObjectInterface>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Draws this text object using the specified <i>painter</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QTextObjectInterface::drawObject(QPainter* painter, const QRectF& rect, QTextDocument* doc, int posInDocument, const QTextFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#drawObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws this text object using the specified <i>painter</i>.</p>
    /// <p>The size of the rectangle, <i>rect</i>, to draw in is the size previously calculated by <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#intrinsicSize">intrinsicSize</a>(). The rectangles position is relative to the <i>painter</i>.</p>
    /// <p>You also get the document (<i>doc</i>) and the position (<i>posInDocument</i>) of the <i>format</i> in that document.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#intrinsicSize">intrinsicSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_object(
        &mut self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        doc: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextDocument>>,
        pos_in_document: ::std::os::raw::c_int,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextObjectInterface_drawObject(
            self as *mut crate::QTextObjectInterface,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextDocument>>::cast_into(doc)
                .as_mut_raw_ptr(),
            pos_in_document,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>The intrinsicSize() function returns the size of the text object represented by <i>format</i> in the given document (<i>doc</i>) at the given position (<i>posInDocument</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QSizeF QTextObjectInterface::intrinsicSize(QTextDocument* doc, int posInDocument, const QTextFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#intrinsicSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The intrinsicSize() function returns the size of the text object represented by <i>format</i> in the given document (<i>doc</i>) at the given position (<i>posInDocument</i>).</p>
    /// <p>The size calculated will be used for subsequent calls to <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#drawObject">drawObject</a>() for this <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#drawObject">drawObject</a>().</p></div>
    #[inline(always)]
    pub unsafe fn intrinsic_size(
        &mut self,
        doc: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextDocument>>,
        pos_in_document: ::std::os::raw::c_int,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextObjectInterface_intrinsicSize(
            self as *mut crate::QTextObjectInterface,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextDocument>>::cast_into(doc)
                .as_mut_raw_ptr(),
            pos_in_document,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_accessible {
    //! C++ type: <span style='color: green;'>```QAccessible```</span>

    /// <p>This enum type defines accessible event types.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QAccessible::Event```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#Event-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type defines accessible event types.</p>
    /// <p>Internal: Used when creating subclasses of <a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a>.</p>
    ///
    /// <p>The values for this enum are defined to be the same as those defined in the <a href="http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/_accessible_event_i_d_8idl.html">IAccessible2</a> and <a href="http://msdn.microsoft.com/en-us/library/dd318066.aspx">MSAA</a> specifications.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Event(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Event {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Event(value)
        }
    }

    impl From<Event> for ::std::os::raw::c_int {
        fn from(value: Event) -> Self {
            value.0
        }
    }

    impl Event {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Event {
        /// A sound has been played by an object The <a href="http://doc.qt.io/qt-5/qaccessible-state.html">QAccessible::State</a> of an object has changed. This value is used internally for the <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html">QAccessibleStateChangeEvent</a>. (C++ enum variant: <span style='color: green;'>```SoundPlayed = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const SoundPlayed: crate::q_accessible::Event = crate::q_accessible::Event(1);
        /// A system alert (e.g., a message from a <a href="http://doc.qt.io/qt-5/qmessagebox.html">QMessageBox</a>) (C++ enum variant: <span style='color: green;'>```Alert = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Alert: crate::q_accessible::Event = crate::q_accessible::Event(2);
        /// A window has been activated (i.e., a new window has gained focus on the desktop). (C++ enum variant: <span style='color: green;'>```ForegroundChanged = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ForegroundChanged: crate::q_accessible::Event = crate::q_accessible::Event(3);
        /// A menu has been opened on the menubar (Qt uses PopupMenuStart for all menus). (C++ enum variant: <span style='color: green;'>```MenuStart = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const MenuStart: crate::q_accessible::Event = crate::q_accessible::Event(4);
        /// A menu has been closed (Qt uses PopupMenuEnd for all menus). (C++ enum variant: <span style='color: green;'>```MenuEnd = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const MenuEnd: crate::q_accessible::Event = crate::q_accessible::Event(5);
        /// A pop-up menu has opened. (C++ enum variant: <span style='color: green;'>```PopupMenuStart = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const PopupMenuStart: crate::q_accessible::Event = crate::q_accessible::Event(6);
        /// A pop-up menu has closed. (C++ enum variant: <span style='color: green;'>```PopupMenuEnd = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const PopupMenuEnd: crate::q_accessible::Event = crate::q_accessible::Event(7);
        /// Context help (<a href="http://doc.qt.io/qt-5/qwhatsthis.html">QWhatsThis</a>) for an object is initiated. (C++ enum variant: <span style='color: green;'>```ContextHelpStart = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const ContextHelpStart: crate::q_accessible::Event = crate::q_accessible::Event(12);
        /// Context help (<a href="http://doc.qt.io/qt-5/qwhatsthis.html">QWhatsThis</a>) for an object is finished. (C++ enum variant: <span style='color: green;'>```ContextHelpEnd = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const ContextHelpEnd: crate::q_accessible::Event = crate::q_accessible::Event(13);
        /// A drag and drop operation is about to be initiated. (C++ enum variant: <span style='color: green;'>```DragDropStart = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const DragDropStart: crate::q_accessible::Event = crate::q_accessible::Event(14);
        /// A drag and drop operation is about to finished. (C++ enum variant: <span style='color: green;'>```DragDropEnd = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const DragDropEnd: crate::q_accessible::Event = crate::q_accessible::Event(15);
        /// A dialog (<a href="http://doc.qt.io/qt-5/qdialog.html">QDialog</a>) has been set visible. (C++ enum variant: <span style='color: green;'>```DialogStart = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const DialogStart: crate::q_accessible::Event = crate::q_accessible::Event(16);
        /// A dialog (<a href="http://doc.qt.io/qt-5/qdialog.html">QDialog</a>) has been hidden (C++ enum variant: <span style='color: green;'>```DialogEnd = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const DialogEnd: crate::q_accessible::Event = crate::q_accessible::Event(17);
        /// A scrollbar scroll operation is about to start; this may be caused by a mouse press on the slider handle, for example. (C++ enum variant: <span style='color: green;'>```ScrollingStart = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScrollingStart: crate::q_accessible::Event = crate::q_accessible::Event(18);
        /// A scrollbar scroll operation has ended (the mouse has released the slider handle). (C++ enum variant: <span style='color: green;'>```ScrollingEnd = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScrollingEnd: crate::q_accessible::Event = crate::q_accessible::Event(19);
        /// A menu item is triggered. (C++ enum variant: <span style='color: green;'>```MenuCommand = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const MenuCommand: crate::q_accessible::Event = crate::q_accessible::Event(24);
        /// An action has been changed. (C++ enum variant: <span style='color: green;'>```ActionChanged = 257```</span>)
        #[allow(non_upper_case_globals)]
        pub const ActionChanged: crate::q_accessible::Event = crate::q_accessible::Event(257);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ActiveDescendantChanged = 258```</span>)
        #[allow(non_upper_case_globals)]
        pub const ActiveDescendantChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(258);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AttributeChanged = 259```</span>)
        #[allow(non_upper_case_globals)]
        pub const AttributeChanged: crate::q_accessible::Event = crate::q_accessible::Event(259);
        /// The contents of a text document have changed. (C++ enum variant: <span style='color: green;'>```DocumentContentChanged = 260```</span>)
        #[allow(non_upper_case_globals)]
        pub const DocumentContentChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(260);
        /// A document has been loaded. (C++ enum variant: <span style='color: green;'>```DocumentLoadComplete = 261```</span>)
        #[allow(non_upper_case_globals)]
        pub const DocumentLoadComplete: crate::q_accessible::Event =
            crate::q_accessible::Event(261);
        /// A document load has been stopped. (C++ enum variant: <span style='color: green;'>```DocumentLoadStopped = 262```</span>)
        #[allow(non_upper_case_globals)]
        pub const DocumentLoadStopped: crate::q_accessible::Event = crate::q_accessible::Event(262);
        /// A document reload has been initiated. (C++ enum variant: <span style='color: green;'>```DocumentReload = 263```</span>)
        #[allow(non_upper_case_globals)]
        pub const DocumentReload: crate::q_accessible::Event = crate::q_accessible::Event(263);
        /// The end position of the display text for a hypertext link has changed. (C++ enum variant: <span style='color: green;'>```HyperlinkEndIndexChanged = 264```</span>)
        #[allow(non_upper_case_globals)]
        pub const HyperlinkEndIndexChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(264);
        /// The number of anchors in a hypertext link has changed, perhaps because the display text has been split to provide more than one link. (C++ enum variant: <span style='color: green;'>```HyperlinkNumberOfAnchorsChanged = 265```</span>)
        #[allow(non_upper_case_globals)]
        pub const HyperlinkNumberOfAnchorsChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(265);
        /// The link for the selected hypertext link has changed. (C++ enum variant: <span style='color: green;'>```HyperlinkSelectedLinkChanged = 266```</span>)
        #[allow(non_upper_case_globals)]
        pub const HyperlinkSelectedLinkChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(266);
        /// A hypertext link has been activated, perhaps by being clicked or via a key press. (C++ enum variant: <span style='color: green;'>```HypertextLinkActivated = 267```</span>)
        #[allow(non_upper_case_globals)]
        pub const HypertextLinkActivated: crate::q_accessible::Event =
            crate::q_accessible::Event(267);
        /// A hypertext link has been selected. (C++ enum variant: <span style='color: green;'>```HypertextLinkSelected = 268```</span>)
        #[allow(non_upper_case_globals)]
        pub const HypertextLinkSelected: crate::q_accessible::Event =
            crate::q_accessible::Event(268);
        /// The start position of the display text for a hypertext link has changed. (C++ enum variant: <span style='color: green;'>```HyperlinkStartIndexChanged = 269```</span>)
        #[allow(non_upper_case_globals)]
        pub const HyperlinkStartIndexChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(269);
        /// The display text for a hypertext link has changed. (C++ enum variant: <span style='color: green;'>```HypertextChanged = 270```</span>)
        #[allow(non_upper_case_globals)]
        pub const HypertextChanged: crate::q_accessible::Event = crate::q_accessible::Event(270);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```HypertextNLinksChanged = 271```</span>)
        #[allow(non_upper_case_globals)]
        pub const HypertextNLinksChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(271);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ObjectAttributeChanged = 272```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectAttributeChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(272);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```PageChanged = 273```</span>)
        #[allow(non_upper_case_globals)]
        pub const PageChanged: crate::q_accessible::Event = crate::q_accessible::Event(273);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```SectionChanged = 274```</span>)
        #[allow(non_upper_case_globals)]
        pub const SectionChanged: crate::q_accessible::Event = crate::q_accessible::Event(274);
        /// A table caption has been changed. (C++ enum variant: <span style='color: green;'>```TableCaptionChanged = 275```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableCaptionChanged: crate::q_accessible::Event = crate::q_accessible::Event(275);
        /// The description of a table column, typically found in the column's header, has been changed. (C++ enum variant: <span style='color: green;'>```TableColumnDescriptionChanged = 276```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableColumnDescriptionChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(276);
        /// A table column header has been changed. The model providing data for a table has been changed. (C++ enum variant: <span style='color: green;'>```TableColumnHeaderChanged = 277```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableColumnHeaderChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(277);
        /// C++ enum variant: <span style='color: green;'>```TableModelChanged = 278```</span>
        #[allow(non_upper_case_globals)]
        pub const TableModelChanged: crate::q_accessible::Event = crate::q_accessible::Event(278);
        /// The description of a table row, typically found in the row's header, has been changed. (C++ enum variant: <span style='color: green;'>```TableRowDescriptionChanged = 279```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableRowDescriptionChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(279);
        /// A table row header has been changed. (C++ enum variant: <span style='color: green;'>```TableRowHeaderChanged = 280```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableRowHeaderChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(280);
        /// The summary of a table has been changed. The caret has moved in an editable widget. The caret represents the cursor position in an editable widget with the input focus. (C++ enum variant: <span style='color: green;'>```TableSummaryChanged = 281```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableSummaryChanged: crate::q_accessible::Event = crate::q_accessible::Event(281);
        /// C++ enum variant: <span style='color: green;'>```TextAttributeChanged = 282```</span>
        #[allow(non_upper_case_globals)]
        pub const TextAttributeChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(282);
        /// C++ enum variant: <span style='color: green;'>```TextCaretMoved = 283```</span>
        #[allow(non_upper_case_globals)]
        pub const TextCaretMoved: crate::q_accessible::Event = crate::q_accessible::Event(283);
        /// A text column has been changed. Text has been inserted into an editable widget. Text has been removed from an editable widget. The selected text has changed in an editable widget. The text has been update in an editable widget. The <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Value</a> of an object has changed. (C++ enum variant: <span style='color: green;'>```TextColumnChanged = 285```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextColumnChanged: crate::q_accessible::Event = crate::q_accessible::Event(285);
        /// C++ enum variant: <span style='color: green;'>```TextInserted = 286```</span>
        #[allow(non_upper_case_globals)]
        pub const TextInserted: crate::q_accessible::Event = crate::q_accessible::Event(286);
        /// C++ enum variant: <span style='color: green;'>```TextRemoved = 287```</span>
        #[allow(non_upper_case_globals)]
        pub const TextRemoved: crate::q_accessible::Event = crate::q_accessible::Event(287);
        /// C++ enum variant: <span style='color: green;'>```TextUpdated = 288```</span>
        #[allow(non_upper_case_globals)]
        pub const TextUpdated: crate::q_accessible::Event = crate::q_accessible::Event(288);
        /// C++ enum variant: <span style='color: green;'>```TextSelectionChanged = 289```</span>
        #[allow(non_upper_case_globals)]
        pub const TextSelectionChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(289);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```VisibleDataChanged = 290```</span>)
        #[allow(non_upper_case_globals)]
        pub const VisibleDataChanged: crate::q_accessible::Event = crate::q_accessible::Event(290);
        /// A new object is created. (C++ enum variant: <span style='color: green;'>```ObjectCreated = 32768```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectCreated: crate::q_accessible::Event = crate::q_accessible::Event(32768);
        /// An object is deleted. (C++ enum variant: <span style='color: green;'>```ObjectDestroyed = 32769```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectDestroyed: crate::q_accessible::Event = crate::q_accessible::Event(32769);
        /// An object is displayed; for example, with <a href="http://doc.qt.io/qt-5/qwidget.html#show">QWidget::show</a>(). (C++ enum variant: <span style='color: green;'>```ObjectShow = 32770```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectShow: crate::q_accessible::Event = crate::q_accessible::Event(32770);
        /// An object is hidden; for example, with <a href="http://doc.qt.io/qt-5/qwidget.html#hide">QWidget::hide</a>(). Any children the object that is hidden has do not send this event. It is not sent when an object is hidden as it is being obcured by others. (C++ enum variant: <span style='color: green;'>```ObjectHide = 32771```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectHide: crate::q_accessible::Event = crate::q_accessible::Event(32771);
        /// A layout or item view has added, removed, or moved an object (Qt does not use this event). (C++ enum variant: <span style='color: green;'>```ObjectReorder = 32772```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectReorder: crate::q_accessible::Event = crate::q_accessible::Event(32772);
        /// An object has gained keyboard focus. (C++ enum variant: <span style='color: green;'>```Focus = 32773```</span>)
        #[allow(non_upper_case_globals)]
        pub const Focus: crate::q_accessible::Event = crate::q_accessible::Event(32773);
        /// The selection has changed in a menu or item view. (C++ enum variant: <span style='color: green;'>```Selection = 32774```</span>)
        #[allow(non_upper_case_globals)]
        pub const Selection: crate::q_accessible::Event = crate::q_accessible::Event(32774);
        /// An item has been added to the selection in an item view. (C++ enum variant: <span style='color: green;'>```SelectionAdd = 32775```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectionAdd: crate::q_accessible::Event = crate::q_accessible::Event(32775);
        /// An item has been removed from an item view selection. (C++ enum variant: <span style='color: green;'>```SelectionRemove = 32776```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectionRemove: crate::q_accessible::Event = crate::q_accessible::Event(32776);
        /// Several changes to a selection has occurred in an item view. (C++ enum variant: <span style='color: green;'>```SelectionWithin = 32777```</span>)
        #[allow(non_upper_case_globals)]
        pub const SelectionWithin: crate::q_accessible::Event = crate::q_accessible::Event(32777);
        /// C++ enum variant: <span style='color: green;'>```StateChanged = 32778```</span>
        #[allow(non_upper_case_globals)]
        pub const StateChanged: crate::q_accessible::Event = crate::q_accessible::Event(32778);
        /// An object's location on the screen has changed. (C++ enum variant: <span style='color: green;'>```LocationChanged = 32779```</span>)
        #[allow(non_upper_case_globals)]
        pub const LocationChanged: crate::q_accessible::Event = crate::q_accessible::Event(32779);
        /// The <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Name</a> property of an object has changed. (C++ enum variant: <span style='color: green;'>```NameChanged = 32780```</span>)
        #[allow(non_upper_case_globals)]
        pub const NameChanged: crate::q_accessible::Event = crate::q_accessible::Event(32780);
        /// The object's <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Description</a> changed. (C++ enum variant: <span style='color: green;'>```DescriptionChanged = 32781```</span>)
        #[allow(non_upper_case_globals)]
        pub const DescriptionChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(32781);
        /// C++ enum variant: <span style='color: green;'>```ValueChanged = 32782```</span>
        #[allow(non_upper_case_globals)]
        pub const ValueChanged: crate::q_accessible::Event = crate::q_accessible::Event(32782);
        /// An object's parent object changed. (C++ enum variant: <span style='color: green;'>```ParentChanged = 32783```</span>)
        #[allow(non_upper_case_globals)]
        pub const ParentChanged: crate::q_accessible::Event = crate::q_accessible::Event(32783);
        /// The <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Help</a> text property of an object has changed. (C++ enum variant: <span style='color: green;'>```HelpChanged = 32928```</span>)
        #[allow(non_upper_case_globals)]
        pub const HelpChanged: crate::q_accessible::Event = crate::q_accessible::Event(32928);
        /// The default QAccessible::Action for the accessible object has changed. (C++ enum variant: <span style='color: green;'>```DefaultActionChanged = 32944```</span>)
        #[allow(non_upper_case_globals)]
        pub const DefaultActionChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(32944);
        /// The keyboard accelerator for an action has been changed. (C++ enum variant: <span style='color: green;'>```AcceleratorChanged = 32960```</span>)
        #[allow(non_upper_case_globals)]
        pub const AcceleratorChanged: crate::q_accessible::Event =
            crate::q_accessible::Event(32960);
        /// C++ enum variant: <span style='color: green;'>```InvalidEvent = 32961```</span>
        #[allow(non_upper_case_globals)]
        pub const InvalidEvent: crate::q_accessible::Event = crate::q_accessible::Event(32961);
    }

    /// <p>This structure defines bit flags that indicate the state of an accessible object. The values are:</p>
    ///
    /// C++ class: <span style='color: green;'>```QAccessible::State```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible-state.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This structure defines bit flags that indicate the state of an accessible object. The values are:</p>
    /// <div class="table"><table class="valuelist"><tbody><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tbldscr">Description</th></tr>
    /// <tr><td class="topAlign"><code>active</code></td><td class="topAlign">The object is the active window or the active sub-element in a container (that would get focus when focusing the container).</td></tr>
    /// <tr><td class="topAlign"><code>adjustable</code></td><td class="topAlign">The object represents an adjustable value, e.g. sliders.</td></tr>
    /// <tr><td class="topAlign"><code>animated</code></td><td class="topAlign">The object's appearance changes frequently.</td></tr>
    /// <tr><td class="topAlign"><code>busy</code></td><td class="topAlign">The object cannot accept input at the moment.</td></tr>
    /// <tr><td class="topAlign"><code>checkable</code></td><td class="topAlign">The object is checkable.</td></tr>
    /// <tr><td class="topAlign"><code>checked</code></td><td class="topAlign">The object's check box is checked.</td></tr>
    /// <tr><td class="topAlign"><code>checkStateMixed</code></td><td class="topAlign">The third state of checkboxes (half checked in tri-state check boxes).</td></tr>
    /// <tr><td class="topAlign"><code>collapsed</code></td><td class="topAlign">The object is collapsed, e.g. a closed listview item, or an iconified window.</td></tr>
    /// <tr><td class="topAlign"><code>defaultButton</code></td><td class="topAlign">The object represents the default button in a dialog.</td></tr>
    /// <tr><td class="topAlign"><code>defunct</code></td><td class="topAlign">The object no longer exists.</td></tr>
    /// <tr><td class="topAlign"><code>editable</code></td><td class="topAlign">The object has a text carret (and often implements the text interface).</td></tr>
    /// <tr><td class="topAlign"><code>expandable</code></td><td class="topAlign">The object is expandable, mostly used for cells in a tree view.</td></tr>
    /// <tr><td class="topAlign"><code>expanded</code></td><td class="topAlign">The object is expanded, currently its children are visible.</td></tr>
    /// <tr><td class="topAlign"><code>extSelectable</code></td><td class="topAlign">The object supports extended selection.</td></tr>
    /// <tr><td class="topAlign"><code>focusable</code></td><td class="topAlign">The object can receive focus. Only objects in the active window can receive focus.</td></tr>
    /// <tr><td class="topAlign"><code>focused</code></td><td class="topAlign">The object has keyboard focus.</td></tr>
    /// <tr><td class="topAlign"><code>hasPopup</code></td><td class="topAlign">The object opens a popup.</td></tr>
    /// <tr><td class="topAlign"><code>hotTracked</code></td><td class="topAlign">The object's appearance is sensitive to the mouse cursor position.</td></tr>
    /// <tr><td class="topAlign"><code>invalid</code></td><td class="topAlign">The object is no longer valid (because it has been deleted).</td></tr>
    /// <tr><td class="topAlign"><code>invalidEntry</code></td><td class="topAlign">Input validation current input invalid.</td></tr>
    /// <tr><td class="topAlign"><code>invisible</code></td><td class="topAlign">The object is not visible to the user.</td></tr>
    /// <tr><td class="topAlign"><code>linked</code></td><td class="topAlign">The object is linked to another object, e.g. a hyperlink.</td></tr>
    /// <tr><td class="topAlign"><code>marqueed</code></td><td class="topAlign">The object displays scrolling contents, e.g. a log view.</td></tr>
    /// <tr><td class="topAlign"><code>modal</code></td><td class="topAlign">The object blocks input from other objects.</td></tr>
    /// <tr><td class="topAlign"><code>movable</code></td><td class="topAlign">The object can be moved.</td></tr>
    /// <tr><td class="topAlign"><code>multiLine</code></td><td class="topAlign">The object has multiple lines of text (word wrap), as opposed to a single line.</td></tr>
    /// <tr><td class="topAlign"><code>multiSelectable</code></td><td class="topAlign">The object supports multiple selected items.</td></tr>
    /// <tr><td class="topAlign"><code>offscreen</code></td><td class="topAlign">The object is clipped by the visible area. Objects that are off screen are also invisible.</td></tr>
    /// <tr><td class="topAlign"><code>passwordEdit</code></td><td class="topAlign">The object is a password field, e.g. a line edit for entering a Password.</td></tr>
    /// <tr><td class="topAlign"><code>playsSound</code></td><td class="topAlign">The object produces sound when interacted with.</td></tr>
    /// <tr><td class="topAlign"><code>pressed</code></td><td class="topAlign">The object is pressed.</td></tr>
    /// <tr><td class="topAlign"><code>readOnly</code></td><td class="topAlign">The object can usually be edited, but is explicitly set to read-only.</td></tr>
    /// <tr><td class="topAlign"><code>searchEdit</code></td><td class="topAlign">The object is a line edit that is the input for search queries.</td></tr>
    /// <tr><td class="topAlign"><code>selectable</code></td><td class="topAlign">The object is selectable.</td></tr>
    /// <tr><td class="topAlign"><code>selectableText</code></td><td class="topAlign">The object has text which can be selected. This is different from selectable which refers to the object's children.</td></tr>
    /// <tr><td class="topAlign"><code>selected</code></td><td class="topAlign">The object is selected, this is independent of text selection.</td></tr>
    /// <tr><td class="topAlign"><code>selfVoicing</code></td><td class="topAlign">The object describes itself through speech or sound.</td></tr>
    /// <tr><td class="topAlign"><code>sizeable</code></td><td class="topAlign">The object can be resized, e.g. top-level windows.</td></tr>
    /// <tr><td class="topAlign"><code>summaryElement</code></td><td class="topAlign">The object summarizes the state of the window and should be treated with priority.</td></tr>
    /// <tr><td class="topAlign"><code>supportsAutoCompletion</code></td><td class="topAlign">The object has auto-completion, for example in line edits or combo boxes.</td></tr>
    /// <tr><td class="topAlign"><code>traversed</code></td><td class="topAlign">The object is linked and has been visited.</td></tr>
    /// <tr><td class="topAlign"><code>updatesFrequently</code></td><td class="topAlign">The object changes frequently and needs to be refreshed when accessing it.</td></tr>
    /// <tr><td class="topAlign"><code>disabled</code></td><td class="topAlign">The object is unavailable to the user, e.g. a disabled widget.</td></tr>
    /// </tbody></table></div>
    /// <p>Implementations of <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#statex">QAccessibleInterface::state</a>() return a combination of these flags.</p></div>
    #[repr(C)]
    pub struct State {
        _unused: u8,
    }
    impl State {
        /// Returns the value of the <span style='color: green;'>```active```</span> field.
        #[inline(always)]
        pub unsafe fn active(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_active(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```animated```</span> field.
        #[inline(always)]
        pub unsafe fn animated(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_animated(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```busy```</span> field.
        #[inline(always)]
        pub unsafe fn busy(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_busy(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```checkStateMixed```</span> field.
        #[inline(always)]
        pub unsafe fn check_state_mixed(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_checkStateMixed(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```checkable```</span> field.
        #[inline(always)]
        pub unsafe fn checkable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_checkable(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```checked```</span> field.
        #[inline(always)]
        pub unsafe fn checked(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_checked(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```collapsed```</span> field.
        #[inline(always)]
        pub unsafe fn collapsed(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_collapsed(
                self as *const crate::q_accessible::State,
            )
        }

        /// <p>This structure defines bit flags that indicate the state of an accessible object. The values are:</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QAccessible::State& QAccessible::State::operator=(const QAccessible::State& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qaccessible-state.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This structure defines bit flags that indicate the state of an accessible object. The values are:</p>
        /// <div class="table"><table class="valuelist"><tbody><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tbldscr">Description</th></tr>
        /// <tr><td class="topAlign"><code>active</code></td><td class="topAlign">The object is the active window or the active sub-element in a container (that would get focus when focusing the container).</td></tr>
        /// <tr><td class="topAlign"><code>adjustable</code></td><td class="topAlign">The object represents an adjustable value, e.g. sliders.</td></tr>
        /// <tr><td class="topAlign"><code>animated</code></td><td class="topAlign">The object's appearance changes frequently.</td></tr>
        /// <tr><td class="topAlign"><code>busy</code></td><td class="topAlign">The object cannot accept input at the moment.</td></tr>
        /// <tr><td class="topAlign"><code>checkable</code></td><td class="topAlign">The object is checkable.</td></tr>
        /// <tr><td class="topAlign"><code>checked</code></td><td class="topAlign">The object's check box is checked.</td></tr>
        /// <tr><td class="topAlign"><code>checkStateMixed</code></td><td class="topAlign">The third state of checkboxes (half checked in tri-state check boxes).</td></tr>
        /// <tr><td class="topAlign"><code>collapsed</code></td><td class="topAlign">The object is collapsed, e.g. a closed listview item, or an iconified window.</td></tr>
        /// <tr><td class="topAlign"><code>defaultButton</code></td><td class="topAlign">The object represents the default button in a dialog.</td></tr>
        /// <tr><td class="topAlign"><code>defunct</code></td><td class="topAlign">The object no longer exists.</td></tr>
        /// <tr><td class="topAlign"><code>editable</code></td><td class="topAlign">The object has a text carret (and often implements the text interface).</td></tr>
        /// <tr><td class="topAlign"><code>expandable</code></td><td class="topAlign">The object is expandable, mostly used for cells in a tree view.</td></tr>
        /// <tr><td class="topAlign"><code>expanded</code></td><td class="topAlign">The object is expanded, currently its children are visible.</td></tr>
        /// <tr><td class="topAlign"><code>extSelectable</code></td><td class="topAlign">The object supports extended selection.</td></tr>
        /// <tr><td class="topAlign"><code>focusable</code></td><td class="topAlign">The object can receive focus. Only objects in the active window can receive focus.</td></tr>
        /// <tr><td class="topAlign"><code>focused</code></td><td class="topAlign">The object has keyboard focus.</td></tr>
        /// <tr><td class="topAlign"><code>hasPopup</code></td><td class="topAlign">The object opens a popup.</td></tr>
        /// <tr><td class="topAlign"><code>hotTracked</code></td><td class="topAlign">The object's appearance is sensitive to the mouse cursor position.</td></tr>
        /// <tr><td class="topAlign"><code>invalid</code></td><td class="topAlign">The object is no longer valid (because it has been deleted).</td></tr>
        /// <tr><td class="topAlign"><code>invalidEntry</code></td><td class="topAlign">Input validation current input invalid.</td></tr>
        /// <tr><td class="topAlign"><code>invisible</code></td><td class="topAlign">The object is not visible to the user.</td></tr>
        /// <tr><td class="topAlign"><code>linked</code></td><td class="topAlign">The object is linked to another object, e.g. a hyperlink.</td></tr>
        /// <tr><td class="topAlign"><code>marqueed</code></td><td class="topAlign">The object displays scrolling contents, e.g. a log view.</td></tr>
        /// <tr><td class="topAlign"><code>modal</code></td><td class="topAlign">The object blocks input from other objects.</td></tr>
        /// <tr><td class="topAlign"><code>movable</code></td><td class="topAlign">The object can be moved.</td></tr>
        /// <tr><td class="topAlign"><code>multiLine</code></td><td class="topAlign">The object has multiple lines of text (word wrap), as opposed to a single line.</td></tr>
        /// <tr><td class="topAlign"><code>multiSelectable</code></td><td class="topAlign">The object supports multiple selected items.</td></tr>
        /// <tr><td class="topAlign"><code>offscreen</code></td><td class="topAlign">The object is clipped by the visible area. Objects that are off screen are also invisible.</td></tr>
        /// <tr><td class="topAlign"><code>passwordEdit</code></td><td class="topAlign">The object is a password field, e.g. a line edit for entering a Password.</td></tr>
        /// <tr><td class="topAlign"><code>playsSound</code></td><td class="topAlign">The object produces sound when interacted with.</td></tr>
        /// <tr><td class="topAlign"><code>pressed</code></td><td class="topAlign">The object is pressed.</td></tr>
        /// <tr><td class="topAlign"><code>readOnly</code></td><td class="topAlign">The object can usually be edited, but is explicitly set to read-only.</td></tr>
        /// <tr><td class="topAlign"><code>searchEdit</code></td><td class="topAlign">The object is a line edit that is the input for search queries.</td></tr>
        /// <tr><td class="topAlign"><code>selectable</code></td><td class="topAlign">The object is selectable.</td></tr>
        /// <tr><td class="topAlign"><code>selectableText</code></td><td class="topAlign">The object has text which can be selected. This is different from selectable which refers to the object's children.</td></tr>
        /// <tr><td class="topAlign"><code>selected</code></td><td class="topAlign">The object is selected, this is independent of text selection.</td></tr>
        /// <tr><td class="topAlign"><code>selfVoicing</code></td><td class="topAlign">The object describes itself through speech or sound.</td></tr>
        /// <tr><td class="topAlign"><code>sizeable</code></td><td class="topAlign">The object can be resized, e.g. top-level windows.</td></tr>
        /// <tr><td class="topAlign"><code>summaryElement</code></td><td class="topAlign">The object summarizes the state of the window and should be treated with priority.</td></tr>
        /// <tr><td class="topAlign"><code>supportsAutoCompletion</code></td><td class="topAlign">The object has auto-completion, for example in line edits or combo boxes.</td></tr>
        /// <tr><td class="topAlign"><code>traversed</code></td><td class="topAlign">The object is linked and has been visited.</td></tr>
        /// <tr><td class="topAlign"><code>updatesFrequently</code></td><td class="topAlign">The object changes frequently and needs to be refreshed when accessing it.</td></tr>
        /// <tr><td class="topAlign"><code>disabled</code></td><td class="topAlign">The object is unavailable to the user, e.g. a disabled widget.</td></tr>
        /// </tbody></table></div>
        /// <p>Implementations of <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#statex">QAccessibleInterface::state</a>() return a combination of these flags.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_accessible::State>>,
        ) -> ::cpp_core::MutRef<crate::q_accessible::State> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_operator_(
                self as *mut crate::q_accessible::State,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_accessible::State>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```defaultButton```</span> field.
        #[inline(always)]
        pub unsafe fn default_button(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_defaultButton(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```disabled```</span> field.
        #[inline(always)]
        pub unsafe fn disabled(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_disabled(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```editable```</span> field.
        #[inline(always)]
        pub unsafe fn editable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_editable(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```expandable```</span> field.
        #[inline(always)]
        pub unsafe fn expandable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_expandable(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```expanded```</span> field.
        #[inline(always)]
        pub unsafe fn expanded(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_expanded(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```extSelectable```</span> field.
        #[inline(always)]
        pub unsafe fn ext_selectable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_extSelectable(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```focusable```</span> field.
        #[inline(always)]
        pub unsafe fn focusable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_focusable(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```focused```</span> field.
        #[inline(always)]
        pub unsafe fn focused(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_focused(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```hasPopup```</span> field.
        #[inline(always)]
        pub unsafe fn has_popup(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_hasPopup(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```hotTracked```</span> field.
        #[inline(always)]
        pub unsafe fn hot_tracked(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_hotTracked(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```invalid```</span> field.
        #[inline(always)]
        pub unsafe fn invalid(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_invalid(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```invisible```</span> field.
        #[inline(always)]
        pub unsafe fn invisible(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_invisible(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```linked```</span> field.
        #[inline(always)]
        pub unsafe fn linked(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_linked(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```marqueed```</span> field.
        #[inline(always)]
        pub unsafe fn marqueed(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_marqueed(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```modal```</span> field.
        #[inline(always)]
        pub unsafe fn modal(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_modal(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```movable```</span> field.
        #[inline(always)]
        pub unsafe fn movable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_movable(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```multiLine```</span> field.
        #[inline(always)]
        pub unsafe fn multi_line(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_multiLine(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```multiSelectable```</span> field.
        #[inline(always)]
        pub unsafe fn multi_selectable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_multiSelectable(
                self as *const crate::q_accessible::State,
            )
        }

        /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessible-state.html">QAccessible::State</a> with all states set to false.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessible::State::State()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qaccessible-state.html#State">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessible-state.html">QAccessible::State</a> with all states set to false.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_accessible::State> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_State();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This structure defines bit flags that indicate the state of an accessible object. The values are:</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessible::State::State(const QAccessible::State& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qaccessible-state.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This structure defines bit flags that indicate the state of an accessible object. The values are:</p>
        /// <div class="table"><table class="valuelist"><tbody><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tbldscr">Description</th></tr>
        /// <tr><td class="topAlign"><code>active</code></td><td class="topAlign">The object is the active window or the active sub-element in a container (that would get focus when focusing the container).</td></tr>
        /// <tr><td class="topAlign"><code>adjustable</code></td><td class="topAlign">The object represents an adjustable value, e.g. sliders.</td></tr>
        /// <tr><td class="topAlign"><code>animated</code></td><td class="topAlign">The object's appearance changes frequently.</td></tr>
        /// <tr><td class="topAlign"><code>busy</code></td><td class="topAlign">The object cannot accept input at the moment.</td></tr>
        /// <tr><td class="topAlign"><code>checkable</code></td><td class="topAlign">The object is checkable.</td></tr>
        /// <tr><td class="topAlign"><code>checked</code></td><td class="topAlign">The object's check box is checked.</td></tr>
        /// <tr><td class="topAlign"><code>checkStateMixed</code></td><td class="topAlign">The third state of checkboxes (half checked in tri-state check boxes).</td></tr>
        /// <tr><td class="topAlign"><code>collapsed</code></td><td class="topAlign">The object is collapsed, e.g. a closed listview item, or an iconified window.</td></tr>
        /// <tr><td class="topAlign"><code>defaultButton</code></td><td class="topAlign">The object represents the default button in a dialog.</td></tr>
        /// <tr><td class="topAlign"><code>defunct</code></td><td class="topAlign">The object no longer exists.</td></tr>
        /// <tr><td class="topAlign"><code>editable</code></td><td class="topAlign">The object has a text carret (and often implements the text interface).</td></tr>
        /// <tr><td class="topAlign"><code>expandable</code></td><td class="topAlign">The object is expandable, mostly used for cells in a tree view.</td></tr>
        /// <tr><td class="topAlign"><code>expanded</code></td><td class="topAlign">The object is expanded, currently its children are visible.</td></tr>
        /// <tr><td class="topAlign"><code>extSelectable</code></td><td class="topAlign">The object supports extended selection.</td></tr>
        /// <tr><td class="topAlign"><code>focusable</code></td><td class="topAlign">The object can receive focus. Only objects in the active window can receive focus.</td></tr>
        /// <tr><td class="topAlign"><code>focused</code></td><td class="topAlign">The object has keyboard focus.</td></tr>
        /// <tr><td class="topAlign"><code>hasPopup</code></td><td class="topAlign">The object opens a popup.</td></tr>
        /// <tr><td class="topAlign"><code>hotTracked</code></td><td class="topAlign">The object's appearance is sensitive to the mouse cursor position.</td></tr>
        /// <tr><td class="topAlign"><code>invalid</code></td><td class="topAlign">The object is no longer valid (because it has been deleted).</td></tr>
        /// <tr><td class="topAlign"><code>invalidEntry</code></td><td class="topAlign">Input validation current input invalid.</td></tr>
        /// <tr><td class="topAlign"><code>invisible</code></td><td class="topAlign">The object is not visible to the user.</td></tr>
        /// <tr><td class="topAlign"><code>linked</code></td><td class="topAlign">The object is linked to another object, e.g. a hyperlink.</td></tr>
        /// <tr><td class="topAlign"><code>marqueed</code></td><td class="topAlign">The object displays scrolling contents, e.g. a log view.</td></tr>
        /// <tr><td class="topAlign"><code>modal</code></td><td class="topAlign">The object blocks input from other objects.</td></tr>
        /// <tr><td class="topAlign"><code>movable</code></td><td class="topAlign">The object can be moved.</td></tr>
        /// <tr><td class="topAlign"><code>multiLine</code></td><td class="topAlign">The object has multiple lines of text (word wrap), as opposed to a single line.</td></tr>
        /// <tr><td class="topAlign"><code>multiSelectable</code></td><td class="topAlign">The object supports multiple selected items.</td></tr>
        /// <tr><td class="topAlign"><code>offscreen</code></td><td class="topAlign">The object is clipped by the visible area. Objects that are off screen are also invisible.</td></tr>
        /// <tr><td class="topAlign"><code>passwordEdit</code></td><td class="topAlign">The object is a password field, e.g. a line edit for entering a Password.</td></tr>
        /// <tr><td class="topAlign"><code>playsSound</code></td><td class="topAlign">The object produces sound when interacted with.</td></tr>
        /// <tr><td class="topAlign"><code>pressed</code></td><td class="topAlign">The object is pressed.</td></tr>
        /// <tr><td class="topAlign"><code>readOnly</code></td><td class="topAlign">The object can usually be edited, but is explicitly set to read-only.</td></tr>
        /// <tr><td class="topAlign"><code>searchEdit</code></td><td class="topAlign">The object is a line edit that is the input for search queries.</td></tr>
        /// <tr><td class="topAlign"><code>selectable</code></td><td class="topAlign">The object is selectable.</td></tr>
        /// <tr><td class="topAlign"><code>selectableText</code></td><td class="topAlign">The object has text which can be selected. This is different from selectable which refers to the object's children.</td></tr>
        /// <tr><td class="topAlign"><code>selected</code></td><td class="topAlign">The object is selected, this is independent of text selection.</td></tr>
        /// <tr><td class="topAlign"><code>selfVoicing</code></td><td class="topAlign">The object describes itself through speech or sound.</td></tr>
        /// <tr><td class="topAlign"><code>sizeable</code></td><td class="topAlign">The object can be resized, e.g. top-level windows.</td></tr>
        /// <tr><td class="topAlign"><code>summaryElement</code></td><td class="topAlign">The object summarizes the state of the window and should be treated with priority.</td></tr>
        /// <tr><td class="topAlign"><code>supportsAutoCompletion</code></td><td class="topAlign">The object has auto-completion, for example in line edits or combo boxes.</td></tr>
        /// <tr><td class="topAlign"><code>traversed</code></td><td class="topAlign">The object is linked and has been visited.</td></tr>
        /// <tr><td class="topAlign"><code>updatesFrequently</code></td><td class="topAlign">The object changes frequently and needs to be refreshed when accessing it.</td></tr>
        /// <tr><td class="topAlign"><code>disabled</code></td><td class="topAlign">The object is unavailable to the user, e.g. a disabled widget.</td></tr>
        /// </tbody></table></div>
        /// <p>Implementations of <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#statex">QAccessibleInterface::state</a>() return a combination of these flags.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_accessible::State>>,
        ) -> ::cpp_core::CppBox<crate::q_accessible::State> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_State1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_accessible::State>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Returns the value of the <span style='color: green;'>```offscreen```</span> field.
        #[inline(always)]
        pub unsafe fn offscreen(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_offscreen(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```passwordEdit```</span> field.
        #[inline(always)]
        pub unsafe fn password_edit(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_passwordEdit(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```pressed```</span> field.
        #[inline(always)]
        pub unsafe fn pressed(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_pressed(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```readOnly```</span> field.
        #[inline(always)]
        pub unsafe fn read_only(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_readOnly(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```searchEdit```</span> field.
        #[inline(always)]
        pub unsafe fn search_edit(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_searchEdit(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```selectable```</span> field.
        #[inline(always)]
        pub unsafe fn selectable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_selectable(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```selectableText```</span> field.
        #[inline(always)]
        pub unsafe fn selectable_text(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_selectableText(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```selected```</span> field.
        #[inline(always)]
        pub unsafe fn selected(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_selected(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```selfVoicing```</span> field.
        #[inline(always)]
        pub unsafe fn self_voicing(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_selfVoicing(
                self as *const crate::q_accessible::State,
            )
        }

        /// Sets the value of the <span style='color: green;'>```active```</span> field.
        #[inline(always)]
        pub unsafe fn set_active(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_active(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```animated```</span> field.
        #[inline(always)]
        pub unsafe fn set_animated(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_animated(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```busy```</span> field.
        #[inline(always)]
        pub unsafe fn set_busy(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_busy(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```checkStateMixed```</span> field.
        #[inline(always)]
        pub unsafe fn set_check_state_mixed(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_checkStateMixed(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```checkable```</span> field.
        #[inline(always)]
        pub unsafe fn set_checkable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_checkable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```checked```</span> field.
        #[inline(always)]
        pub unsafe fn set_checked(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_checked(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```collapsed```</span> field.
        #[inline(always)]
        pub unsafe fn set_collapsed(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_collapsed(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```defaultButton```</span> field.
        #[inline(always)]
        pub unsafe fn set_default_button(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_defaultButton(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```disabled```</span> field.
        #[inline(always)]
        pub unsafe fn set_disabled(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_disabled(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```editable```</span> field.
        #[inline(always)]
        pub unsafe fn set_editable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_editable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```expandable```</span> field.
        #[inline(always)]
        pub unsafe fn set_expandable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_expandable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```expanded```</span> field.
        #[inline(always)]
        pub unsafe fn set_expanded(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_expanded(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```extSelectable```</span> field.
        #[inline(always)]
        pub unsafe fn set_ext_selectable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_extSelectable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```focusable```</span> field.
        #[inline(always)]
        pub unsafe fn set_focusable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_focusable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```focused```</span> field.
        #[inline(always)]
        pub unsafe fn set_focused(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_focused(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```hasPopup```</span> field.
        #[inline(always)]
        pub unsafe fn set_has_popup(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_hasPopup(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```hotTracked```</span> field.
        #[inline(always)]
        pub unsafe fn set_hot_tracked(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_hotTracked(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```invalid```</span> field.
        #[inline(always)]
        pub unsafe fn set_invalid(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_invalid(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```invisible```</span> field.
        #[inline(always)]
        pub unsafe fn set_invisible(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_invisible(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```linked```</span> field.
        #[inline(always)]
        pub unsafe fn set_linked(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_linked(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```marqueed```</span> field.
        #[inline(always)]
        pub unsafe fn set_marqueed(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_marqueed(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```modal```</span> field.
        #[inline(always)]
        pub unsafe fn set_modal(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_modal(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```movable```</span> field.
        #[inline(always)]
        pub unsafe fn set_movable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_movable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```multiLine```</span> field.
        #[inline(always)]
        pub unsafe fn set_multi_line(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_multiLine(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```multiSelectable```</span> field.
        #[inline(always)]
        pub unsafe fn set_multi_selectable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_multiSelectable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```offscreen```</span> field.
        #[inline(always)]
        pub unsafe fn set_offscreen(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_offscreen(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```passwordEdit```</span> field.
        #[inline(always)]
        pub unsafe fn set_password_edit(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_passwordEdit(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```pressed```</span> field.
        #[inline(always)]
        pub unsafe fn set_pressed(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_pressed(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```readOnly```</span> field.
        #[inline(always)]
        pub unsafe fn set_read_only(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_readOnly(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```searchEdit```</span> field.
        #[inline(always)]
        pub unsafe fn set_search_edit(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_searchEdit(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```selectable```</span> field.
        #[inline(always)]
        pub unsafe fn set_selectable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_selectable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```selectableText```</span> field.
        #[inline(always)]
        pub unsafe fn set_selectable_text(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_selectableText(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```selected```</span> field.
        #[inline(always)]
        pub unsafe fn set_selected(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_selected(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```selfVoicing```</span> field.
        #[inline(always)]
        pub unsafe fn set_self_voicing(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_selfVoicing(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```sizeable```</span> field.
        #[inline(always)]
        pub unsafe fn set_sizeable(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_sizeable(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```supportsAutoCompletion```</span> field.
        #[inline(always)]
        pub unsafe fn set_supports_auto_completion(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_supportsAutoCompletion(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```traversed```</span> field.
        #[inline(always)]
        pub unsafe fn set_traversed(&mut self, value: u64) {
            crate::__ffi::ctr_qt_gui_ffi_set_QAccessible_State_traversed(
                self as *mut crate::q_accessible::State,
                value,
            )
        }

        /// Returns the value of the <span style='color: green;'>```sizeable```</span> field.
        #[inline(always)]
        pub unsafe fn sizeable(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_sizeable(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```supportsAutoCompletion```</span> field.
        #[inline(always)]
        pub unsafe fn supports_auto_completion(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_supportsAutoCompletion(
                self as *const crate::q_accessible::State,
            )
        }

        /// Returns the value of the <span style='color: green;'>```traversed```</span> field.
        #[inline(always)]
        pub unsafe fn traversed(&self) -> u64 {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_traversed(
                self as *const crate::q_accessible::State,
            )
        }
    }

    /// <p>This enum defines the role of an accessible object. The roles are:</p>
    ///
    /// C++ enum: <span style='color: green;'>```QAccessible::Role```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#Role-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the role of an accessible object. The roles are:</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Role(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Role {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Role(value)
        }
    }

    impl From<Role> for ::std::os::raw::c_int {
        fn from(value: Role) -> Self {
            value.0
        }
    }

    impl Role {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Role {
        /// The object has no role. This usually indicates an invalid object. (C++ enum variant: <span style='color: green;'>```NoRole = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoRole: crate::q_accessible::Role = crate::q_accessible::Role(0);
        /// The title bar caption of a window. (C++ enum variant: <span style='color: green;'>```TitleBar = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const TitleBar: crate::q_accessible::Role = crate::q_accessible::Role(1);
        /// A menu bar from which menus are opened by the user. (C++ enum variant: <span style='color: green;'>```MenuBar = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const MenuBar: crate::q_accessible::Role = crate::q_accessible::Role(2);
        /// A scroll bar, which allows the user to scroll the visible area. (C++ enum variant: <span style='color: green;'>```ScrollBar = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScrollBar: crate::q_accessible::Role = crate::q_accessible::Role(3);
        /// A grip that the user can drag to change the size of widgets. (C++ enum variant: <span style='color: green;'>```Grip = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Grip: crate::q_accessible::Role = crate::q_accessible::Role(4);
        /// An object that represents a sound. (C++ enum variant: <span style='color: green;'>```Sound = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const Sound: crate::q_accessible::Role = crate::q_accessible::Role(5);
        /// An object that represents the mouse cursor. (C++ enum variant: <span style='color: green;'>```Cursor = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cursor: crate::q_accessible::Role = crate::q_accessible::Role(6);
        /// An object that represents the system caret (text cursor). (C++ enum variant: <span style='color: green;'>```Caret = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const Caret: crate::q_accessible::Role = crate::q_accessible::Role(7);
        /// An object that is used to alert the user. (C++ enum variant: <span style='color: green;'>```AlertMessage = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlertMessage: crate::q_accessible::Role = crate::q_accessible::Role(8);
        /// A top level window. (C++ enum variant: <span style='color: green;'>```Window = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const Window: crate::q_accessible::Role = crate::q_accessible::Role(9);
        /// The client area in a window. (C++ enum variant: <span style='color: green;'>```Client = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const Client: crate::q_accessible::Role = crate::q_accessible::Role(10);
        /// A menu which lists options that the user can select to perform an action. (C++ enum variant: <span style='color: green;'>```PopupMenu = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const PopupMenu: crate::q_accessible::Role = crate::q_accessible::Role(11);
        /// An item in a menu or menu bar. (C++ enum variant: <span style='color: green;'>```MenuItem = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const MenuItem: crate::q_accessible::Role = crate::q_accessible::Role(12);
        /// A tool tip which provides information about other objects. (C++ enum variant: <span style='color: green;'>```ToolTip = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const ToolTip: crate::q_accessible::Role = crate::q_accessible::Role(13);
        /// The application's main window. (C++ enum variant: <span style='color: green;'>```Application = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const Application: crate::q_accessible::Role = crate::q_accessible::Role(14);
        /// A document, for example in an office application. (C++ enum variant: <span style='color: green;'>```Document = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const Document: crate::q_accessible::Role = crate::q_accessible::Role(15);
        /// A generic container. (C++ enum variant: <span style='color: green;'>```Pane = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const Pane: crate::q_accessible::Role = crate::q_accessible::Role(16);
        /// An object that displays a graphical representation of data. (C++ enum variant: <span style='color: green;'>```Chart = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const Chart: crate::q_accessible::Role = crate::q_accessible::Role(17);
        /// A dialog box. (C++ enum variant: <span style='color: green;'>```Dialog = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const Dialog: crate::q_accessible::Role = crate::q_accessible::Role(18);
        /// An object that represents a border. (C++ enum variant: <span style='color: green;'>```Border = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const Border: crate::q_accessible::Role = crate::q_accessible::Role(19);
        /// An object that represents a logical grouping of other objects. (C++ enum variant: <span style='color: green;'>```Grouping = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const Grouping: crate::q_accessible::Role = crate::q_accessible::Role(20);
        /// A separator that divides space into logical areas. (C++ enum variant: <span style='color: green;'>```Separator = 21```</span>)
        #[allow(non_upper_case_globals)]
        pub const Separator: crate::q_accessible::Role = crate::q_accessible::Role(21);
        /// A tool bar, which groups widgets that the user accesses frequently. (C++ enum variant: <span style='color: green;'>```ToolBar = 22```</span>)
        #[allow(non_upper_case_globals)]
        pub const ToolBar: crate::q_accessible::Role = crate::q_accessible::Role(22);
        /// A status bar. (C++ enum variant: <span style='color: green;'>```StatusBar = 23```</span>)
        #[allow(non_upper_case_globals)]
        pub const StatusBar: crate::q_accessible::Role = crate::q_accessible::Role(23);
        /// A table representing data in a grid of rows and columns. (C++ enum variant: <span style='color: green;'>```Table = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const Table: crate::q_accessible::Role = crate::q_accessible::Role(24);
        /// A header for a column of data. (C++ enum variant: <span style='color: green;'>```ColumnHeader = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const ColumnHeader: crate::q_accessible::Role = crate::q_accessible::Role(25);
        /// A header for a row of data. (C++ enum variant: <span style='color: green;'>```RowHeader = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const RowHeader: crate::q_accessible::Role = crate::q_accessible::Role(26);
        /// A column of cells, usually within a table. (C++ enum variant: <span style='color: green;'>```Column = 27```</span>)
        #[allow(non_upper_case_globals)]
        pub const Column: crate::q_accessible::Role = crate::q_accessible::Role(27);
        /// A row of cells, usually within a table. (C++ enum variant: <span style='color: green;'>```Row = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const Row: crate::q_accessible::Role = crate::q_accessible::Role(28);
        /// A cell in a table. (C++ enum variant: <span style='color: green;'>```Cell = 29```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cell: crate::q_accessible::Role = crate::q_accessible::Role(29);
        /// A link to something else. (C++ enum variant: <span style='color: green;'>```Link = 30```</span>)
        #[allow(non_upper_case_globals)]
        pub const Link: crate::q_accessible::Role = crate::q_accessible::Role(30);
        /// An object that displays help in a separate, short lived window. (C++ enum variant: <span style='color: green;'>```HelpBalloon = 31```</span>)
        #[allow(non_upper_case_globals)]
        pub const HelpBalloon: crate::q_accessible::Role = crate::q_accessible::Role(31);
        /// An object that provids interactive help. (C++ enum variant: <span style='color: green;'>```Assistant = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const Assistant: crate::q_accessible::Role = crate::q_accessible::Role(32);
        /// A list of items, from which the user can select one or more items. (C++ enum variant: <span style='color: green;'>```List = 33```</span>)
        #[allow(non_upper_case_globals)]
        pub const List: crate::q_accessible::Role = crate::q_accessible::Role(33);
        /// An item in a list of items. (C++ enum variant: <span style='color: green;'>```ListItem = 34```</span>)
        #[allow(non_upper_case_globals)]
        pub const ListItem: crate::q_accessible::Role = crate::q_accessible::Role(34);
        /// A list of items in a tree structure. (C++ enum variant: <span style='color: green;'>```Tree = 35```</span>)
        #[allow(non_upper_case_globals)]
        pub const Tree: crate::q_accessible::Role = crate::q_accessible::Role(35);
        /// An item in a tree structure. (C++ enum variant: <span style='color: green;'>```TreeItem = 36```</span>)
        #[allow(non_upper_case_globals)]
        pub const TreeItem: crate::q_accessible::Role = crate::q_accessible::Role(36);
        /// A page tab that the user can select to switch to a different page in a dialog. (C++ enum variant: <span style='color: green;'>```PageTab = 37```</span>)
        #[allow(non_upper_case_globals)]
        pub const PageTab: crate::q_accessible::Role = crate::q_accessible::Role(37);
        /// A property page where the user can change options and settings. (C++ enum variant: <span style='color: green;'>```PropertyPage = 38```</span>)
        #[allow(non_upper_case_globals)]
        pub const PropertyPage: crate::q_accessible::Role = crate::q_accessible::Role(38);
        /// An indicator that represents a current value or item. (C++ enum variant: <span style='color: green;'>```Indicator = 39```</span>)
        #[allow(non_upper_case_globals)]
        pub const Indicator: crate::q_accessible::Role = crate::q_accessible::Role(39);
        /// A graphic or picture, e.g. an icon. (C++ enum variant: <span style='color: green;'>```Graphic = 40```</span>)
        #[allow(non_upper_case_globals)]
        pub const Graphic: crate::q_accessible::Role = crate::q_accessible::Role(40);
        /// Static text, such as labels for other widgets. (C++ enum variant: <span style='color: green;'>```StaticText = 41```</span>)
        #[allow(non_upper_case_globals)]
        pub const StaticText: crate::q_accessible::Role = crate::q_accessible::Role(41);
        /// Editable text such as a line or text edit. (C++ enum variant: <span style='color: green;'>```EditableText = 42```</span>)
        #[allow(non_upper_case_globals)]
        pub const EditableText: crate::q_accessible::Role = crate::q_accessible::Role(42);
        /// A button. (C++ enum variant: <span style='color: green;'>```Button = 43```</span>)
        #[allow(non_upper_case_globals)]
        pub const Button: crate::q_accessible::Role = crate::q_accessible::Role(43);
        /// C++ enum variant: <span style='color: green;'>```PushButton = 43```</span>
        #[allow(non_upper_case_globals)]
        pub const PushButton: crate::q_accessible::Role = crate::q_accessible::Role(43);
        /// An object that represents an option that can be checked or unchecked. Some options provide a "mixed" state, e.g. neither checked nor unchecked. (C++ enum variant: <span style='color: green;'>```CheckBox = 44```</span>)
        #[allow(non_upper_case_globals)]
        pub const CheckBox: crate::q_accessible::Role = crate::q_accessible::Role(44);
        /// An object that represents an option that is mutually exclusive with other options. (C++ enum variant: <span style='color: green;'>```RadioButton = 45```</span>)
        #[allow(non_upper_case_globals)]
        pub const RadioButton: crate::q_accessible::Role = crate::q_accessible::Role(45);
        /// A list of choices that the user can select from. (C++ enum variant: <span style='color: green;'>```ComboBox = 46```</span>)
        #[allow(non_upper_case_globals)]
        pub const ComboBox: crate::q_accessible::Role = crate::q_accessible::Role(46);
        /// The object displays the progress of an operation in progress. (C++ enum variant: <span style='color: green;'>```ProgressBar = 48```</span>)
        #[allow(non_upper_case_globals)]
        pub const ProgressBar: crate::q_accessible::Role = crate::q_accessible::Role(48);
        /// An object that represents a dial or knob. (C++ enum variant: <span style='color: green;'>```Dial = 49```</span>)
        #[allow(non_upper_case_globals)]
        pub const Dial: crate::q_accessible::Role = crate::q_accessible::Role(49);
        /// A hotkey field that allows the user to enter a key sequence. (C++ enum variant: <span style='color: green;'>```HotkeyField = 50```</span>)
        #[allow(non_upper_case_globals)]
        pub const HotkeyField: crate::q_accessible::Role = crate::q_accessible::Role(50);
        /// A slider that allows the user to select a value within a given range. (C++ enum variant: <span style='color: green;'>```Slider = 51```</span>)
        #[allow(non_upper_case_globals)]
        pub const Slider: crate::q_accessible::Role = crate::q_accessible::Role(51);
        /// A spin box widget that allows the user to enter a value within a given range. (C++ enum variant: <span style='color: green;'>```SpinBox = 52```</span>)
        #[allow(non_upper_case_globals)]
        pub const SpinBox: crate::q_accessible::Role = crate::q_accessible::Role(52);
        /// An object that displays graphics that the user can interact with. (C++ enum variant: <span style='color: green;'>```Canvas = 53```</span>)
        #[allow(non_upper_case_globals)]
        pub const Canvas: crate::q_accessible::Role = crate::q_accessible::Role(53);
        /// An object that displays an animation. (C++ enum variant: <span style='color: green;'>```Animation = 54```</span>)
        #[allow(non_upper_case_globals)]
        pub const Animation: crate::q_accessible::Role = crate::q_accessible::Role(54);
        /// An object that represents a mathematical equation. (C++ enum variant: <span style='color: green;'>```Equation = 55```</span>)
        #[allow(non_upper_case_globals)]
        pub const Equation: crate::q_accessible::Role = crate::q_accessible::Role(55);
        /// A button that drops down a list of items. (C++ enum variant: <span style='color: green;'>```ButtonDropDown = 56```</span>)
        #[allow(non_upper_case_globals)]
        pub const ButtonDropDown: crate::q_accessible::Role = crate::q_accessible::Role(56);
        /// A button that drops down a menu. (C++ enum variant: <span style='color: green;'>```ButtonMenu = 57```</span>)
        #[allow(non_upper_case_globals)]
        pub const ButtonMenu: crate::q_accessible::Role = crate::q_accessible::Role(57);
        /// A button that drops down a grid. (C++ enum variant: <span style='color: green;'>```ButtonDropGrid = 58```</span>)
        #[allow(non_upper_case_globals)]
        pub const ButtonDropGrid: crate::q_accessible::Role = crate::q_accessible::Role(58);
        /// Blank space between other objects. (C++ enum variant: <span style='color: green;'>```Whitespace = 59```</span>)
        #[allow(non_upper_case_globals)]
        pub const Whitespace: crate::q_accessible::Role = crate::q_accessible::Role(59);
        /// A list of page tabs. (C++ enum variant: <span style='color: green;'>```PageTabList = 60```</span>)
        #[allow(non_upper_case_globals)]
        pub const PageTabList: crate::q_accessible::Role = crate::q_accessible::Role(60);
        /// A clock displaying time. (C++ enum variant: <span style='color: green;'>```Clock = 61```</span>)
        #[allow(non_upper_case_globals)]
        pub const Clock: crate::q_accessible::Role = crate::q_accessible::Role(61);
        /// A splitter distributing available space between its child widgets. (C++ enum variant: <span style='color: green;'>```Splitter = 62```</span>)
        #[allow(non_upper_case_globals)]
        pub const Splitter: crate::q_accessible::Role = crate::q_accessible::Role(62);
        /// An object that can contain layered children, e.g. in a stack. (C++ enum variant: <span style='color: green;'>```LayeredPane = 128```</span>)
        #[allow(non_upper_case_globals)]
        pub const LayeredPane: crate::q_accessible::Role = crate::q_accessible::Role(128);
        /// A terminal or command line interface. (C++ enum variant: <span style='color: green;'>```Terminal = 129```</span>)
        #[allow(non_upper_case_globals)]
        pub const Terminal: crate::q_accessible::Role = crate::q_accessible::Role(129);
        /// The object represents the desktop or workspace. (C++ enum variant: <span style='color: green;'>```Desktop = 130```</span>)
        #[allow(non_upper_case_globals)]
        pub const Desktop: crate::q_accessible::Role = crate::q_accessible::Role(130);
        /// A paragraph of text (usually found in documents). (C++ enum variant: <span style='color: green;'>```Paragraph = 131```</span>)
        #[allow(non_upper_case_globals)]
        pub const Paragraph: crate::q_accessible::Role = crate::q_accessible::Role(131);
        /// HTML document, usually in a browser. (C++ enum variant: <span style='color: green;'>```WebDocument = 132```</span>)
        #[allow(non_upper_case_globals)]
        pub const WebDocument: crate::q_accessible::Role = crate::q_accessible::Role(132);
        /// A section (in a document). (C++ enum variant: <span style='color: green;'>```Section = 133```</span>)
        #[allow(non_upper_case_globals)]
        pub const Section: crate::q_accessible::Role = crate::q_accessible::Role(133);
        /// A dialog that lets the user choose a color. (C++ enum variant: <span style='color: green;'>```ColorChooser = 1028```</span>)
        #[allow(non_upper_case_globals)]
        pub const ColorChooser: crate::q_accessible::Role = crate::q_accessible::Role(1028);
        /// A footer in a page (usually in documents). (C++ enum variant: <span style='color: green;'>```Footer = 1038```</span>)
        #[allow(non_upper_case_globals)]
        pub const Footer: crate::q_accessible::Role = crate::q_accessible::Role(1038);
        /// A web form containing controls. (C++ enum variant: <span style='color: green;'>```Form = 1040```</span>)
        #[allow(non_upper_case_globals)]
        pub const Form: crate::q_accessible::Role = crate::q_accessible::Role(1040);
        /// A heading in a document. (C++ enum variant: <span style='color: green;'>```Heading = 1044```</span>)
        #[allow(non_upper_case_globals)]
        pub const Heading: crate::q_accessible::Role = crate::q_accessible::Role(1044);
        /// A section whose content is parenthetic or ancillary to the main content of the resource. (C++ enum variant: <span style='color: green;'>```Note = 1051```</span>)
        #[allow(non_upper_case_globals)]
        pub const Note: crate::q_accessible::Role = crate::q_accessible::Role(1051);
        /// A part of the document or web page that is complementary to the main content, usually a landmark (see WAI-ARIA). (C++ enum variant: <span style='color: green;'>```ComplementaryContent = 1068```</span>)
        #[allow(non_upper_case_globals)]
        pub const ComplementaryContent: crate::q_accessible::Role = crate::q_accessible::Role(1068);
        /// The first value to be used for user defined roles. (C++ enum variant: <span style='color: green;'>```UserRole = 65535```</span>)
        #[allow(non_upper_case_globals)]
        pub const UserRole: crate::q_accessible::Role = crate::q_accessible::Role(65535);
    }

    /// <p>This enum specifies string information that an accessible object returns.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QAccessible::Text```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies string information that an accessible object returns.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Text(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Text {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Text(value)
        }
    }

    impl From<Text> for ::std::os::raw::c_int {
        fn from(value: Text) -> Self {
            value.0
        }
    }

    impl Text {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Text {
        /// The name of the object. This can be used both as an identifier or a short description by accessible clients. (C++ enum variant: <span style='color: green;'>```Name = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Name: crate::q_accessible::Text = crate::q_accessible::Text(0);
        /// A short text describing the object. (C++ enum variant: <span style='color: green;'>```Description = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Description: crate::q_accessible::Text = crate::q_accessible::Text(1);
        /// The value of the object. (C++ enum variant: <span style='color: green;'>```Value = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Value: crate::q_accessible::Text = crate::q_accessible::Text(2);
        /// A longer text giving information about how to use the object. (C++ enum variant: <span style='color: green;'>```Help = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Help: crate::q_accessible::Text = crate::q_accessible::Text(3);
        /// The keyboard shortcut that executes the object's default action. (C++ enum variant: <span style='color: green;'>```Accelerator = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Accelerator: crate::q_accessible::Text = crate::q_accessible::Text(4);
        /// C++ enum variant: <span style='color: green;'>```DebugDescription = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const DebugDescription: crate::q_accessible::Text = crate::q_accessible::Text(5);
        /// The first value to be used for user defined text. (C++ enum variant: <span style='color: green;'>```UserText = 65535```</span>)
        #[allow(non_upper_case_globals)]
        pub const UserText: crate::q_accessible::Text = crate::q_accessible::Text(65535);
    }

    /// <p>This enum type defines bit flags that can be combined to indicate the relationship between two accessible objects.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QAccessible::RelationFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#RelationFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type defines bit flags that can be combined to indicate the relationship between two accessible objects.</p>
    ///
    /// <p>Implementations of relations() return a combination of these flags. Some values are mutually exclusive.</p>
    /// <p>The Relation type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;RelationFlag&gt;. It stores an OR combination of RelationFlag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RelationFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RelationFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RelationFlag(value)
        }
    }

    impl From<RelationFlag> for ::std::os::raw::c_int {
        fn from(value: RelationFlag) -> Self {
            value.0
        }
    }

    impl RelationFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RelationFlag {
        /// The first object is the label of the second object. (C++ enum variant: <span style='color: green;'>```Label = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Label: crate::q_accessible::RelationFlag = crate::q_accessible::RelationFlag(1);
        /// The first object is labelled by the second object. (C++ enum variant: <span style='color: green;'>```Labelled = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Labelled: crate::q_accessible::RelationFlag =
            crate::q_accessible::RelationFlag(2);
        /// The first object controls the second object. (C++ enum variant: <span style='color: green;'>```Controller = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Controller: crate::q_accessible::RelationFlag =
            crate::q_accessible::RelationFlag(4);
        /// The first object is controlled by the second object. (C++ enum variant: <span style='color: green;'>```Controlled = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Controlled: crate::q_accessible::RelationFlag =
            crate::q_accessible::RelationFlag(8);
        /// Used as a mask to specify that we are interesting in information about all relations (C++ enum variant: <span style='color: green;'>```AllRelations = -1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AllRelations: crate::q_accessible::RelationFlag =
            crate::q_accessible::RelationFlag(-1);
    }

    /// <p><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> supports several sub interfaces. In order to provide more information about some objects, their accessible representation should implement one or more of these interfaces.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QAccessible::InterfaceType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#InterfaceType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> supports several sub interfaces. In order to provide more information about some objects, their accessible representation should implement one or more of these interfaces.</p>
    /// <p><b>Note: </b>When subclassing one of these interfaces, <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#interface_cast">QAccessibleInterface::interface_cast</a>() needs to be implemented.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#interface_cast">QAccessibleInterface::interface_cast</a>(), <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>, <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">QAccessibleValueInterface</a>, <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a>, <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">QAccessibleTableInterface</a>, and <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">QAccessibleTableCellInterface</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct InterfaceType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for InterfaceType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            InterfaceType(value)
        }
    }

    impl From<InterfaceType> for ::std::os::raw::c_int {
        fn from(value: InterfaceType) -> Self {
            value.0
        }
    }

    impl InterfaceType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl InterfaceType {
        /// For text that supports selections or is more than one line. Simple labels do not need to implement this interface. For text that can be edited by the user. (C++ enum variant: <span style='color: green;'>```TextInterface = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextInterface: crate::q_accessible::InterfaceType =
            crate::q_accessible::InterfaceType(0);
        /// C++ enum variant: <span style='color: green;'>```EditableTextInterface = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const EditableTextInterface: crate::q_accessible::InterfaceType =
            crate::q_accessible::InterfaceType(1);
        /// For objects that are used to manipulate a value, for example slider or scroll bar. (C++ enum variant: <span style='color: green;'>```ValueInterface = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ValueInterface: crate::q_accessible::InterfaceType =
            crate::q_accessible::InterfaceType(2);
        /// For interactive objects that allow the user to trigger an action. Basically everything that allows for example mouse interaction. For objects that represent an image. This interface is generally less important. (C++ enum variant: <span style='color: green;'>```ActionInterface = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ActionInterface: crate::q_accessible::InterfaceType =
            crate::q_accessible::InterfaceType(3);
        /// C++ enum variant: <span style='color: green;'>```ImageInterface = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const ImageInterface: crate::q_accessible::InterfaceType =
            crate::q_accessible::InterfaceType(4);
        /// For lists, tables and trees. (C++ enum variant: <span style='color: green;'>```TableInterface = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableInterface: crate::q_accessible::InterfaceType =
            crate::q_accessible::InterfaceType(5);
        /// For cells in a TableInterface object. (C++ enum variant: <span style='color: green;'>```TableCellInterface = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const TableCellInterface: crate::q_accessible::InterfaceType =
            crate::q_accessible::InterfaceType(6);
    }

    /// <p>This enum describes different types of text boundaries. It follows the <a href="http://doc.qt.io/qt-5/qtgui-attribution-iaccessible2.html#iaccessible2">IAccessible2</a> API and is used in the <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QAccessible::TextBoundaryType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#TextBoundaryType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes different types of text boundaries. It follows the <a href="http://doc.qt.io/qt-5/qtgui-attribution-iaccessible2.html#iaccessible2">IAccessible2</a> API and is used in the <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct TextBoundaryType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for TextBoundaryType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            TextBoundaryType(value)
        }
    }

    impl From<TextBoundaryType> for ::std::os::raw::c_int {
        fn from(value: TextBoundaryType) -> Self {
            value.0
        }
    }

    impl TextBoundaryType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl TextBoundaryType {
        /// Use individual characters as boundary. (C++ enum variant: <span style='color: green;'>```CharBoundary = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const CharBoundary: crate::q_accessible::TextBoundaryType =
            crate::q_accessible::TextBoundaryType(0);
        /// Use words as boundaries. (C++ enum variant: <span style='color: green;'>```WordBoundary = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const WordBoundary: crate::q_accessible::TextBoundaryType =
            crate::q_accessible::TextBoundaryType(1);
        /// Use sentences as boundary. (C++ enum variant: <span style='color: green;'>```SentenceBoundary = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const SentenceBoundary: crate::q_accessible::TextBoundaryType =
            crate::q_accessible::TextBoundaryType(2);
        /// Use paragraphs as boundary. (C++ enum variant: <span style='color: green;'>```ParagraphBoundary = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ParagraphBoundary: crate::q_accessible::TextBoundaryType =
            crate::q_accessible::TextBoundaryType(3);
        /// Use newlines as boundary. (C++ enum variant: <span style='color: green;'>```LineBoundary = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const LineBoundary: crate::q_accessible::TextBoundaryType =
            crate::q_accessible::TextBoundaryType(4);
        /// No boundary (use the whole text). (C++ enum variant: <span style='color: green;'>```NoBoundary = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoBoundary: crate::q_accessible::TextBoundaryType =
            crate::q_accessible::TextBoundaryType(5);
    }

    impl From<crate::q_accessible::RelationFlag>
        for ::qt_core::QFlags<crate::q_accessible::RelationFlag>
    {
        fn from(value: crate::q_accessible::RelationFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_accessible::RelationFlag>>> std::ops::BitOr<T>
        for crate::q_accessible::RelationFlag
    {
        type Output = ::qt_core::QFlags<crate::q_accessible::RelationFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_accessible::RelationFlag> {
            Into::<::qt_core::QFlags<crate::q_accessible::RelationFlag>>::into(self) | rhs
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_accessible::State>>
        for crate::q_accessible::State
    {
        /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool operator==(const QAccessible::State& first, const QAccessible::State& second)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
        /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
        #[inline(always)]
        fn eq(&self, second: &::cpp_core::Ref<crate::q_accessible::State>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_operator__60(
                    self as *const crate::q_accessible::State,
                    second.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_accessible::State {
        /// <p>This structure defines bit flags that indicate the state of an accessible object. The values are:</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QAccessible::State::~State()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qaccessible-state.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This structure defines bit flags that indicate the state of an accessible object. The values are:</p>
        /// <div class="table"><table class="valuelist"><tbody><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tbldscr">Description</th></tr>
        /// <tr><td class="topAlign"><code>active</code></td><td class="topAlign">The object is the active window or the active sub-element in a container (that would get focus when focusing the container).</td></tr>
        /// <tr><td class="topAlign"><code>adjustable</code></td><td class="topAlign">The object represents an adjustable value, e.g. sliders.</td></tr>
        /// <tr><td class="topAlign"><code>animated</code></td><td class="topAlign">The object's appearance changes frequently.</td></tr>
        /// <tr><td class="topAlign"><code>busy</code></td><td class="topAlign">The object cannot accept input at the moment.</td></tr>
        /// <tr><td class="topAlign"><code>checkable</code></td><td class="topAlign">The object is checkable.</td></tr>
        /// <tr><td class="topAlign"><code>checked</code></td><td class="topAlign">The object's check box is checked.</td></tr>
        /// <tr><td class="topAlign"><code>checkStateMixed</code></td><td class="topAlign">The third state of checkboxes (half checked in tri-state check boxes).</td></tr>
        /// <tr><td class="topAlign"><code>collapsed</code></td><td class="topAlign">The object is collapsed, e.g. a closed listview item, or an iconified window.</td></tr>
        /// <tr><td class="topAlign"><code>defaultButton</code></td><td class="topAlign">The object represents the default button in a dialog.</td></tr>
        /// <tr><td class="topAlign"><code>defunct</code></td><td class="topAlign">The object no longer exists.</td></tr>
        /// <tr><td class="topAlign"><code>editable</code></td><td class="topAlign">The object has a text carret (and often implements the text interface).</td></tr>
        /// <tr><td class="topAlign"><code>expandable</code></td><td class="topAlign">The object is expandable, mostly used for cells in a tree view.</td></tr>
        /// <tr><td class="topAlign"><code>expanded</code></td><td class="topAlign">The object is expanded, currently its children are visible.</td></tr>
        /// <tr><td class="topAlign"><code>extSelectable</code></td><td class="topAlign">The object supports extended selection.</td></tr>
        /// <tr><td class="topAlign"><code>focusable</code></td><td class="topAlign">The object can receive focus. Only objects in the active window can receive focus.</td></tr>
        /// <tr><td class="topAlign"><code>focused</code></td><td class="topAlign">The object has keyboard focus.</td></tr>
        /// <tr><td class="topAlign"><code>hasPopup</code></td><td class="topAlign">The object opens a popup.</td></tr>
        /// <tr><td class="topAlign"><code>hotTracked</code></td><td class="topAlign">The object's appearance is sensitive to the mouse cursor position.</td></tr>
        /// <tr><td class="topAlign"><code>invalid</code></td><td class="topAlign">The object is no longer valid (because it has been deleted).</td></tr>
        /// <tr><td class="topAlign"><code>invalidEntry</code></td><td class="topAlign">Input validation current input invalid.</td></tr>
        /// <tr><td class="topAlign"><code>invisible</code></td><td class="topAlign">The object is not visible to the user.</td></tr>
        /// <tr><td class="topAlign"><code>linked</code></td><td class="topAlign">The object is linked to another object, e.g. a hyperlink.</td></tr>
        /// <tr><td class="topAlign"><code>marqueed</code></td><td class="topAlign">The object displays scrolling contents, e.g. a log view.</td></tr>
        /// <tr><td class="topAlign"><code>modal</code></td><td class="topAlign">The object blocks input from other objects.</td></tr>
        /// <tr><td class="topAlign"><code>movable</code></td><td class="topAlign">The object can be moved.</td></tr>
        /// <tr><td class="topAlign"><code>multiLine</code></td><td class="topAlign">The object has multiple lines of text (word wrap), as opposed to a single line.</td></tr>
        /// <tr><td class="topAlign"><code>multiSelectable</code></td><td class="topAlign">The object supports multiple selected items.</td></tr>
        /// <tr><td class="topAlign"><code>offscreen</code></td><td class="topAlign">The object is clipped by the visible area. Objects that are off screen are also invisible.</td></tr>
        /// <tr><td class="topAlign"><code>passwordEdit</code></td><td class="topAlign">The object is a password field, e.g. a line edit for entering a Password.</td></tr>
        /// <tr><td class="topAlign"><code>playsSound</code></td><td class="topAlign">The object produces sound when interacted with.</td></tr>
        /// <tr><td class="topAlign"><code>pressed</code></td><td class="topAlign">The object is pressed.</td></tr>
        /// <tr><td class="topAlign"><code>readOnly</code></td><td class="topAlign">The object can usually be edited, but is explicitly set to read-only.</td></tr>
        /// <tr><td class="topAlign"><code>searchEdit</code></td><td class="topAlign">The object is a line edit that is the input for search queries.</td></tr>
        /// <tr><td class="topAlign"><code>selectable</code></td><td class="topAlign">The object is selectable.</td></tr>
        /// <tr><td class="topAlign"><code>selectableText</code></td><td class="topAlign">The object has text which can be selected. This is different from selectable which refers to the object's children.</td></tr>
        /// <tr><td class="topAlign"><code>selected</code></td><td class="topAlign">The object is selected, this is independent of text selection.</td></tr>
        /// <tr><td class="topAlign"><code>selfVoicing</code></td><td class="topAlign">The object describes itself through speech or sound.</td></tr>
        /// <tr><td class="topAlign"><code>sizeable</code></td><td class="topAlign">The object can be resized, e.g. top-level windows.</td></tr>
        /// <tr><td class="topAlign"><code>summaryElement</code></td><td class="topAlign">The object summarizes the state of the window and should be treated with priority.</td></tr>
        /// <tr><td class="topAlign"><code>supportsAutoCompletion</code></td><td class="topAlign">The object has auto-completion, for example in line edits or combo boxes.</td></tr>
        /// <tr><td class="topAlign"><code>traversed</code></td><td class="topAlign">The object is linked and has been visited.</td></tr>
        /// <tr><td class="topAlign"><code>updatesFrequently</code></td><td class="topAlign">The object changes frequently and needs to be refreshed when accessing it.</td></tr>
        /// <tr><td class="topAlign"><code>disabled</code></td><td class="topAlign">The object is unavailable to the user, e.g. a disabled widget.</td></tr>
        /// </tbody></table></div>
        /// <p>Implementations of <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#statex">QAccessibleInterface::state</a>() return a combination of these flags.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QAccessible_State_dState(
                self as *mut crate::q_accessible::State,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a> class provides enums and static functions related to accessibility.</p>
///
/// C++ class: <span style='color: green;'>```QAccessible```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessible.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a> class provides enums and static functions related to accessibility.</p>
/// <p>This class is part of <a href="http://doc.qt.io/qt-5/accessible-qwidget.html">Accessibility for QWidget Applications</a>.</p>
/// <p>Accessible applications can be used by people who are not able to use applications by conventional means.</p>
/// <p>The functions in this class are used for communication between accessible applications (also called AT Servers) and accessibility tools (AT Clients), such as screen readers and braille displays. Clients and servers communicate in the following way:</p>
/// <ul>
/// <li><i>AT Servers</i> notify the clients about events through calls to the <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">updateAccessibility</a>() function.</li>
/// <li><i>AT Clients</i> request information about the objects in the server. The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> class is the core interface, and encapsulates this information in a pure virtual API. Implementations of the interface are provided by Qt through the <a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">queryAccessibleInterface</a>() API.</li>
/// </ul>
/// <p>The communication between servers and clients is initialized by the <a href="http://doc.qt.io/qt-5/qaccessible.html#setRootObject">setRootObject</a>() function. Function pointers can be installed to replace or extend the default behavior of the static functions in <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a>.</p>
/// <p>Qt supports Microsoft Active Accessibility (MSAA), <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> Accessibility, and the Unix/X11 AT-SPI standard. Other backends can be supported using QAccessibleBridge.</p>
/// <p>In the Unix/X11 AT-SPI implementation, applications become accessible when two conditions are met:</p>
/// <ul>
/// <li>org.a11y.Status.IsEnabled DBus property is true</li>
/// <li>org.a11y.Status.ScreenReaderEnabled DBus property is true</li>
/// </ul>
/// <p>An alternative to setting the DBus AT-SPI properties is to set the QT_LINUX_ACCESSIBILITY_ALWAYS_ON environment variable.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a>'s static functions, Qt offers one generic interface, <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>, that can be used to wrap all widgets and objects (e.g., <a href="http://doc.qt.io/qt-5/qpushbutton.html">QPushButton</a>). This single interface provides all the metadata necessary for the assistive technologies. Qt provides implementations of this interface for its built-in widgets as plugins.</p>
/// <p>When you develop custom widgets, you can create custom subclasses of <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and distribute them as plugins (using <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html">QAccessiblePlugin</a>) or compile them into the application. Likewise, Qt's predefined accessibility support can be built as plugin (the default) or directly into the Qt library. The main advantage of using plugins is that the accessibility classes are only loaded into memory if they are actually used; they don't slow down the common case where no assistive technology is being used.</p>
/// <p>Qt also includes two convenience classes, <a href="http://doc.qt.io/qt-5/qaccessibleobject.html">QAccessibleObject</a> and <a href="http://doc.qt.io/qt-5/qaccessiblewidget.html">QAccessibleWidget</a>, that inherit from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and provide the lowest common denominator of metadata (e.g., widget geometry, window title, basic help text). You can use them as base classes when wrapping your custom <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> or <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> subclasses.</p></div>
#[repr(C)]
pub struct QAccessible {
    _unused: u8,
}
impl QAccessible {
    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> belonging to the <i>id</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QAccessibleInterface* QAccessible::accessibleInterface(unsigned int uniqueId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#accessibleInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> belonging to the <i>id</i>.</p>
    /// <p>Returns 0 if the id is invalid.</p></div>
    #[inline(always)]
    pub unsafe fn accessible_interface(
        unique_id: ::std::os::raw::c_uint,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_accessibleInterface(unique_id);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```static void QAccessible::cleanup()```</span>.
    #[inline(always)]
    pub unsafe fn cleanup() {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_cleanup()
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a> class provides enums and static functions related to accessibility.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessible& QAccessible::operator=(const QAccessible& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a> class provides enums and static functions related to accessibility.</p>
    /// <p>This class is part of <a href="http://doc.qt.io/qt-5/accessible-qwidget.html">Accessibility for QWidget Applications</a>.</p>
    /// <p>Accessible applications can be used by people who are not able to use applications by conventional means.</p>
    /// <p>The functions in this class are used for communication between accessible applications (also called AT Servers) and accessibility tools (AT Clients), such as screen readers and braille displays. Clients and servers communicate in the following way:</p>
    /// <ul>
    /// <li><i>AT Servers</i> notify the clients about events through calls to the <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">updateAccessibility</a>() function.</li>
    /// <li><i>AT Clients</i> request information about the objects in the server. The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> class is the core interface, and encapsulates this information in a pure virtual API. Implementations of the interface are provided by Qt through the <a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">queryAccessibleInterface</a>() API.</li>
    /// </ul>
    /// <p>The communication between servers and clients is initialized by the <a href="http://doc.qt.io/qt-5/qaccessible.html#setRootObject">setRootObject</a>() function. Function pointers can be installed to replace or extend the default behavior of the static functions in <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a>.</p>
    /// <p>Qt supports Microsoft Active Accessibility (MSAA), <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> Accessibility, and the Unix/X11 AT-SPI standard. Other backends can be supported using QAccessibleBridge.</p>
    /// <p>In the Unix/X11 AT-SPI implementation, applications become accessible when two conditions are met:</p>
    /// <ul>
    /// <li>org.a11y.Status.IsEnabled DBus property is true</li>
    /// <li>org.a11y.Status.ScreenReaderEnabled DBus property is true</li>
    /// </ul>
    /// <p>An alternative to setting the DBus AT-SPI properties is to set the QT_LINUX_ACCESSIBILITY_ALWAYS_ON environment variable.</p>
    /// <p>In addition to <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a>'s static functions, Qt offers one generic interface, <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>, that can be used to wrap all widgets and objects (e.g., <a href="http://doc.qt.io/qt-5/qpushbutton.html">QPushButton</a>). This single interface provides all the metadata necessary for the assistive technologies. Qt provides implementations of this interface for its built-in widgets as plugins.</p>
    /// <p>When you develop custom widgets, you can create custom subclasses of <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and distribute them as plugins (using <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html">QAccessiblePlugin</a>) or compile them into the application. Likewise, Qt's predefined accessibility support can be built as plugin (the default) or directly into the Qt library. The main advantage of using plugins is that the accessibility classes are only loaded into memory if they are actually used; they don't slow down the common case where no assistive technology is being used.</p>
    /// <p>Qt also includes two convenience classes, <a href="http://doc.qt.io/qt-5/qaccessibleobject.html">QAccessibleObject</a> and <a href="http://doc.qt.io/qt-5/qaccessiblewidget.html">QAccessibleWidget</a>, that inherit from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and provide the lowest common denominator of metadata (e.g., widget geometry, window title, basic help text). You can use them as base classes when wrapping your custom <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> or <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> subclasses.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessible>>,
    ) -> ::cpp_core::MutRef<crate::QAccessible> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_operator_(
            self as *mut crate::QAccessible,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessible>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Removes the interface belonging to this <i>id</i> from the cache and deletes it. The id becomes invalid an may be re-used by the cache.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QAccessible::deleteAccessibleInterface(unsigned int uniqueId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#deleteAccessibleInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the interface belonging to this <i>id</i> from the cache and deletes it. The id becomes invalid an may be re-used by the cache.</p></div>
    #[inline(always)]
    pub unsafe fn delete_accessible_interface(unique_id: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_deleteAccessibleInterface(unique_id)
    }

    /// Calls C++ function: <span style='color: green;'>```static void (*FN_PTR)(QObject*) QAccessible::installRootObjectHandler(void (*FN_PTR)(QObject*) arg1)```</span>.
    #[inline(always)]
    pub unsafe fn install_root_object_handler(
        arg1: ::std::option::Option<extern "C" fn(*mut ::qt_core::QObject)>,
    ) -> ::std::option::Option<extern "C" fn(*mut ::qt_core::QObject)> {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_installRootObjectHandler(arg1)
    }

    /// Calls C++ function: <span style='color: green;'>```static void (*FN_PTR)(QAccessibleEvent*) QAccessible::installUpdateHandler(void (*FN_PTR)(QAccessibleEvent*) arg1)```</span>.
    #[inline(always)]
    pub unsafe fn install_update_handler(
        arg1: ::std::option::Option<extern "C" fn(*mut crate::QAccessibleEvent)>,
    ) -> ::std::option::Option<extern "C" fn(*mut crate::QAccessibleEvent)> {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_installUpdateHandler(arg1)
    }

    /// <p>Returns <code>true</code> if the platform requested accessibility information.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QAccessible::isActive()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#isActive">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the platform requested accessibility information.</p>
    /// <p>This function will return false until a tool such as a screen reader accessed the accessibility framework. It is still possible to use <a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">QAccessible::queryAccessibleInterface</a>() even if accessibility is not active. But there will be no notifications sent to the platform.</p>
    /// <p>It is recommended to use this function to prevent expensive notifications via <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">updateAccessibility</a>() when they are not needed.</p></div>
    #[inline(always)]
    pub unsafe fn is_active() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_isActive()
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a> class provides enums and static functions related to accessibility.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessible::QAccessible(const QAccessible& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a> class provides enums and static functions related to accessibility.</p>
    /// <p>This class is part of <a href="http://doc.qt.io/qt-5/accessible-qwidget.html">Accessibility for QWidget Applications</a>.</p>
    /// <p>Accessible applications can be used by people who are not able to use applications by conventional means.</p>
    /// <p>The functions in this class are used for communication between accessible applications (also called AT Servers) and accessibility tools (AT Clients), such as screen readers and braille displays. Clients and servers communicate in the following way:</p>
    /// <ul>
    /// <li><i>AT Servers</i> notify the clients about events through calls to the <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">updateAccessibility</a>() function.</li>
    /// <li><i>AT Clients</i> request information about the objects in the server. The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> class is the core interface, and encapsulates this information in a pure virtual API. Implementations of the interface are provided by Qt through the <a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">queryAccessibleInterface</a>() API.</li>
    /// </ul>
    /// <p>The communication between servers and clients is initialized by the <a href="http://doc.qt.io/qt-5/qaccessible.html#setRootObject">setRootObject</a>() function. Function pointers can be installed to replace or extend the default behavior of the static functions in <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a>.</p>
    /// <p>Qt supports Microsoft Active Accessibility (MSAA), <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> Accessibility, and the Unix/X11 AT-SPI standard. Other backends can be supported using QAccessibleBridge.</p>
    /// <p>In the Unix/X11 AT-SPI implementation, applications become accessible when two conditions are met:</p>
    /// <ul>
    /// <li>org.a11y.Status.IsEnabled DBus property is true</li>
    /// <li>org.a11y.Status.ScreenReaderEnabled DBus property is true</li>
    /// </ul>
    /// <p>An alternative to setting the DBus AT-SPI properties is to set the QT_LINUX_ACCESSIBILITY_ALWAYS_ON environment variable.</p>
    /// <p>In addition to <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a>'s static functions, Qt offers one generic interface, <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>, that can be used to wrap all widgets and objects (e.g., <a href="http://doc.qt.io/qt-5/qpushbutton.html">QPushButton</a>). This single interface provides all the metadata necessary for the assistive technologies. Qt provides implementations of this interface for its built-in widgets as plugins.</p>
    /// <p>When you develop custom widgets, you can create custom subclasses of <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and distribute them as plugins (using <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html">QAccessiblePlugin</a>) or compile them into the application. Likewise, Qt's predefined accessibility support can be built as plugin (the default) or directly into the Qt library. The main advantage of using plugins is that the accessibility classes are only loaded into memory if they are actually used; they don't slow down the common case where no assistive technology is being used.</p>
    /// <p>Qt also includes two convenience classes, <a href="http://doc.qt.io/qt-5/qaccessibleobject.html">QAccessibleObject</a> and <a href="http://doc.qt.io/qt-5/qaccessiblewidget.html">QAccessibleWidget</a>, that inherit from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and provide the lowest common denominator of metadata (e.g., widget geometry, window title, basic help text). You can use them as base classes when wrapping your custom <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> or <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> subclasses.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessible>>,
    ) -> ::cpp_core::CppBox<crate::QAccessible> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_QAccessible(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessible>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QPair<int, int> QAccessible::qAccessibleTextBoundaryHelper(const QTextCursor& cursor, QAccessible::TextBoundaryType boundaryType)```</span>.
    #[inline(always)]
    pub unsafe fn q_accessible_text_boundary_helper(
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
        boundary_type: crate::q_accessible::TextBoundaryType,
    ) -> ::cpp_core::CppBox<crate::QPairOfIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_qAccessibleTextBoundaryHelper(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
            boundary_type,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If a <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> implementation exists for the given <i>object</i>, this function returns a pointer to the implementation; otherwise it returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QAccessibleInterface* QAccessible::queryAccessibleInterface(QObject* arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If a <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> implementation exists for the given <i>object</i>, this function returns a pointer to the implementation; otherwise it returns 0.</p>
    /// <p>The function calls all installed factory functions (from most recently installed to least recently installed) until one is found that provides an interface for the class of <i>object</i>. If no factory can provide an accessibility implementation for the class the function loads installed accessibility plugins, and tests if any of the plugins can provide the implementation.</p>
    /// <p>If no implementation for the object's class is available, the function tries to find an implementation for the object's parent class, using the above strategy.</p>
    /// <p>All interfaces are managed by an internal cache and should not be deleted.</p></div>
    #[inline(always)]
    pub unsafe fn query_accessible_interface(
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_queryAccessibleInterface(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(arg1)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Call this function to ensure that manually created interfaces are properly memory managed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static unsigned int QAccessible::registerAccessibleInterface(QAccessibleInterface* iface)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#registerAccessibleInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Call this function to ensure that manually created interfaces are properly memory managed.</p>
    /// <p>Must only be called exactly once per interface <i>iface</i>. This is implicitly called when calling <a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">queryAccessibleInterface</a>, calling this function is only required when QAccessibleInterfaces are instantiated with the "new" operator. This is not recommended, whenever possible use the default functions and let <a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">queryAccessibleInterface</a>() take care of this.</p>
    /// <p>When it is necessary to reimplement the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#child">QAccessibleInterface::child</a>() function and returning the child after constructing it, this function needs to be called.</p></div>
    #[inline(always)]
    pub unsafe fn register_accessible_interface(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
    ) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_registerAccessibleInterface(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                iface,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static void QAccessible::setActive(bool active)```</span>.
    #[inline(always)]
    pub unsafe fn set_active(active: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_setActive(active)
    }

    /// <p>Sets the root object of the accessible objects of this application to <i>object</i>. All other accessible objects are reachable using object navigation from the root object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QAccessible::setRootObject(QObject* object)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#setRootObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the root object of the accessible objects of this application to <i>object</i>. All other accessible objects are reachable using object navigation from the root object.</p>
    /// <p>Normally, it isn't necessary to call this function, because Qt sets the <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> object as the root object immediately before the event loop is entered in <a href="http://doc.qt.io/qt-5/qapplication.html#exec">QApplication::exec</a>().</p>
    /// <p>Use QAccessible::installRootObjectHandler() to redirect the function call to a customized handler function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">queryAccessibleInterface</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_root_object(
        object: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_setRootObject(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(object)
                .as_mut_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessible_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the unique ID for the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> <i>iface</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static unsigned int QAccessible::uniqueId(QAccessibleInterface* iface)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html#uniqueId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the unique ID for the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> <i>iface</i>.</p></div>
    #[inline(always)]
    pub unsafe fn unique_id(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
    ) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_uniqueId(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                iface,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>(<a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a>*) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QAccessible::updateAccessibility(QAccessibleEvent* event)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qaccessible-obsolete.html#updateAccessibility-1">C++ documentation</a> for <span style='color: green;'>```static void QAccessible::updateAccessibility(QObject *object, int child, Event reason)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>(<a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a>*) instead.</p></div>
    #[inline(always)]
    pub unsafe fn update_accessibility(
        event: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleEvent>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_updateAccessibility(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleEvent>>::cast_into(event)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> class defines an interface that exposes information about accessible objects.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleInterface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> class defines an interface that exposes information about accessible objects.</p>
/// <p>This class is part of <a href="http://doc.qt.io/qt-5/accessible-qwidget.html">Accessibility for QWidget Applications</a>.</p>
/// <p>Accessibility tools (also called AT Clients), such as screen readers or braille displays, require high-level information about accessible objects in an application. Accessible objects provide specialized input and output methods, making it possible for users to use accessibility tools with enabled applications (AT Servers).</p>
/// <p>Every element that the user needs to interact with or react to is an accessible object, and should provide this information. These are mainly visual objects, such as widgets and widget elements, but can also be content, such as sounds.</p>
/// <p>The AT client uses three basic concepts to acquire information about any accessible object in an application:</p>
/// <ul>
/// <li><i>Properties</i> The client can read information about accessible objects. In some cases the client can also modify these properties; such as text in a line edit.</li>
/// <li><i>Actions</i> The client can invoke actions like pressing a button or .</li>
/// <li><i>Relationships and Navigation</i> The client can traverse from one accessible object to another, using the relationships between objects.</li>
/// </ul>
/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> defines the API for these three concepts.</p>
/// <a name="relationships-and-navigation"></a></div>
#[repr(C)]
pub struct QAccessibleInterface {
    _unused: u8,
}
impl QAccessibleInterface {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleActionInterface* QAccessibleInterface::actionInterface()```</span>.
    #[inline(always)]
    pub unsafe fn action_interface(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleActionInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_actionInterface(
            self as *mut crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the accessible's background color if applicable or an invalid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QColor QAccessibleInterface::backgroundColor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#backgroundColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the accessible's background color if applicable or an invalid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#foregroundColor">foregroundColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn background_color(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_backgroundColor(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the accessible child with index <i>index</i>. 0-based index. The number of children of an object can be checked with <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childCount">childCount</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessibleInterface* QAccessibleInterface::child(int index) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#child">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the accessible child with index <i>index</i>. 0-based index. The number of children of an object can be checked with <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childCount">childCount</a>.</p>
    /// <p>Returns 0 when asking for an invalid child (e.g. when the child became invalid in the meantime).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childCount">childCount</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#parent">parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn child(
        &self,
        index: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_child(
            self as *const crate::QAccessibleInterface,
            index,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> of a child that contains the screen coordinates (<i>x</i>, <i>y</i>). If there are no children at this position this function returns 0. The returned accessible must be a child, but not necessarily a direct child.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessibleInterface* QAccessibleInterface::childAt(int x, int y) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> of a child that contains the screen coordinates (<i>x</i>, <i>y</i>). If there are no children at this position this function returns 0. The returned accessible must be a child, but not necessarily a direct child.</p>
    /// <p>This function is only relyable for visible objects (invisible object might not be laid out correctly).</p>
    /// <p>All visual objects provide this information.</p>
    /// <p>A default implementation is provided for objects inheriting <a href="http://doc.qt.io/qt-5/qaccessibleobject.html">QAccessibleObject</a>. This will iterate over all children. If the widget manages its children (e.g. a table) it will be more efficient to write a specialized implementation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#rect">rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn child_at(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_childAt(
            self as *const crate::QAccessibleInterface,
            x,
            y,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the number of children that belong to this object. A child can provide accessibility information on its own (e.g. a child widget), or be a sub-element of this accessible object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleInterface::childCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of children that belong to this object. A child can provide accessibility information on its own (e.g. a child widget), or be a sub-element of this accessible object.</p>
    /// <p>All objects provide this information.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#indexOfChild">indexOfChild</a>().</p></div>
    #[inline(always)]
    pub unsafe fn child_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_childCount(
            self as *const crate::QAccessibleInterface,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> class defines an interface that exposes information about accessible objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface& QAccessibleInterface::operator=(const QAccessibleInterface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> class defines an interface that exposes information about accessible objects.</p>
    /// <p>This class is part of <a href="http://doc.qt.io/qt-5/accessible-qwidget.html">Accessibility for QWidget Applications</a>.</p>
    /// <p>Accessibility tools (also called AT Clients), such as screen readers or braille displays, require high-level information about accessible objects in an application. Accessible objects provide specialized input and output methods, making it possible for users to use accessibility tools with enabled applications (AT Servers).</p>
    /// <p>Every element that the user needs to interact with or react to is an accessible object, and should provide this information. These are mainly visual objects, such as widgets and widget elements, but can also be content, such as sounds.</p>
    /// <p>The AT client uses three basic concepts to acquire information about any accessible object in an application:</p>
    /// <ul>
    /// <li><i>Properties</i> The client can read information about accessible objects. In some cases the client can also modify these properties; such as text in a line edit.</li>
    /// <li><i>Actions</i> The client can invoke actions like pressing a button or .</li>
    /// <li><i>Relationships and Navigation</i> The client can traverse from one accessible object to another, using the relationships between objects.</li>
    /// </ul>
    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> defines the API for these three concepts.</p>
    /// <a name="relationships-and-navigation"></a></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessibleInterface>>,
    ) -> ::cpp_core::MutRef<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_operator_(
            self as *mut crate::QAccessibleInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessibleInterface>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEditableTextInterface* QAccessibleInterface::editableTextInterface()```</span>.
    #[inline(always)]
    pub unsafe fn editable_text_interface(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEditableTextInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_editableTextInterface(
            self as *mut crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the object that has the keyboard focus.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QAccessibleInterface* QAccessibleInterface::focusChild() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#focusChild">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the object that has the keyboard focus.</p>
    /// <p>The object returned can be any descendant, including itself.</p></div>
    #[inline(always)]
    pub unsafe fn focus_child(&self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_focusChild(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the accessible's foreground color if applicable or an invalid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QColor QAccessibleInterface::foregroundColor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#foregroundColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the accessible's foreground color if applicable or an invalid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#backgroundColor">backgroundColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn foreground_color(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_foregroundColor(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 0-based index of the object <i>child</i> in this object's children list, or -1 if <i>child</i> is not a child of this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleInterface::indexOfChild(const QAccessibleInterface* arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#indexOfChild">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 0-based index of the object <i>child</i> in this object's children list, or -1 if <i>child</i> is not a child of this object.</p>
    /// <p>All objects provide this information about their children.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childCount">childCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_child(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAccessibleInterface>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_indexOfChild(
            self as *const crate::QAccessibleInterface,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAccessibleInterface>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a specialized accessibility interface <i>type</i> from the generic <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void* QAccessibleInterface::interface_cast(QAccessible::InterfaceType arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#interface_cast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a specialized accessibility interface <i>type</i> from the generic <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>.</p>
    /// <p>This function must be reimplemented when providing more information about a widget or object through the specialized interfaces. For example a line edit should implement the <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>.</p>
    /// <p>Qt's <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a> for example has its accessibility support implemented in QAccessibleLineEdit.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> <span class="operator">*</span><span class="type"><a href="http://doc.qt.io/qt-5/qaccessiblelineedit.html">QAccessibleLineEdit</a></span><span class="operator">::</span>interface_cast(<span class="type"><a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a></span><span class="operator">::</span>InterfaceType t)
    ///   {
    /// &#32;     <span class="keyword">if</span> (t <span class="operator">=</span><span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a></span><span class="operator">::</span>TextInterface)
    /// &#32;   &#32;     <span class="keyword">return</span> <span class="keyword">static_cast</span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a></span><span class="operator">*</span><span class="operator">&gt;</span>(<span class="keyword">this</span>);
    /// &#32;     <span class="keyword">return</span> <span class="type"><a href="http://doc.qt.io/qt-5/qaccessiblewidget.html">QAccessibleWidget</a></span><span class="operator">::</span>interface_cast(t);
    ///   }
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessible.html#InterfaceType-enum">QAccessible::InterfaceType</a>, <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>, <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">QAccessibleValueInterface</a>, <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a>, <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">QAccessibleTableInterface</a>, and <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">QAccessibleTableCellInterface</a>.</p></div>
    #[inline(always)]
    pub unsafe fn interface_cast(
        &mut self,
        arg1: crate::q_accessible::InterfaceType,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_interface_cast(
            self as *mut crate::QAccessibleInterface,
            arg1,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns <code>true</code> if all the data necessary to use this interface implementation is valid (e.g. all pointers are non-null); otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QAccessibleInterface::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if all the data necessary to use this interface implementation is valid (e.g. all pointers are non-null); otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#object">object</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_isValid(
            self as *const crate::QAccessibleInterface,
        )
    }

    /// <p>Returns a pointer to the <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> this interface implementation provides information for.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QObject* QAccessibleInterface::object() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#object">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> this interface implementation provides information for.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn object(&self) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_object(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> of the parent in the accessible object hierarchy.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessibleInterface* QAccessibleInterface::parent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#parent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> of the parent in the accessible object hierarchy.</p>
    /// <p>Returns 0 if no parent exists (e.g. for the top level application object).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#child">child</a>().</p></div>
    #[inline(always)]
    pub unsafe fn parent(&self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_parent(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the geometry of the object. The geometry is in screen coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QRect QAccessibleInterface::rect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the geometry of the object. The geometry is in screen coordinates.</p>
    /// <p>This function is only reliable for visible objects (invisible objects might not be laid out correctly).</p>
    /// <p>All visual objects provide this information.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childAt">childAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_rect(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the meaningful relations to other widgets. Usually this will not return parent/child relations, unless they are handled in a specific way such as in tree views. It will typically return the labelled-by and label relations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>> QAccessibleInterface::relations(QFlags<QAccessible::RelationFlag> match = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#relations">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the meaningful relations to other widgets. Usually this will not return parent/child relations, unless they are handled in a specific way such as in tree views. It will typically return the labelled-by and label relations.</p>
    /// <p>It is possible to filter the relations by using <i>match</i>. It should never return itself.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#parent">parent</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#child">child</a>().</p></div>
    #[inline(always)]
    pub unsafe fn relations_1a(
        &self,
        match_: ::qt_core::QFlags<crate::q_accessible::RelationFlag>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_relations(
            self as *const crate::QAccessibleInterface,
            match_.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the meaningful relations to other widgets. Usually this will not return parent/child relations, unless they are handled in a specific way such as in tree views. It will typically return the labelled-by and label relations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>> QAccessibleInterface::relations() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#relations">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the meaningful relations to other widgets. Usually this will not return parent/child relations, unless they are handled in a specific way such as in tree views. It will typically return the labelled-by and label relations.</p>
    /// <p>It is possible to filter the relations by using <i>match</i>. It should never return itself.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#parent">parent</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#child">child</a>().</p></div>
    #[inline(always)]
    pub unsafe fn relations_0a(
        &self,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_relations1(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the role of the object. The role of an object is usually static.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessible::Role QAccessibleInterface::role() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#role">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the role of the object. The role of an object is usually static.</p>
    /// <p>All accessible objects have a role.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#text">text</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#state">state</a>().</p></div>
    #[inline(always)]
    pub unsafe fn role(&self) -> crate::q_accessible::Role {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_role(
            self as *const crate::QAccessibleInterface,
        )
    }

    /// <p>Sets the text property <i>t</i> of the object to <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleInterface::setText(QAccessible::Text t, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#setText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text property <i>t</i> of the object to <i>text</i>.</p>
    /// <p>Note that the text properties of most objects are read-only so calling this function might have no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#text">text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text(
        &mut self,
        t: crate::q_accessible::Text,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_setText(
            self as *mut crate::QAccessibleInterface,
            t,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the current state of the object. The returned value is a combination of the flags in the QAccessible::StateFlag enumeration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessible::State QAccessibleInterface::state() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#state">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current state of the object. The returned value is a combination of the flags in the QAccessible::StateFlag enumeration.</p>
    /// <p>All accessible objects have a state.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#text">text</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#role">role</a>().</p></div>
    #[inline(always)]
    pub unsafe fn state(&self) -> ::cpp_core::CppBox<crate::q_accessible::State> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_state(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableCellInterface* QAccessibleInterface::tableCellInterface()```</span>.
    #[inline(always)]
    pub unsafe fn table_cell_interface(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTableCellInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_tableCellInterface(
            self as *mut crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableInterface* QAccessibleInterface::tableInterface()```</span>.
    #[inline(always)]
    pub unsafe fn table_interface(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTableInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_tableInterface(
            self as *mut crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value of the text property <i>t</i> of the object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QString QAccessibleInterface::text(QAccessible::Text t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value of the text property <i>t</i> of the object.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Name</a> is a string used by clients to identify, find, or announce an accessible object for the user. All objects must have a name that is unique within their container. The name can be used differently by clients, so the name should both give a short description of the object and be unique.</p>
    /// <p>An accessible object's <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Description</a> provides textual information about an object's visual appearance. The description is primarily used to provide greater context for vision-impaired users, but is also used for context searching or other applications. Not all objects have a description. An "OK" button would not need a description, but a tool button that shows a picture of a smiley would.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Value</a> of an accessible object represents visual information contained by the object, e.g. the text in a line edit. Usually, the value can be modified by the user. Not all objects have a value, e.g. static text labels don't, and some objects have a state that already is the value, e.g. toggle buttons.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Help</a> text provides information about the function and usage of an accessible object. Not all objects provide this information.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Accelerator</a> is a keyboard shortcut that activates the object's default action. A keyboard shortcut is the underlined character in the text of a menu, menu item or widget, and is either the character itself, or a combination of this character and a modifier key like Alt, Ctrl or Shift. Command controls like tool buttons also have shortcut keys and usually display them in their tooltip.</p>
    /// <p>All objects provide a string for <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Name</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#setText">setText</a>(), <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#role">role</a>(), and <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#state">state</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(
        &self,
        t: crate::q_accessible::Text,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_text(
            self as *const crate::QAccessibleInterface,
            t,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInterface* QAccessibleInterface::textInterface()```</span>.
    #[inline(always)]
    pub unsafe fn text_interface(&mut self) -> ::cpp_core::MutPtr<crate::QAccessibleTextInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_textInterface(
            self as *mut crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleValueInterface* QAccessibleInterface::valueInterface()```</span>.
    #[inline(always)]
    pub unsafe fn value_interface(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleValueInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_valueInterface(
            self as *mut crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void QAccessibleInterface::virtual_hook(int id, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn virtual_hook(
        &mut self,
        id: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_virtual_hook(
            self as *mut crate::QAccessibleInterface,
            id,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the window associated with the underlying object. For instance, <a href="http://doc.qt.io/qt-5/qaccessiblewidget.html">QAccessibleWidget</a> reimplements this and returns the windowHandle() of the <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QWindow* QAccessibleInterface::window() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#window">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window associated with the underlying object. For instance, <a href="http://doc.qt.io/qt-5/qaccessiblewidget.html">QAccessibleWidget</a> reimplements this and returns the windowHandle() of the <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>.</p>
    /// <p>It is used on some platforms to be able to notify the AT client about state changes. The backend will traverse up all ancestors until it finds a window. (This means that at least one interface among the ancestors should return a valid <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> pointer).</p>
    /// <p>The default implementation returns 0.</p></div>
    #[inline(always)]
    pub unsafe fn window(&self) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleInterface_window(
            self as *const crate::QAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a> class implements support for text handling.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTextInterface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a> class implements support for text handling.</p>
/// <p>This interface corresponds to the IAccessibleText interface. It should be implemented for widgets that display more text than a plain label. Labels should be represented by only <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and return their text as name (<a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#text">QAccessibleInterface::text</a>() with <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Name</a> as type). The <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a> is typically for text that a screen reader might want to read line by line, and for widgets that support text selection and input. This interface is, for example, implemented for <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a>.</p>
/// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
#[repr(C)]
pub struct QAccessibleTextInterface {
    _unused: u8,
}
impl QAccessibleTextInterface {
    /// <p>Select the text from <i>startOffset</i> to <i>endOffset</i>. The <i>startOffset</i> is the first character that will be selected. The <i>endOffset</i> is the first character that will not be selected.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleTextInterface::addSelection(int startOffset, int endOffset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#addSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Select the text from <i>startOffset</i> to <i>endOffset</i>. The <i>startOffset</i> is the first character that will be selected. The <i>endOffset</i> is the first character that will not be selected.</p>
    /// <p>When the object supports multiple selections (e.g. in a word processor), this adds a new selection, otherwise it replaces the previous selection.</p>
    /// <p>The selection will be <i>endOffset</i> - <i>startOffset</i> characters long.</p></div>
    #[inline(always)]
    pub unsafe fn add_selection(
        &mut self,
        start_offset: ::std::os::raw::c_int,
        end_offset: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_addSelection(
            self as *mut crate::QAccessibleTextInterface,
            start_offset,
            end_offset,
        )
    }

    /// <p>Returns the text attributes at the position <i>offset</i>. In addition the range of the attributes is returned in <i>startOffset</i> and <i>endOffset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QString QAccessibleTextInterface::attributes(int offset, int* startOffset, int* endOffset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#attributes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text attributes at the position <i>offset</i>. In addition the range of the attributes is returned in <i>startOffset</i> and <i>endOffset</i>.</p></div>
    #[inline(always)]
    pub unsafe fn attributes(
        &self,
        offset: ::std::os::raw::c_int,
        start_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        end_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_attributes(
            self as *const crate::QAccessibleTextInterface,
            offset,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                start_offset,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                end_offset,
            )
            .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the length of the text (total size including spaces).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTextInterface::characterCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#characterCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the length of the text (total size including spaces).</p></div>
    #[inline(always)]
    pub unsafe fn character_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_characterCount(
            self as *const crate::QAccessibleTextInterface,
        )
    }

    /// <p>Returns the position and size of the character at position <i>offset</i> in screen coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QRect QAccessibleTextInterface::characterRect(int offset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#characterRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position and size of the character at position <i>offset</i> in screen coordinates.</p></div>
    #[inline(always)]
    pub unsafe fn character_rect(
        &self,
        offset: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_characterRect(
            self as *const crate::QAccessibleTextInterface,
            offset,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a> class implements support for text handling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInterface& QAccessibleTextInterface::operator=(const QAccessibleTextInterface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a> class implements support for text handling.</p>
    /// <p>This interface corresponds to the IAccessibleText interface. It should be implemented for widgets that display more text than a plain label. Labels should be represented by only <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and return their text as name (<a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#text">QAccessibleInterface::text</a>() with <a href="http://doc.qt.io/qt-5/qaccessible.html#Text-enum">QAccessible::Name</a> as type). The <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a> is typically for text that a screen reader might want to read line by line, and for widgets that support text selection and input. This interface is, for example, implemented for <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a>.</p>
    /// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessibleTextInterface>>,
    ) -> ::cpp_core::MutRef<crate::QAccessibleTextInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_operator_(
            self as *mut crate::QAccessibleTextInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessibleTextInterface>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the current cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTextInterface::cursorPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#cursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current cursor position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#setCursorPosition">setCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cursor_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_cursorPosition(
            self as *const crate::QAccessibleTextInterface,
        )
    }

    /// <p>Returns the offset of the character at the <i>point</i> in screen coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTextInterface::offsetAtPoint(const QPoint& point) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#offsetAtPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the offset of the character at the <i>point</i> in screen coordinates.</p></div>
    #[inline(always)]
    pub unsafe fn offset_at_point(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_offsetAtPoint(
            self as *const crate::QAccessibleTextInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>Clears the selection with index <i>selectionIndex</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleTextInterface::removeSelection(int selectionIndex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#removeSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the selection with index <i>selectionIndex</i>.</p></div>
    #[inline(always)]
    pub unsafe fn remove_selection(&mut self, selection_index: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_removeSelection(
            self as *mut crate::QAccessibleTextInterface,
            selection_index,
        )
    }

    /// <p>Ensures that the text between <i>startIndex</i> and <i>endIndex</i> is visible.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleTextInterface::scrollToSubstring(int startIndex, int endIndex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#scrollToSubstring">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Ensures that the text between <i>startIndex</i> and <i>endIndex</i> is visible.</p></div>
    #[inline(always)]
    pub unsafe fn scroll_to_substring(
        &mut self,
        start_index: ::std::os::raw::c_int,
        end_index: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_scrollToSubstring(
            self as *mut crate::QAccessibleTextInterface,
            start_index,
            end_index,
        )
    }

    /// <p>Returns a selection. The size of the selection is returned in <i>startOffset</i> and <i>endOffset</i>. If there is no selection both <i>startOffset</i> and <i>endOffset</i> are 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleTextInterface::selection(int selectionIndex, int* startOffset, int* endOffset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#selection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a selection. The size of the selection is returned in <i>startOffset</i> and <i>endOffset</i>. If there is no selection both <i>startOffset</i> and <i>endOffset</i> are 0.</p>
    /// <p>The accessibility APIs support multiple selections. For most widgets though, only one selection is supported with <i>selectionIndex</i> equal to 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#setSelection">setSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn selection(
        &self,
        selection_index: ::std::os::raw::c_int,
        start_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        end_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_selection(
            self as *const crate::QAccessibleTextInterface,
            selection_index,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                start_offset,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                end_offset,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the number of selections in this text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTextInterface::selectionCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#selectionCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of selections in this text.</p></div>
    #[inline(always)]
    pub unsafe fn selection_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_selectionCount(
            self as *const crate::QAccessibleTextInterface,
        )
    }

    /// <p>Moves the cursor to <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleTextInterface::setCursorPosition(int position)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#setCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the cursor to <i>position</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#cursorPosition">cursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cursor_position(&mut self, position: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_setCursorPosition(
            self as *mut crate::QAccessibleTextInterface,
            position,
        )
    }

    /// <p>Set the selection <i>selectionIndex</i> to the range from <i>startOffset</i> to <i>endOffset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleTextInterface::setSelection(int selectionIndex, int startOffset, int endOffset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#setSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the selection <i>selectionIndex</i> to the range from <i>startOffset</i> to <i>endOffset</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#selection">selection</a>(), <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#addSelection">addSelection</a>(), and <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#removeSelection">removeSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_selection(
        &mut self,
        selection_index: ::std::os::raw::c_int,
        start_offset: ::std::os::raw::c_int,
        end_offset: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_setSelection(
            self as *mut crate::QAccessibleTextInterface,
            selection_index,
            start_offset,
            end_offset,
        )
    }

    /// <p>Returns the text from <i>startOffset</i> to <i>endOffset</i>. The <i>startOffset</i> is the first character that will be returned. The <i>endOffset</i> is the first character that will not be returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QString QAccessibleTextInterface::text(int startOffset, int endOffset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text from <i>startOffset</i> to <i>endOffset</i>. The <i>startOffset</i> is the first character that will be returned. The <i>endOffset</i> is the first character that will not be returned.</p></div>
    #[inline(always)]
    pub unsafe fn text(
        &self,
        start_offset: ::std::os::raw::c_int,
        end_offset: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_text(
            self as *const crate::QAccessibleTextInterface,
            start_offset,
            end_offset,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text item of type <i>boundaryType</i> that is right after offset <i>offset</i> and sets <i>startOffset</i> and <i>endOffset</i> values to the start and end positions of that item; returns an empty string if there is no such an item. Sets <i>startOffset</i> and <i>endOffset</i> values to -1 on error.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QString QAccessibleTextInterface::textAfterOffset(int offset, QAccessible::TextBoundaryType boundaryType, int* startOffset, int* endOffset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#textAfterOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text item of type <i>boundaryType</i> that is right after offset <i>offset</i> and sets <i>startOffset</i> and <i>endOffset</i> values to the start and end positions of that item; returns an empty string if there is no such an item. Sets <i>startOffset</i> and <i>endOffset</i> values to -1 on error.</p>
    /// <p>This default implementation is provided for small text edits. A word processor or text editor should provide their own efficient implementations. This function makes no distinction between paragraphs and lines.</p>
    /// <p><b>Note: </b>this function can not take the cursor position into account. By convention an <i>offset</i> of -2 means that this function should use the cursor position as offset. Thus an offset of -2 must be converted to the cursor position before calling this function. An offset of -1 is used for the text length and custom implementations of this function have to return the result as if the length was passed in as offset.</p></div>
    #[inline(always)]
    pub unsafe fn text_after_offset(
        &self,
        offset: ::std::os::raw::c_int,
        boundary_type: crate::q_accessible::TextBoundaryType,
        start_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        end_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_textAfterOffset(
            self as *const crate::QAccessibleTextInterface,
            offset,
            boundary_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                start_offset,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                end_offset,
            )
            .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text item of type <i>boundaryType</i> at offset <i>offset</i> and sets <i>startOffset</i> and <i>endOffset</i> values to the start and end positions of that item; returns an empty string if there is no such an item. Sets <i>startOffset</i> and <i>endOffset</i> values to -1 on error.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QString QAccessibleTextInterface::textAtOffset(int offset, QAccessible::TextBoundaryType boundaryType, int* startOffset, int* endOffset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#textAtOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text item of type <i>boundaryType</i> at offset <i>offset</i> and sets <i>startOffset</i> and <i>endOffset</i> values to the start and end positions of that item; returns an empty string if there is no such an item. Sets <i>startOffset</i> and <i>endOffset</i> values to -1 on error.</p>
    /// <p>This default implementation is provided for small text edits. A word processor or text editor should provide their own efficient implementations. This function makes no distinction between paragraphs and lines.</p>
    /// <p><b>Note: </b>this function can not take the cursor position into account. By convention an <i>offset</i> of -2 means that this function should use the cursor position as offset. Thus an offset of -2 must be converted to the cursor position before calling this function. An offset of -1 is used for the text length and custom implementations of this function have to return the result as if the length was passed in as offset.</p></div>
    #[inline(always)]
    pub unsafe fn text_at_offset(
        &self,
        offset: ::std::os::raw::c_int,
        boundary_type: crate::q_accessible::TextBoundaryType,
        start_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        end_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_textAtOffset(
            self as *const crate::QAccessibleTextInterface,
            offset,
            boundary_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                start_offset,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                end_offset,
            )
            .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text item of type <i>boundaryType</i> that is close to offset <i>offset</i> and sets <i>startOffset</i> and <i>endOffset</i> values to the start and end positions of that item; returns an empty string if there is no such an item. Sets <i>startOffset</i> and <i>endOffset</i> values to -1 on error.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QString QAccessibleTextInterface::textBeforeOffset(int offset, QAccessible::TextBoundaryType boundaryType, int* startOffset, int* endOffset) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#textBeforeOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text item of type <i>boundaryType</i> that is close to offset <i>offset</i> and sets <i>startOffset</i> and <i>endOffset</i> values to the start and end positions of that item; returns an empty string if there is no such an item. Sets <i>startOffset</i> and <i>endOffset</i> values to -1 on error.</p>
    /// <p>This default implementation is provided for small text edits. A word processor or text editor should provide their own efficient implementations. This function makes no distinction between paragraphs and lines.</p>
    /// <p><b>Note: </b>this function can not take the cursor position into account. By convention an <i>offset</i> of -2 means that this function should use the cursor position as offset. Thus an offset of -2 must be converted to the cursor position before calling this function. An offset of -1 is used for the text length and custom implementations of this function have to return the result as if the length was passed in as offset.</p></div>
    #[inline(always)]
    pub unsafe fn text_before_offset(
        &self,
        offset: ::std::os::raw::c_int,
        boundary_type: crate::q_accessible::TextBoundaryType,
        start_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        end_offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_textBeforeOffset(
            self as *const crate::QAccessibleTextInterface,
            offset,
            boundary_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                start_offset,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(
                end_offset,
            )
            .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html">QAccessibleEditableTextInterface</a> class implements support for objects with editable text.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleEditableTextInterface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html">QAccessibleEditableTextInterface</a> class implements support for objects with editable text.</p>
/// <p>When implementing this interface you will almost certainly also want to implement <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>.</p>
/// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
#[repr(C)]
pub struct QAccessibleEditableTextInterface {
    _unused: u8,
}
impl QAccessibleEditableTextInterface {
    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html">QAccessibleEditableTextInterface</a> class implements support for objects with editable text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEditableTextInterface& QAccessibleEditableTextInterface::operator=(const QAccessibleEditableTextInterface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html">QAccessibleEditableTextInterface</a> class implements support for objects with editable text.</p>
    /// <p>When implementing this interface you will almost certainly also want to implement <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>.</p>
    /// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessibleEditableTextInterface>>,
    ) -> ::cpp_core::MutRef<crate::QAccessibleEditableTextInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleEditableTextInterface_operator_(self as *mut crate::QAccessibleEditableTextInterface, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessibleEditableTextInterface>>::cast_into(other).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Deletes the text from <i>startOffset</i> to <i>endOffset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleEditableTextInterface::deleteText(int startOffset, int endOffset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html#deleteText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Deletes the text from <i>startOffset</i> to <i>endOffset</i>.</p></div>
    #[inline(always)]
    pub unsafe fn delete_text(
        &mut self,
        start_offset: ::std::os::raw::c_int,
        end_offset: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEditableTextInterface_deleteText(
            self as *mut crate::QAccessibleEditableTextInterface,
            start_offset,
            end_offset,
        )
    }

    /// <p>Inserts <i>text</i> at position <i>offset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleEditableTextInterface::insertText(int offset, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html#insertText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>text</i> at position <i>offset</i>.</p></div>
    #[inline(always)]
    pub unsafe fn insert_text(
        &mut self,
        offset: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEditableTextInterface_insertText(
            self as *mut crate::QAccessibleEditableTextInterface,
            offset,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the text from <i>startOffset</i> to <i>endOffset</i> and instead inserts <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleEditableTextInterface::replaceText(int startOffset, int endOffset, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html#replaceText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the text from <i>startOffset</i> to <i>endOffset</i> and instead inserts <i>text</i>.</p></div>
    #[inline(always)]
    pub unsafe fn replace_text(
        &mut self,
        start_offset: ::std::os::raw::c_int,
        end_offset: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEditableTextInterface_replaceText(
            self as *mut crate::QAccessibleEditableTextInterface,
            start_offset,
            end_offset,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">QAccessibleValueInterface</a> class implements support for objects that manipulate a value.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleValueInterface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">QAccessibleValueInterface</a> class implements support for objects that manipulate a value.</p>
/// <p>This interface should be implemented by accessible objects that represent a value. Examples are spinner, slider, dial and scroll bar.</p>
/// <p>Instead of forcing the user to deal with the individual parts of the widgets, this interface gives an easier approach to the kind of widget it represents.</p>
/// <p>Usually this interface is implemented by classes that also implement <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>.</p>
/// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
#[repr(C)]
pub struct QAccessibleValueInterface {
    _unused: u8,
}
impl QAccessibleValueInterface {
    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">QAccessibleValueInterface</a> class implements support for objects that manipulate a value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleValueInterface& QAccessibleValueInterface::operator=(const QAccessibleValueInterface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">QAccessibleValueInterface</a> class implements support for objects that manipulate a value.</p>
    /// <p>This interface should be implemented by accessible objects that represent a value. Examples are spinner, slider, dial and scroll bar.</p>
    /// <p>Instead of forcing the user to deal with the individual parts of the widgets, this interface gives an easier approach to the kind of widget it represents.</p>
    /// <p>Usually this interface is implemented by classes that also implement <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>.</p>
    /// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessibleValueInterface>>,
    ) -> ::cpp_core::MutRef<crate::QAccessibleValueInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueInterface_operator_(
            self as *mut crate::QAccessibleValueInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessibleValueInterface>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the current value of the widget. This is usually a double or int.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QVariant QAccessibleValueInterface::currentValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#currentValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value of the widget. This is usually a double or int.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#setCurrentValue">setCurrentValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_value(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueInterface_currentValue(
            self as *const crate::QAccessibleValueInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the maximum value this object accepts.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QVariant QAccessibleValueInterface::maximumValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#maximumValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum value this object accepts.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#minimumValue">minimumValue</a>() and <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#currentValue">currentValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_value(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueInterface_maximumValue(
            self as *const crate::QAccessibleValueInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the minimum step size for the accessible. This is the smalles increment that makes sense when changing the value. When programatically changing the value it should always be a multiple of the minimum step size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QVariant QAccessibleValueInterface::minimumStepSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#minimumStepSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum step size for the accessible. This is the smalles increment that makes sense when changing the value. When programatically changing the value it should always be a multiple of the minimum step size.</p>
    /// <p>Some tools use this value even when the <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#setCurrentValue">setCurrentValue</a> does not perform any action. Progress bars for example are read-only but should return their range divided by 100.</p></div>
    #[inline(always)]
    pub unsafe fn minimum_step_size(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueInterface_minimumStepSize(
            self as *const crate::QAccessibleValueInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the minimum value this object accepts.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QVariant QAccessibleValueInterface::minimumValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#minimumValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum value this object accepts.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#maximumValue">maximumValue</a>() and <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#currentValue">currentValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn minimum_value(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueInterface_minimumValue(
            self as *const crate::QAccessibleValueInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the <i>value</i>. If the desired <i>value</i> is out of the range of permissible values, this call will be ignored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleValueInterface::setCurrentValue(const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#setCurrentValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>value</i>. If the desired <i>value</i> is out of the range of permissible values, this call will be ignored.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#currentValue">currentValue</a>(), <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#minimumValue">minimumValue</a>(), and <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#maximumValue">maximumValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_current_value(
        &mut self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueInterface_setCurrentValue(
            self as *mut crate::QAccessibleValueInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">QAccessibleTableCellInterface</a> class implements support for the IAccessibleTable2 Cell interface.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTableCellInterface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">QAccessibleTableCellInterface</a> class implements support for the IAccessibleTable2 Cell interface.</p>
/// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
#[repr(C)]
pub struct QAccessibleTableCellInterface {
    _unused: u8,
}
impl QAccessibleTableCellInterface {
    /// <p>Returns the number of columns occupied by this cell accessible.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableCellInterface::columnExtent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#columnExtent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of columns occupied by this cell accessible.</p></div>
    #[inline(always)]
    pub unsafe fn column_extent(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_columnExtent(
            self as *const crate::QAccessibleTableCellInterface,
        )
    }

    /// <p>Returns the column headers as an array of cell accessibles.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QList<QAccessibleInterface*> QAccessibleTableCellInterface::columnHeaderCells() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#columnHeaderCells">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the column headers as an array of cell accessibles.</p></div>
    #[inline(always)]
    pub unsafe fn column_header_cells(
        &self,
    ) -> ::cpp_core::CppBox<crate::QListOfQAccessibleInterface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_columnHeaderCells(
                self as *const crate::QAccessibleTableCellInterface,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Translates this cell accessible into the corresponding column index.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableCellInterface::columnIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#columnIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates this cell accessible into the corresponding column index.</p></div>
    #[inline(always)]
    pub unsafe fn column_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_columnIndex(
            self as *const crate::QAccessibleTableCellInterface,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">QAccessibleTableCellInterface</a> class implements support for the IAccessibleTable2 Cell interface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableCellInterface& QAccessibleTableCellInterface::operator=(const QAccessibleTableCellInterface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">QAccessibleTableCellInterface</a> class implements support for the IAccessibleTable2 Cell interface.</p>
    /// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessibleTableCellInterface>>,
    ) -> ::cpp_core::MutRef<crate::QAccessibleTableCellInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_operator_(self as *mut crate::QAccessibleTableCellInterface, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessibleTableCellInterface>>::cast_into(other).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a boolean value indicating whether this cell is selected.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QAccessibleTableCellInterface::isSelected() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#isSelected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a boolean value indicating whether this cell is selected.</p></div>
    #[inline(always)]
    pub unsafe fn is_selected(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_isSelected(
            self as *const crate::QAccessibleTableCellInterface,
        )
    }

    /// <p>Returns the number of rows occupied by this cell accessible.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableCellInterface::rowExtent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#rowExtent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of rows occupied by this cell accessible.</p></div>
    #[inline(always)]
    pub unsafe fn row_extent(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_rowExtent(
            self as *const crate::QAccessibleTableCellInterface,
        )
    }

    /// <p>Returns the row headers as an array of cell accessibles.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QList<QAccessibleInterface*> QAccessibleTableCellInterface::rowHeaderCells() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#rowHeaderCells">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the row headers as an array of cell accessibles.</p></div>
    #[inline(always)]
    pub unsafe fn row_header_cells(
        &self,
    ) -> ::cpp_core::CppBox<crate::QListOfQAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_rowHeaderCells(
            self as *const crate::QAccessibleTableCellInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Translates this cell accessible into the corresponding row index.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableCellInterface::rowIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#rowIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates this cell accessible into the corresponding row index.</p></div>
    #[inline(always)]
    pub unsafe fn row_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_rowIndex(
            self as *const crate::QAccessibleTableCellInterface,
        )
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> of the table containing this cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessibleInterface* QAccessibleTableCellInterface::table() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#table">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> of the table containing this cell.</p></div>
    #[inline(always)]
    pub unsafe fn table(&self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_table(
            self as *const crate::QAccessibleTableCellInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">QAccessibleTableInterface</a> class implements support for the IAccessibleTable2 interface.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTableInterface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">QAccessibleTableInterface</a> class implements support for the IAccessibleTable2 interface.</p>
/// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
#[repr(C)]
pub struct QAccessibleTableInterface {
    _unused: u8,
}
impl QAccessibleTableInterface {
    /// <p>Returns the caption for the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessibleInterface* QAccessibleTableInterface::caption() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#caption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the caption for the table.</p></div>
    #[inline(always)]
    pub unsafe fn caption(&self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_caption(
            self as *const crate::QAccessibleTableInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the cell at the specified <i>row</i> and <i>column</i> in the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessibleInterface* QAccessibleTableInterface::cellAt(int row, int column) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#cellAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cell at the specified <i>row</i> and <i>column</i> in the table.</p></div>
    #[inline(always)]
    pub unsafe fn cell_at(
        &self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_cellAt(
            self as *const crate::QAccessibleTableInterface,
            row,
            column,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the total number of columns in table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableInterface::columnCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#columnCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the total number of columns in table.</p></div>
    #[inline(always)]
    pub unsafe fn column_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_columnCount(
            self as *const crate::QAccessibleTableInterface,
        )
    }

    /// <p>Returns the description text of the specified <i>column</i> in the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QString QAccessibleTableInterface::columnDescription(int column) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#columnDescription">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the description text of the specified <i>column</i> in the table.</p></div>
    #[inline(always)]
    pub unsafe fn column_description(
        &self,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_columnDescription(
            self as *const crate::QAccessibleTableInterface,
            column,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">QAccessibleTableInterface</a> class implements support for the IAccessibleTable2 interface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableInterface& QAccessibleTableInterface::operator=(const QAccessibleTableInterface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">QAccessibleTableInterface</a> class implements support for the IAccessibleTable2 interface.</p>
    /// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessibleTableInterface>>,
    ) -> ::cpp_core::MutRef<crate::QAccessibleTableInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_operator_(
            self as *mut crate::QAccessibleTableInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessibleTableInterface>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a boolean value indicating whether the specified <i>column</i> is completely selected.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QAccessibleTableInterface::isColumnSelected(int column) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#isColumnSelected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a boolean value indicating whether the specified <i>column</i> is completely selected.</p></div>
    #[inline(always)]
    pub unsafe fn is_column_selected(&self, column: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_isColumnSelected(
            self as *const crate::QAccessibleTableInterface,
            column,
        )
    }

    /// <p>Returns a boolean value indicating whether the specified <i>row</i> is completely selected.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QAccessibleTableInterface::isRowSelected(int row) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#isRowSelected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a boolean value indicating whether the specified <i>row</i> is completely selected.</p></div>
    #[inline(always)]
    pub unsafe fn is_row_selected(&self, row: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_isRowSelected(
            self as *const crate::QAccessibleTableInterface,
            row,
        )
    }

    /// <p>Informs about a change in the model's layout. The <i>event</i> contains the details.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleTableInterface::modelChange(QAccessibleTableModelChangeEvent* event)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#modelChange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Informs about a change in the model's layout. The <i>event</i> contains the details.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html">QAccessibleTableModelChangeEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn model_change(
        &mut self,
        event: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleTableModelChangeEvent>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_modelChange(self as *mut crate::QAccessibleTableInterface, ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleTableModelChangeEvent>>::cast_into(event).as_mut_raw_ptr())
    }

    /// <p>Returns the total number of rows in table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableInterface::rowCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#rowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the total number of rows in table.</p></div>
    #[inline(always)]
    pub unsafe fn row_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_rowCount(
            self as *const crate::QAccessibleTableInterface,
        )
    }

    /// <p>Returns the description text of the specified <i>row</i> in the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QString QAccessibleTableInterface::rowDescription(int row) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#rowDescription">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the description text of the specified <i>row</i> in the table.</p></div>
    #[inline(always)]
    pub unsafe fn row_description(
        &self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_rowDescription(
            self as *const crate::QAccessibleTableInterface,
            row,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Selects <i>column</i>. This function might unselect all previously selected columns. Returns <code>true</code> if the selection was successful.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QAccessibleTableInterface::selectColumn(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#selectColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Selects <i>column</i>. This function might unselect all previously selected columns. Returns <code>true</code> if the selection was successful.</p></div>
    #[inline(always)]
    pub unsafe fn select_column(&mut self, column: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_selectColumn(
            self as *mut crate::QAccessibleTableInterface,
            column,
        )
    }

    /// <p>Selects <i>row</i>. This function might unselect all previously selected rows. Returns <code>true</code> if the selection was successful.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QAccessibleTableInterface::selectRow(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#selectRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Selects <i>row</i>. This function might unselect all previously selected rows. Returns <code>true</code> if the selection was successful.</p></div>
    #[inline(always)]
    pub unsafe fn select_row(&mut self, row: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_selectRow(
            self as *mut crate::QAccessibleTableInterface,
            row,
        )
    }

    /// <p>Returns the total number of selected cells.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableInterface::selectedCellCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#selectedCellCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the total number of selected cells.</p></div>
    #[inline(always)]
    pub unsafe fn selected_cell_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_selectedCellCount(
            self as *const crate::QAccessibleTableInterface,
        )
    }

    /// <p>Returns the list of selected cell (by their index as <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#child">QAccessibleInterface::child</a>() accepts).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QList<QAccessibleInterface*> QAccessibleTableInterface::selectedCells() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#selectedCells">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of selected cell (by their index as <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#child">QAccessibleInterface::child</a>() accepts).</p></div>
    #[inline(always)]
    pub unsafe fn selected_cells(&self) -> ::cpp_core::CppBox<crate::QListOfQAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_selectedCells(
            self as *const crate::QAccessibleTableInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the total number of selected columns.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableInterface::selectedColumnCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#selectedColumnCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the total number of selected columns.</p></div>
    #[inline(always)]
    pub unsafe fn selected_column_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_selectedColumnCount(
            self as *const crate::QAccessibleTableInterface,
        )
    }

    /// <p>Returns the list of currently selected columns.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QList<int> QAccessibleTableInterface::selectedColumns() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#selectedColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of currently selected columns.</p></div>
    #[inline(always)]
    pub unsafe fn selected_columns(&self) -> ::cpp_core::CppBox<::qt_core::QListOfInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_selectedColumns(
            self as *const crate::QAccessibleTableInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the total number of selected rows.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual int QAccessibleTableInterface::selectedRowCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#selectedRowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the total number of selected rows.</p></div>
    #[inline(always)]
    pub unsafe fn selected_row_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_selectedRowCount(
            self as *const crate::QAccessibleTableInterface,
        )
    }

    /// <p>Returns the list of currently selected columns.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QList<int> QAccessibleTableInterface::selectedRows() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#selectedRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of currently selected columns.</p></div>
    #[inline(always)]
    pub unsafe fn selected_rows(&self) -> ::cpp_core::CppBox<::qt_core::QListOfInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_selectedRows(
            self as *const crate::QAccessibleTableInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> that represents a summary of the table. This function may return 0 if no such interface exists.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessibleInterface* QAccessibleTableInterface::summary() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#summary">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> that represents a summary of the table. This function may return 0 if no such interface exists.</p></div>
    #[inline(always)]
    pub unsafe fn summary(&self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_summary(
            self as *const crate::QAccessibleTableInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Unselects <i>column</i>, leaving other selected columns selected (if any). Returns <code>true</code> if the selection was successful.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QAccessibleTableInterface::unselectColumn(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#unselectColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unselects <i>column</i>, leaving other selected columns selected (if any). Returns <code>true</code> if the selection was successful.</p></div>
    #[inline(always)]
    pub unsafe fn unselect_column(&mut self, column: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_unselectColumn(
            self as *mut crate::QAccessibleTableInterface,
            column,
        )
    }

    /// <p>Unselects <i>row</i>, leaving other selected rows selected (if any). Returns <code>true</code> if the selection was successful.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QAccessibleTableInterface::unselectRow(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#unselectRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unselects <i>row</i>, leaving other selected rows selected (if any). Returns <code>true</code> if the selection was successful.</p></div>
    #[inline(always)]
    pub unsafe fn unselect_row(&mut self, row: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_unselectRow(
            self as *mut crate::QAccessibleTableInterface,
            row,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a> class implements support for invocable actions in the interface.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleActionInterface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a> class implements support for invocable actions in the interface.</p>
/// <p>Accessible objects should implement the action interface if they support user interaction. Usually this interface is implemented by classes that also implement <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>.</p>
/// <p>The supported actions should use the predefined actions offered in this class unless they do not fit a predefined action. In that case a custom action can be added.</p>
/// <p>When subclassing <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a> you need to provide a list of <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a> which is the primary means to discover the available actions. Action names are never localized. In order to present actions to the user there are two functions that need to return localized versions of the name and give a description of the action. For the predefined action names use <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">QAccessibleActionInterface::localizedActionName</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionDescription">QAccessibleActionInterface::localizedActionDescription</a>() to return their localized counterparts.</p>
/// <p>In general you should use one of the predefined action names, unless describing an action that does not fit these:</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th>Action name</th><th>Description</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#toggleAction">toggleAction</a>()</td><td>toggles the item (checkbox, radio button, switch, ...)</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#decreaseAction">decreaseAction</a>()</td><td>decrease the value of the accessible (e.g. spinbox)</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#increaseAction">increaseAction</a>()</td><td>increase the value of the accessible (e.g. spinbox)</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#pressAction">pressAction</a>()</td><td>press or click or activate the accessible (should correspont to clicking the object with the mouse)</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#setFocusAction">setFocusAction</a>()</td><td>set the focus to this accessible</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#showMenuAction">showMenuAction</a>()</td><td>show a context menu, corresponds to right-clicks</td></tr>
/// </tbody></table></div>
/// <p>In order to invoke the action, <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#doAction">doAction</a>() is called with an action name.</p>
/// <p>Most widgets will simply implement <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#pressAction">pressAction</a>(). This is what happens when the widget is activated by being clicked, space pressed or similar.</p>
/// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
#[repr(C)]
pub struct QAccessibleActionInterface {
    _unused: u8,
}
impl QAccessibleActionInterface {
    /// <p>Returns the list of actions supported by this accessible object. The actions returned should be in preferred order, i.e. the action that the user most likely wants to trigger should be returned first, while the least likely action should be returned last.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QStringList QAccessibleActionInterface::actionNames() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of actions supported by this accessible object. The actions returned should be in preferred order, i.e. the action that the user most likely wants to trigger should be returned first, while the least likely action should be returned last.</p>
    /// <p>The list does only contain actions that can be invoked. It won't return disabled actions, or actions associated with disabled UI controls.</p>
    /// <p>The list can be empty.</p>
    /// <p>Note that this list is not localized. For a localized representation re-implement <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionDescription">localizedActionDescription</a>()</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#doAction">doAction</a>(), <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>(), and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionDescription">localizedActionDescription</a>().</p></div>
    #[inline(always)]
    pub unsafe fn action_names(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_actionNames(
            self as *const crate::QAccessibleActionInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a> class implements support for invocable actions in the interface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleActionInterface& QAccessibleActionInterface::operator=(const QAccessibleActionInterface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a> class implements support for invocable actions in the interface.</p>
    /// <p>Accessible objects should implement the action interface if they support user interaction. Usually this interface is implemented by classes that also implement <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>.</p>
    /// <p>The supported actions should use the predefined actions offered in this class unless they do not fit a predefined action. In that case a custom action can be added.</p>
    /// <p>When subclassing <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a> you need to provide a list of <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a> which is the primary means to discover the available actions. Action names are never localized. In order to present actions to the user there are two functions that need to return localized versions of the name and give a description of the action. For the predefined action names use <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">QAccessibleActionInterface::localizedActionName</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionDescription">QAccessibleActionInterface::localizedActionDescription</a>() to return their localized counterparts.</p>
    /// <p>In general you should use one of the predefined action names, unless describing an action that does not fit these:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Action name</th><th>Description</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#toggleAction">toggleAction</a>()</td><td>toggles the item (checkbox, radio button, switch, ...)</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#decreaseAction">decreaseAction</a>()</td><td>decrease the value of the accessible (e.g. spinbox)</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#increaseAction">increaseAction</a>()</td><td>increase the value of the accessible (e.g. spinbox)</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#pressAction">pressAction</a>()</td><td>press or click or activate the accessible (should correspont to clicking the object with the mouse)</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#setFocusAction">setFocusAction</a>()</td><td>set the focus to this accessible</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#showMenuAction">showMenuAction</a>()</td><td>show a context menu, corresponds to right-clicks</td></tr>
    /// </tbody></table></div>
    /// <p>In order to invoke the action, <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#doAction">doAction</a>() is called with an action name.</p>
    /// <p>Most widgets will simply implement <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#pressAction">pressAction</a>(). This is what happens when the widget is activated by being clicked, space pressed or similar.</p>
    /// <p><a href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 Specification</a></p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAccessibleActionInterface>>,
    ) -> ::cpp_core::MutRef<crate::QAccessibleActionInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_operator_(
            self as *mut crate::QAccessibleActionInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAccessibleActionInterface>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the name of the decrease default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static const QString& QAccessibleActionInterface::decreaseAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#decreaseAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the decrease default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn decrease_action() -> ::cpp_core::Ref<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_decreaseAction();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Invokes the action specified by <i>actionName</i>. Note that <i>actionName</i> is the non-localized name as returned by <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() This function is usually implemented by calling the same functions that other user interaction, such as clicking the object, would trigger.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QAccessibleActionInterface::doAction(const QString& actionName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#doAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Invokes the action specified by <i>actionName</i>. Note that <i>actionName</i> is the non-localized name as returned by <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() This function is usually implemented by calling the same functions that other user interaction, such as clicking the object, would trigger.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>().</p></div>
    #[inline(always)]
    pub unsafe fn do_action(
        &mut self,
        action_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_doAction(
            self as *mut crate::QAccessibleActionInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(action_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the name of the increase default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static const QString& QAccessibleActionInterface::increaseAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#increaseAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the increase default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn increase_action() -> ::cpp_core::Ref<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_increaseAction();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a list of the keyboard shortcuts available for invoking the action named <i>actionName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QStringList QAccessibleActionInterface::keyBindingsForAction(const QString& actionName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#keyBindingsForAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of the keyboard shortcuts available for invoking the action named <i>actionName</i>.</p>
    /// <p>This is important to let users learn alternative ways of using the application by emphasizing the keyboard.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>().</p></div>
    #[inline(always)]
    pub unsafe fn key_bindings_for_action(
        &self,
        action_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_keyBindingsForAction(
                self as *const crate::QAccessibleActionInterface,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(action_name)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a localized action description of the action <i>actionName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QString QAccessibleActionInterface::localizedActionDescription(const QString& name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionDescription">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a localized action description of the action <i>actionName</i>.</p>
    /// <p>When using one of the default names, you can call this function in <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a> to get the localized string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn localized_action_description(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_localizedActionDescription(
                self as *const crate::QAccessibleActionInterface,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a localized action name of <i>actionName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QString QAccessibleActionInterface::localizedActionName(const QString& name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a localized action name of <i>actionName</i>.</p>
    /// <p>For custom actions this function has to be re-implemented. When using one of the default names, you can call this function in <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a> to get the localized string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionDescription">localizedActionDescription</a>().</p></div>
    #[inline(always)]
    pub unsafe fn localized_action_name(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_localizedActionName(
                self as *const crate::QAccessibleActionInterface,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the next page default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QAccessibleActionInterface::nextPageAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#nextPageAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the next page default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn next_page_action() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_nextPageAction();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the press default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static const QString& QAccessibleActionInterface::pressAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#pressAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the press default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn press_action() -> ::cpp_core::Ref<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_pressAction();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the name of the previous page default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QAccessibleActionInterface::previousPageAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#previousPageAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the previous page default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn previous_page_action() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_previousPageAction();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the scroll down default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QAccessibleActionInterface::scrollDownAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#scrollDownAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the scroll down default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scroll_down_action() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_scrollDownAction();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the scroll left default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QAccessibleActionInterface::scrollLeftAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#scrollLeftAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the scroll left default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scroll_left_action() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_scrollLeftAction();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the scroll right default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QAccessibleActionInterface::scrollRightAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#scrollRightAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the scroll right default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scroll_right_action() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_scrollRightAction();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the scroll up default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QAccessibleActionInterface::scrollUpAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#scrollUpAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the scroll up default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scroll_up_action() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_scrollUpAction();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the set focus default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static const QString& QAccessibleActionInterface::setFocusAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#setFocusAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the set focus default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_focus_action() -> ::cpp_core::Ref<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_setFocusAction();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the name of the show menu default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static const QString& QAccessibleActionInterface::showMenuAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#showMenuAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the show menu default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn show_menu_action() -> ::cpp_core::Ref<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_showMenuAction();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the name of the toggle default action.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static const QString& QAccessibleActionInterface::toggleAction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#toggleAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the toggle default action.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#actionNames">actionNames</a>() and <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#localizedActionName">localizedActionName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn toggle_action() -> ::cpp_core::Ref<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_toggleAction();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QAccessibleActionInterface::tr(const char* sourceText, const char* disambiguation, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        source_text: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        disambiguation: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(
                disambiguation,
            )
            .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QAccessibleActionInterface::trUtf8(const char* sourceText, const char* disambiguation, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        source_text: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        disambiguation: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(
                disambiguation,
            )
            .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a> class is the base class for accessibility notifications.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a> class is the base class for accessibility notifications.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p>
/// <p>The event type is one of the values of <a href="http://doc.qt.io/qt-5/qaccessible.html#Event-enum">QAccessible::Event</a>. There are a number of subclasses that should be used to provide more details about the event.</p>
/// <p>For example to notify about a focus change when re-implementing <a href="http://doc.qt.io/qt-5/qwidget.html#setFocus-1">QWidget::setFocus</a>, the event could be used as follows:</p>
/// <pre class="cpp">
///
///   <span class="type">void</span> MyWidget<span class="operator">::</span>setFocus(<span class="type">Qt</span><span class="operator">::</span>FocusReason reason)
///   {
/// &#32;     <span class="comment">// handle custom focus setting...</span>
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qaccessibleevent.html#QAccessibleEvent">QAccessibleEvent</a></span> event(f<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a></span><span class="operator">::</span>Focus);
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a></span><span class="operator">::</span>updateAccessibility(<span class="operator">&amp;</span>event);
///   }
///
/// </pre>
/// <p>To enable in process screen readers, all events must be sent after the change has happened.</p></div>
#[repr(C)]
pub struct QAccessibleEvent {
    _unused: u8,
}
impl QAccessibleEvent {
    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> associated with the event. The caller of this function takes ownership of the returned interface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QAccessibleInterface* QAccessibleEvent::accessibleInterface() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html#accessibleInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> associated with the event. The caller of this function takes ownership of the returned interface.</p></div>
    #[inline(always)]
    pub unsafe fn accessible_interface(&self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_accessibleInterface(
            self as *const crate::QAccessibleEvent,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the child index.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleEvent::child() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html#child">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the child index.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleevent.html#setChild">setChild</a>().</p></div>
    #[inline(always)]
    pub unsafe fn child(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_child(self as *const crate::QAccessibleEvent)
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a> to notify that <i>object</i> has changed. The event <i>type</i> describes what changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleEvent::QAccessibleEvent(QObject* obj, QAccessible::Event typ)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html#QAccessibleEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a> to notify that <i>object</i> has changed. The event <i>type</i> describes what changed.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object_event(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        typ: crate::q_accessible::Event,
    ) -> ::cpp_core::CppBox<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_QAccessibleEvent(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj)
                .as_mut_raw_ptr(),
            typ,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a> to notify that <i>interface</i> has changed. The event <i>type</i> describes what changed. Use this function if you already have a <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> or no <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>, otherwise consider the overload taking a <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> parameter as it might be cheaper.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleEvent::QAccessibleEvent(QAccessibleInterface* iface, QAccessible::Event typ)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html#QAccessibleEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qaccessibleevent.html">QAccessibleEvent</a> to notify that <i>interface</i> has changed. The event <i>type</i> describes what changed. Use this function if you already have a <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> or no <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>, otherwise consider the overload taking a <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> parameter as it might be cheaper.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface_event(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        typ: crate::q_accessible::Event,
    ) -> ::cpp_core::CppBox<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_QAccessibleEvent1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                iface,
            )
            .as_mut_raw_ptr(),
            typ,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QObject* QAccessibleEvent::object() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html#object">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the event object.</p></div>
    #[inline(always)]
    pub unsafe fn object(&self) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_object(
            self as *const crate::QAccessibleEvent,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the child index to <i>child</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleEvent::setChild(int chld)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html#setChild">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the child index to <i>child</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibleevent.html#child">child</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_child(&mut self, chld: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_setChild(
            self as *mut crate::QAccessibleEvent,
            chld,
        )
    }

    /// <p>Returns the event type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessible::Event QAccessibleEvent::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the event type.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_accessible::Event {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_type(self as *const crate::QAccessibleEvent)
    }

    /// Calls C++ function: <span style='color: green;'>```unsigned int QAccessibleEvent::uniqueId() const```</span>.
    #[inline(always)]
    pub unsafe fn unique_id(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_uniqueId(
            self as *const crate::QAccessibleEvent,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html">QAccessibleStateChangeEvent</a> notfies the accessibility framework that the state of an object has changed.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleStateChangeEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html">QAccessibleStateChangeEvent</a> notfies the accessibility framework that the state of an object has changed.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p></div>
#[repr(C)]
pub struct QAccessibleStateChangeEvent {
    _unused: u8,
}
impl QAccessibleStateChangeEvent {
    /// <p>Returns the states that have been changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessible::State QAccessibleStateChangeEvent::changedStates() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html#changedStates">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the states that have been changed.</p>
    /// <p>Keep in mind that the returned states are the ones that have changed. To find out about the state of an object, use <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#state">QAccessibleInterface::state</a>().</p>
    /// <p>For example, if an object used to have the focus but loses it, the object's state will have focused set to <code>false</code>. This event on the other hand tells about the change and has focused set to <code>true</code> since the focus state is changed from <code>true</code> to <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn changed_states(&self) -> ::cpp_core::CppBox<crate::q_accessible::State> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleStateChangeEvent_changedStates(
            self as *const crate::QAccessibleStateChangeEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html">QAccessibleStateChangeEvent</a> for <i>object</i>. The difference to the object's previous state is in <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleStateChangeEvent::QAccessibleStateChangeEvent(QObject* obj, QAccessible::State state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html#QAccessibleStateChangeEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html">QAccessibleStateChangeEvent</a> for <i>object</i>. The difference to the object's previous state is in <i>state</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object_state(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        state: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_accessible::State>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleStateChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleStateChangeEvent_QAccessibleStateChangeEvent(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj)
                    .as_mut_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_accessible::State>>::cast_into(
                    state,
                )
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html">QAccessibleStateChangeEvent</a>. <i>iface</i> is the interface associated with the event <i>state</i> is the state of the accessible object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleStateChangeEvent::QAccessibleStateChangeEvent(QAccessibleInterface* iface, QAccessible::State state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html#QAccessibleStateChangeEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessiblestatechangeevent.html">QAccessibleStateChangeEvent</a>. <i>iface</i> is the interface associated with the event <i>state</i> is the state of the accessible object.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface_state(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        state: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_accessible::State>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleStateChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleStateChangeEvent_QAccessibleStateChangeEvent1(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                    iface,
                )
                .as_mut_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_accessible::State>>::cast_into(
                    state,
                )
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html">QAccessibleTextCursorEvent</a> class notifies of cursor movements.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTextCursorEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html">QAccessibleTextCursorEvent</a> class notifies of cursor movements.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p></div>
#[repr(C)]
pub struct QAccessibleTextCursorEvent {
    _unused: u8,
}
impl QAccessibleTextCursorEvent {
    /// <p>Returns the cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTextCursorEvent::cursorPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#cursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor position.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#setCursorPosition">setCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cursor_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextCursorEvent_cursorPosition(
            self as *const crate::QAccessibleTextCursorEvent,
        )
    }

    /// <p>Create a new <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html">QAccessibleTextCursorEvent</a> for <i>object</i>. The <i>cursorPos</i> is the new cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextCursorEvent::QAccessibleTextCursorEvent(QObject* obj, int cursorPos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#QAccessibleTextCursorEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Create a new <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html">QAccessibleTextCursorEvent</a> for <i>object</i>. The <i>cursorPos</i> is the new cursor position.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object_int(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        cursor_pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextCursorEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextCursorEvent_QAccessibleTextCursorEvent(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj)
                    .as_mut_raw_ptr(),
                cursor_pos,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Create a new <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html">QAccessibleTextCursorEvent</a> for <i>iface</i>, The <i>cursorPos</i> is the new cursor position.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextCursorEvent::QAccessibleTextCursorEvent(QAccessibleInterface* iface, int cursorPos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#QAccessibleTextCursorEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Create a new <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html">QAccessibleTextCursorEvent</a> for <i>iface</i>, The <i>cursorPos</i> is the new cursor position.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface_int(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        cursor_pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextCursorEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextCursorEvent_QAccessibleTextCursorEvent1(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                    iface,
                )
                .as_mut_raw_ptr(),
                cursor_pos,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the cursor <i>position</i> for this event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleTextCursorEvent::setCursorPosition(int position)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#setCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the cursor <i>position</i> for this event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#cursorPosition">cursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cursor_position(&mut self, position: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextCursorEvent_setCursorPosition(
            self as *mut crate::QAccessibleTextCursorEvent,
            position,
        )
    }
}

/// <p><a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html">QAccessibleTextSelectionEvent</a> signals a change in the text selection of an object.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTextSelectionEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html">QAccessibleTextSelectionEvent</a> signals a change in the text selection of an object.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p></div>
#[repr(C)]
pub struct QAccessibleTextSelectionEvent {
    _unused: u8,
}
impl QAccessibleTextSelectionEvent {
    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html">QAccessibleTextSelectionEvent</a> for <i>object</i>. The new selection this event notifies about is from position <i>start</i> to <i>end</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextSelectionEvent::QAccessibleTextSelectionEvent(QObject* obj, int start, int end)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html#QAccessibleTextSelectionEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html">QAccessibleTextSelectionEvent</a> for <i>object</i>. The new selection this event notifies about is from position <i>start</i> to <i>end</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object2_int(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        start: ::std::os::raw::c_int,
        end: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextSelectionEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextSelectionEvent_QAccessibleTextSelectionEvent(::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj).as_mut_raw_ptr(), start, end);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html">QAccessibleTextSelectionEvent</a> for <i>iface</i>. The new selection this event notifies about is from position <i>start</i> to <i>end</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextSelectionEvent::QAccessibleTextSelectionEvent(QAccessibleInterface* iface, int start, int end)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html#QAccessibleTextSelectionEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html">QAccessibleTextSelectionEvent</a> for <i>iface</i>. The new selection this event notifies about is from position <i>start</i> to <i>end</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface2_int(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        start: ::std::os::raw::c_int,
        end: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextSelectionEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextSelectionEvent_QAccessibleTextSelectionEvent1(::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(iface).as_mut_raw_ptr(), start, end);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the last selected character.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTextSelectionEvent::selectionEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html#selectionEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the last selected character.</p></div>
    #[inline(always)]
    pub unsafe fn selection_end(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextSelectionEvent_selectionEnd(
            self as *const crate::QAccessibleTextSelectionEvent,
        )
    }

    /// <p>Returns the position of the first selected character.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTextSelectionEvent::selectionStart() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html#selectionStart">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the first selected character.</p></div>
    #[inline(always)]
    pub unsafe fn selection_start(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextSelectionEvent_selectionStart(
            self as *const crate::QAccessibleTextSelectionEvent,
        )
    }

    /// <p>Sets the selection for this event from position <i>start</i> to <i>end</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleTextSelectionEvent::setSelection(int start, int end)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextselectionevent.html#setSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the selection for this event from position <i>start</i> to <i>end</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_selection(
        &mut self,
        start: ::std::os::raw::c_int,
        end: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextSelectionEvent_setSelection(
            self as *mut crate::QAccessibleTextSelectionEvent,
            start,
            end,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html">QAccessibleTextInsertEvent</a> class notifies of text being inserted.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTextInsertEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html">QAccessibleTextInsertEvent</a> class notifies of text being inserted.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p></div>
#[repr(C)]
pub struct QAccessibleTextInsertEvent {
    _unused: u8,
}
impl QAccessibleTextInsertEvent {
    /// <p>Returns the position where the text was inserted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTextInsertEvent::changePosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html#changePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position where the text was inserted.</p></div>
    #[inline(always)]
    pub unsafe fn change_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInsertEvent_changePosition(
            self as *const crate::QAccessibleTextInsertEvent,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html">QAccessibleTextInsertEvent</a> event for <i>object</i>. The <i>text</i> has been inserted at <i>position</i>. By default, it is assumed that the cursor has moved to the end of the selection. If that is not the case, one needs to manually set it with <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#setCursorPosition">QAccessibleTextCursorEvent::setCursorPosition</a>() for this event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextInsertEvent::QAccessibleTextInsertEvent(QObject* obj, int position, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html#QAccessibleTextInsertEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html">QAccessibleTextInsertEvent</a> event for <i>object</i>. The <i>text</i> has been inserted at <i>position</i>. By default, it is assumed that the cursor has moved to the end of the selection. If that is not the case, one needs to manually set it with <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#setCursorPosition">QAccessibleTextCursorEvent::setCursorPosition</a>() for this event.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object_int_q_string(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        position: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextInsertEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInsertEvent_QAccessibleTextInsertEvent(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj)
                    .as_mut_raw_ptr(),
                position,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html">QAccessibleTextInsertEvent</a> event for <i>iface</i>. The text has been inserted at <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextInsertEvent::QAccessibleTextInsertEvent(QAccessibleInterface* iface, int position, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html#QAccessibleTextInsertEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html">QAccessibleTextInsertEvent</a> event for <i>iface</i>. The text has been inserted at <i>position</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface_int_q_string(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        position: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextInsertEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInsertEvent_QAccessibleTextInsertEvent1(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                    iface,
                )
                .as_mut_raw_ptr(),
                position,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text that has been inserted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QAccessibleTextInsertEvent::textInserted() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinsertevent.html#textInserted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text that has been inserted.</p></div>
    #[inline(always)]
    pub unsafe fn text_inserted(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInsertEvent_textInserted(
            self as *const crate::QAccessibleTextInsertEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html">QAccessibleTextRemoveEvent</a> class notifies of text being deleted.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTextRemoveEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html">QAccessibleTextRemoveEvent</a> class notifies of text being deleted.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p></div>
#[repr(C)]
pub struct QAccessibleTextRemoveEvent {
    _unused: u8,
}
impl QAccessibleTextRemoveEvent {
    /// <p>Returns the position where the text was removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTextRemoveEvent::changePosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html#changePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position where the text was removed.</p></div>
    #[inline(always)]
    pub unsafe fn change_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextRemoveEvent_changePosition(
            self as *const crate::QAccessibleTextRemoveEvent,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html">QAccessibleTextRemoveEvent</a> event for <i>object</i>. The <i>text</i> has been removed at <i>position</i>. By default it is assumed that the cursor has moved to <i>position</i>. If that is not the case, one needs to manually set it with <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#setCursorPosition">QAccessibleTextCursorEvent::setCursorPosition</a>() for this event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextRemoveEvent::QAccessibleTextRemoveEvent(QObject* obj, int position, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html#QAccessibleTextRemoveEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html">QAccessibleTextRemoveEvent</a> event for <i>object</i>. The <i>text</i> has been removed at <i>position</i>. By default it is assumed that the cursor has moved to <i>position</i>. If that is not the case, one needs to manually set it with <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#setCursorPosition">QAccessibleTextCursorEvent::setCursorPosition</a>() for this event.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object_int_q_string(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        position: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextRemoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextRemoveEvent_QAccessibleTextRemoveEvent(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj)
                    .as_mut_raw_ptr(),
                position,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html">QAccessibleTextRemoveEvent</a> event for <i>iface</i>. The <i>text</i> has been removed at <i>position</i>. By default it is assumed that the cursor has moved to <i>position</i>. If that is not the case, one needs to manually set it with <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#setCursorPosition">QAccessibleTextCursorEvent::setCursorPosition</a>() for this event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextRemoveEvent::QAccessibleTextRemoveEvent(QAccessibleInterface* iface, int position, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html#QAccessibleTextRemoveEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html">QAccessibleTextRemoveEvent</a> event for <i>iface</i>. The <i>text</i> has been removed at <i>position</i>. By default it is assumed that the cursor has moved to <i>position</i>. If that is not the case, one needs to manually set it with <a href="http://doc.qt.io/qt-5/qaccessibletextcursorevent.html#setCursorPosition">QAccessibleTextCursorEvent::setCursorPosition</a>() for this event.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface_int_q_string(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        position: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextRemoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextRemoveEvent_QAccessibleTextRemoveEvent1(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                    iface,
                )
                .as_mut_raw_ptr(),
                position,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text that has been removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QAccessibleTextRemoveEvent::textRemoved() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextremoveevent.html#textRemoved">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text that has been removed.</p></div>
    #[inline(always)]
    pub unsafe fn text_removed(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextRemoveEvent_textRemoved(
            self as *const crate::QAccessibleTextRemoveEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html">QAccessibleTextUpdateEvent</a> class notifies about text changes. This is for accessibles that support editable text such as line edits. This event occurs for example when a portion of selected text gets replaced by pasting a new text or in override mode of editors.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTextUpdateEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html">QAccessibleTextUpdateEvent</a> class notifies about text changes. This is for accessibles that support editable text such as line edits. This event occurs for example when a portion of selected text gets replaced by pasting a new text or in override mode of editors.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p></div>
#[repr(C)]
pub struct QAccessibleTextUpdateEvent {
    _unused: u8,
}
impl QAccessibleTextUpdateEvent {
    /// <p>Returns where the change took place.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTextUpdateEvent::changePosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html#changePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns where the change took place.</p></div>
    #[inline(always)]
    pub unsafe fn change_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextUpdateEvent_changePosition(
            self as *const crate::QAccessibleTextUpdateEvent,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html">QAccessibleTextUpdateEvent</a> for <i>object</i>. The text change takes place at <i>position</i> where the <i>oldText</i> was removed and <i>text</i> inserted instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextUpdateEvent::QAccessibleTextUpdateEvent(QObject* obj, int position, const QString& oldText, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html#QAccessibleTextUpdateEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html">QAccessibleTextUpdateEvent</a> for <i>object</i>. The text change takes place at <i>position</i> where the <i>oldText</i> was removed and <i>text</i> inserted instead.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object_int2_q_string(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        position: ::std::os::raw::c_int,
        old_text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextUpdateEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextUpdateEvent_QAccessibleTextUpdateEvent(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj)
                    .as_mut_raw_ptr(),
                position,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(old_text)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html">QAccessibleTextUpdateEvent</a> for <i>iface</i>. The text change takes place at <i>position</i> where the <i>oldText</i> was removed and <i>text</i> inserted instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTextUpdateEvent::QAccessibleTextUpdateEvent(QAccessibleInterface* iface, int position, const QString& oldText, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html#QAccessibleTextUpdateEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html">QAccessibleTextUpdateEvent</a> for <i>iface</i>. The text change takes place at <i>position</i> where the <i>oldText</i> was removed and <i>text</i> inserted instead.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface_int2_q_string(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        position: ::std::os::raw::c_int,
        old_text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTextUpdateEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextUpdateEvent_QAccessibleTextUpdateEvent1(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                    iface,
                )
                .as_mut_raw_ptr(),
                position,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(old_text)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the inserted text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QAccessibleTextUpdateEvent::textInserted() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html#textInserted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inserted text.</p></div>
    #[inline(always)]
    pub unsafe fn text_inserted(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextUpdateEvent_textInserted(
            self as *const crate::QAccessibleTextUpdateEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the removed text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QAccessibleTextUpdateEvent::textRemoved() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextupdateevent.html#textRemoved">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the removed text.</p></div>
    #[inline(always)]
    pub unsafe fn text_removed(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextUpdateEvent_textRemoved(
            self as *const crate::QAccessibleTextUpdateEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html">QAccessibleValueChangeEvent</a> describes a change in value for an accessible object.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleValueChangeEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html">QAccessibleValueChangeEvent</a> describes a change in value for an accessible object.</p>
/// <p>It contains the new value.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p></div>
#[repr(C)]
pub struct QAccessibleValueChangeEvent {
    _unused: u8,
}
impl QAccessibleValueChangeEvent {
    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html">QAccessibleValueChangeEvent</a> for <i>object</i>. The event contains the new <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleValueChangeEvent::QAccessibleValueChangeEvent(QObject* obj, const QVariant& val)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html#QAccessibleValueChangeEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html">QAccessibleValueChangeEvent</a> for <i>object</i>. The event contains the new <i>value</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object_q_variant(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        val: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleValueChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueChangeEvent_QAccessibleValueChangeEvent(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj)
                    .as_mut_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(val)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html">QAccessibleValueChangeEvent</a> for <i>iface</i>. The event contains the new value <i>val</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleValueChangeEvent::QAccessibleValueChangeEvent(QAccessibleInterface* iface, const QVariant& val)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html#QAccessibleValueChangeEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html">QAccessibleValueChangeEvent</a> for <i>iface</i>. The event contains the new value <i>val</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface_q_variant(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        val: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) -> ::cpp_core::CppBox<crate::QAccessibleValueChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueChangeEvent_QAccessibleValueChangeEvent1(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(
                    iface,
                )
                .as_mut_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(val)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the new <i>value</i> for this event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleValueChangeEvent::setValue(const QVariant& val)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html#setValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the new <i>value</i> for this event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_value(
        &mut self,
        val: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueChangeEvent_setValue(
            self as *mut crate::QAccessibleValueChangeEvent,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(val)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the new value of the accessible object of this event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QAccessibleValueChangeEvent::value() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the new value of the accessible object of this event.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessiblevaluechangeevent.html#setValue">setValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueChangeEvent_value(
            self as *const crate::QAccessibleValueChangeEvent,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_accessible_table_model_change_event {
    //! C++ type: <span style='color: green;'>```QAccessibleTableModelChangeEvent```</span>

    /// <p>This enum describes the different types of changes in the table model.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QAccessibleTableModelChangeEvent::ModelChangeType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#ModelChangeType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different types of changes in the table model.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ModelChangeType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ModelChangeType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ModelChangeType(value)
        }
    }

    impl From<ModelChangeType> for ::std::os::raw::c_int {
        fn from(value: ModelChangeType) -> Self {
            value.0
        }
    }

    impl ModelChangeType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ModelChangeType {
        /// The model has been reset, all previous knowledge about the model is now invalid. (C++ enum variant: <span style='color: green;'>```ModelReset = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const ModelReset: crate::q_accessible_table_model_change_event::ModelChangeType =
            crate::q_accessible_table_model_change_event::ModelChangeType(0);
        /// No cells have been added or removed, but the data of the specified cell range is invalid. (C++ enum variant: <span style='color: green;'>```DataChanged = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const DataChanged: crate::q_accessible_table_model_change_event::ModelChangeType =
            crate::q_accessible_table_model_change_event::ModelChangeType(1);
        /// New rows have been inserted. (C++ enum variant: <span style='color: green;'>```RowsInserted = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const RowsInserted: crate::q_accessible_table_model_change_event::ModelChangeType =
            crate::q_accessible_table_model_change_event::ModelChangeType(2);
        /// New columns have been inserted. (C++ enum variant: <span style='color: green;'>```ColumnsInserted = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ColumnsInserted: crate::q_accessible_table_model_change_event::ModelChangeType =
            crate::q_accessible_table_model_change_event::ModelChangeType(3);
        /// Rows have been removed. (C++ enum variant: <span style='color: green;'>```RowsRemoved = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const RowsRemoved: crate::q_accessible_table_model_change_event::ModelChangeType =
            crate::q_accessible_table_model_change_event::ModelChangeType(4);
        /// Columns have been removed. (C++ enum variant: <span style='color: green;'>```ColumnsRemoved = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const ColumnsRemoved: crate::q_accessible_table_model_change_event::ModelChangeType =
            crate::q_accessible_table_model_change_event::ModelChangeType(5);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html">QAccessibleTableModelChangeEvent</a> signifies a change in a table, list, or tree where cells are added or removed. If the change affected a number of rows, <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#firstColumn">firstColumn</a> and <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#lastColumn">lastColumn</a> will return -1. Likewise for columns, the row functions may return -1.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleTableModelChangeEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html">QAccessibleTableModelChangeEvent</a> signifies a change in a table, list, or tree where cells are added or removed. If the change affected a number of rows, <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#firstColumn">firstColumn</a> and <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#lastColumn">lastColumn</a> will return -1. Likewise for columns, the row functions may return -1.</p>
/// <p>This class is used with <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">QAccessible::updateAccessibility</a>().</p></div>
#[repr(C)]
pub struct QAccessibleTableModelChangeEvent {
    _unused: u8,
}
impl QAccessibleTableModelChangeEvent {
    /// <p>Returns the first changed column.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTableModelChangeEvent::firstColumn() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#firstColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first changed column.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setFirstColumn">setFirstColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_column(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_firstColumn(
            self as *const crate::QAccessibleTableModelChangeEvent,
        )
    }

    /// <p>Returns the first changed row.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTableModelChangeEvent::firstRow() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#firstRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first changed row.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setFirstRow">setFirstRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_row(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_firstRow(
            self as *const crate::QAccessibleTableModelChangeEvent,
        )
    }

    /// <p>Returns the last changed column.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTableModelChangeEvent::lastColumn() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#lastColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the last changed column.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setLastColumn">setLastColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_column(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_lastColumn(
            self as *const crate::QAccessibleTableModelChangeEvent,
        )
    }

    /// <p>Returns the last changed row.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QAccessibleTableModelChangeEvent::lastRow() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#lastRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the last changed row.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setLastRow">setLastRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_row(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_lastRow(
            self as *const crate::QAccessibleTableModelChangeEvent,
        )
    }

    /// <p>Returns the type of change.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableModelChangeEvent::ModelChangeType QAccessibleTableModelChangeEvent::modelChangeType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#modelChangeType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of change.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setModelChangeType">setModelChangeType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn model_change_type(
        &self,
    ) -> crate::q_accessible_table_model_change_event::ModelChangeType {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_modelChangeType(
            self as *const crate::QAccessibleTableModelChangeEvent,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html">QAccessibleTableModelChangeEvent</a> for <i>object</i> of with <i>changeType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTableModelChangeEvent::QAccessibleTableModelChangeEvent(QObject* obj, QAccessibleTableModelChangeEvent::ModelChangeType changeType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#QAccessibleTableModelChangeEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html">QAccessibleTableModelChangeEvent</a> for <i>object</i> of with <i>changeType</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object_model_change_type(
        obj: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        change_type: crate::q_accessible_table_model_change_event::ModelChangeType,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTableModelChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_QAccessibleTableModelChangeEvent(::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(obj).as_mut_raw_ptr(), change_type);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html">QAccessibleTableModelChangeEvent</a> for interface <i>iface</i> with a model change type <i>changeType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAccessibleTableModelChangeEvent::QAccessibleTableModelChangeEvent(QAccessibleInterface* iface, QAccessibleTableModelChangeEvent::ModelChangeType changeType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#QAccessibleTableModelChangeEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html">QAccessibleTableModelChangeEvent</a> for interface <i>iface</i> with a model change type <i>changeType</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_accessible_interface_model_change_type(
        iface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QAccessibleInterface>>,
        change_type: crate::q_accessible_table_model_change_event::ModelChangeType,
    ) -> ::cpp_core::CppBox<crate::QAccessibleTableModelChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_QAccessibleTableModelChangeEvent1(::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QAccessibleInterface>>::cast_into(iface).as_mut_raw_ptr(), change_type);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the first changed <i>column</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleTableModelChangeEvent::setFirstColumn(int col)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setFirstColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the first changed <i>column</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#firstColumn">firstColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_first_column(&mut self, col: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_setFirstColumn(
            self as *mut crate::QAccessibleTableModelChangeEvent,
            col,
        )
    }

    /// <p>Sets the first changed <i>row</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleTableModelChangeEvent::setFirstRow(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setFirstRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the first changed <i>row</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#firstRow">firstRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_first_row(&mut self, row: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_setFirstRow(
            self as *mut crate::QAccessibleTableModelChangeEvent,
            row,
        )
    }

    /// <p>Sets the last changed <i>column</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleTableModelChangeEvent::setLastColumn(int col)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setLastColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the last changed <i>column</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#lastColumn">lastColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_last_column(&mut self, col: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_setLastColumn(
            self as *mut crate::QAccessibleTableModelChangeEvent,
            col,
        )
    }

    /// <p>Sets the last changed <i>row</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleTableModelChangeEvent::setLastRow(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setLastRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the last changed <i>row</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#lastRow">lastRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_last_row(&mut self, row: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_setLastRow(
            self as *mut crate::QAccessibleTableModelChangeEvent,
            row,
        )
    }

    /// <p>Sets the type of change to <i>changeType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QAccessibleTableModelChangeEvent::setModelChangeType(QAccessibleTableModelChangeEvent::ModelChangeType changeType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#setModelChangeType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the type of change to <i>changeType</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qaccessibletablemodelchangeevent.html#modelChangeType">modelChangeType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_model_change_type(
        &mut self,
        change_type: crate::q_accessible_table_model_change_event::ModelChangeType,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_setModelChangeType(
            self as *mut crate::QAccessibleTableModelChangeEvent,
            change_type,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleobject.html">QAccessibleObject</a> class implements parts of the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> for QObjects.</p>
///
/// C++ class: <span style='color: green;'>```QAccessibleObject```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibleobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleobject.html">QAccessibleObject</a> class implements parts of the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> for QObjects.</p>
/// <p>This class is part of <a href="http://doc.qt.io/qt-5/accessible-qwidget.html">Accessibility for QWidget Applications</a>.</p>
/// <p>This class is mainly provided for convenience. All subclasses of the <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> that provide implementations of non-widget objects should use this class as their base class.</p></div>
#[repr(C)]
pub struct QAccessibleObject {
    _unused: u8,
}
impl QAccessibleObject {
    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childAt">QAccessibleInterface::childAt</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QAccessibleInterface* QAccessibleObject::childAt(int x, int y) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleobject.html#childAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#childAt">QAccessibleInterface::childAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn child_at(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleObject_childAt(
            self as *const crate::QAccessibleObject,
            x,
            y,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#isValid">QAccessibleInterface::isValid</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QAccessibleObject::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleobject.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#isValid">QAccessibleInterface::isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleObject_isValid(
            self as *const crate::QAccessibleObject,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#object">QAccessibleInterface::object</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QObject* QAccessibleObject::object() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleobject.html#object">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#object">QAccessibleInterface::object</a>().</p></div>
    #[inline(always)]
    pub unsafe fn object(&self) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleObject_object(
            self as *const crate::QAccessibleObject,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#rect">QAccessibleInterface::rect</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QRect QAccessibleObject::rect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleobject.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#rect">QAccessibleInterface::rect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessibleObject_rect(
            self as *const crate::QAccessibleObject,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#setText">QAccessibleInterface::setText</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QAccessibleObject::setText(QAccessible::Text t, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleobject.html#setText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html#setText">QAccessibleInterface::setText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text(
        &mut self,
        t: crate::q_accessible::Text,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleObject_setText(
            self as *mut crate::QAccessibleObject,
            t,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html">QAccessiblePlugin</a> class provides an abstract base class for plugins provinding accessibility information for user interface elements.</p>
///
/// C++ class: <span style='color: green;'>```QAccessiblePlugin```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html">QAccessiblePlugin</a> class provides an abstract base class for plugins provinding accessibility information for user interface elements.</p>
/// <p>Writing an accessibility plugin is achieved by subclassing this base class, reimplementing the pure virtual function <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html#create">create</a>(), and exporting the class with the <a href="http://doc.qt.io/qt-5/qtplugin.html#Q_PLUGIN_METADATA">Q_PLUGIN_METADATA</a>() macro.</p></div>
#[repr(C)]
pub struct QAccessiblePlugin {
    _unused: u8,
}
impl QAccessiblePlugin {
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> implementation for the class <i>key</i> and the object <i>object</i>. Keys are case sensitive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QAccessibleInterface* QAccessiblePlugin::create(const QString& key, QObject* object)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> implementation for the class <i>key</i> and the object <i>object</i>. Keys are case sensitive.</p></div>
    #[inline(always)]
    pub unsafe fn create(
        &mut self,
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        object: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessiblePlugin_create(
            self as *mut crate::QAccessiblePlugin,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(object)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QAccessiblePlugin::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessiblePlugin_metaObject(
            self as *const crate::QAccessiblePlugin,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QAccessiblePlugin::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QAccessiblePlugin_qt_metacall(
            self as *mut crate::QAccessiblePlugin,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QAccessiblePlugin::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessiblePlugin_qt_metacast(
            self as *mut crate::QAccessiblePlugin,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessiblePlugin_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QAccessiblePlugin::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessiblePlugin_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QAccessiblePlugin::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAccessiblePlugin_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_surface_format {
    //! C++ type: <span style='color: green;'>```QSurfaceFormat```</span>

    /// <p>This enum contains format options for use with <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QSurfaceFormat::FormatOption```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#FormatOption-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum contains format options for use with <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>.</p>
    ///
    /// <p>The FormatOptions type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;FormatOption&gt;. It stores an OR combination of FormatOption values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FormatOption(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FormatOption {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FormatOption(value)
        }
    }

    impl From<FormatOption> for ::std::os::raw::c_int {
        fn from(value: FormatOption) -> Self {
            value.0
        }
    }

    impl FormatOption {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FormatOption {
        /// Used to request stereo buffers in the surface format. (C++ enum variant: <span style='color: green;'>```StereoBuffers = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const StereoBuffers: crate::q_surface_format::FormatOption =
            crate::q_surface_format::FormatOption(1);
        /// Used to request a debug context with extra debugging information. (C++ enum variant: <span style='color: green;'>```DebugContext = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const DebugContext: crate::q_surface_format::FormatOption =
            crate::q_surface_format::FormatOption(2);
        /// Used to request that deprecated functions be included in the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> context profile. If not specified, you should get a forward compatible context without support functionality marked as deprecated. This requires <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version 3.0 or higher. (C++ enum variant: <span style='color: green;'>```DeprecatedFunctions = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const DeprecatedFunctions: crate::q_surface_format::FormatOption =
            crate::q_surface_format::FormatOption(4);
        /// Enables notifications about resets of the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> context. The status is then queryable via the context's <a href="http://doc.qt.io/qt-5/qopenglcontext.html#isValid">isValid()</a> function. Note that not setting this flag does not guarantee that context state loss never occurs. Additionally, some implementations may choose to report context loss regardless of this flag. (C++ enum variant: <span style='color: green;'>```ResetNotification = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const ResetNotification: crate::q_surface_format::FormatOption =
            crate::q_surface_format::FormatOption(8);
    }

    /// <p>This enum is used by <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> to specify the swap behaviour of a surface. The swap behaviour is mostly transparent to the application, but it affects factors such as rendering latency and throughput.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QSurfaceFormat::SwapBehavior```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#SwapBehavior-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum is used by <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> to specify the swap behaviour of a surface. The swap behaviour is mostly transparent to the application, but it affects factors such as rendering latency and throughput.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SwapBehavior(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SwapBehavior {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SwapBehavior(value)
        }
    }

    impl From<SwapBehavior> for ::std::os::raw::c_int {
        fn from(value: SwapBehavior) -> Self {
            value.0
        }
    }

    impl SwapBehavior {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SwapBehavior {
        /// The default, unspecified swap behaviour of the platform. (C++ enum variant: <span style='color: green;'>```DefaultSwapBehavior = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const DefaultSwapBehavior: crate::q_surface_format::SwapBehavior =
            crate::q_surface_format::SwapBehavior(0);
        /// Used to request single buffering, which might result in flickering when <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> rendering is done directly to screen without an intermediate offscreen buffer. (C++ enum variant: <span style='color: green;'>```SingleBuffer = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const SingleBuffer: crate::q_surface_format::SwapBehavior =
            crate::q_surface_format::SwapBehavior(1);
        /// This is typically the default swap behaviour on desktop platforms, consisting of one back buffer and one front buffer. Rendering is done to the back buffer, and then the back buffer and front buffer are swapped, or the contents of the back buffer are copied to the front buffer, depending on the implementation. (C++ enum variant: <span style='color: green;'>```DoubleBuffer = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const DoubleBuffer: crate::q_surface_format::SwapBehavior =
            crate::q_surface_format::SwapBehavior(2);
        /// This swap behaviour is sometimes used in order to decrease the risk of skipping a frame when the rendering rate is just barely keeping up with the screen refresh rate. Depending on the platform it might also lead to slightly more efficient use of the GPU due to improved pipelining behaviour. Triple buffering comes at the cost of an extra frame of memory usage and latency, and might not be supported depending on the underlying platform. (C++ enum variant: <span style='color: green;'>```TripleBuffer = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const TripleBuffer: crate::q_surface_format::SwapBehavior =
            crate::q_surface_format::SwapBehavior(3);
    }

    /// <p>This enum specifies the rendering backend for the surface.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QSurfaceFormat::RenderableType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies the rendering backend for the surface.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RenderableType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RenderableType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RenderableType(value)
        }
    }

    impl From<RenderableType> for ::std::os::raw::c_int {
        fn from(value: RenderableType) -> Self {
            value.0
        }
    }

    impl RenderableType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RenderableType {
        /// The default, unspecified rendering method (C++ enum variant: <span style='color: green;'>```DefaultRenderableType = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const DefaultRenderableType: crate::q_surface_format::RenderableType =
            crate::q_surface_format::RenderableType(0);
        /// Desktop OpenGL rendering (C++ enum variant: <span style='color: green;'>```OpenGL = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenGL: crate::q_surface_format::RenderableType =
            crate::q_surface_format::RenderableType(1);
        /// OpenGL ES 2.0 rendering (C++ enum variant: <span style='color: green;'>```OpenGLES = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenGLES: crate::q_surface_format::RenderableType =
            crate::q_surface_format::RenderableType(2);
        /// Open Vector Graphics rendering (C++ enum variant: <span style='color: green;'>```OpenVG = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenVG: crate::q_surface_format::RenderableType =
            crate::q_surface_format::RenderableType(4);
    }

    /// <p>This enum is used to specify the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> context profile, in conjunction with <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setMajorVersion">QSurfaceFormat::setMajorVersion</a>() and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setMinorVersion">QSurfaceFormat::setMinorVersion</a>().</p>
    ///
    /// C++ enum: <span style='color: green;'>```QSurfaceFormat::OpenGLContextProfile```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#OpenGLContextProfile-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum is used to specify the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> context profile, in conjunction with <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setMajorVersion">QSurfaceFormat::setMajorVersion</a>() and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setMinorVersion">QSurfaceFormat::setMinorVersion</a>().</p>
    /// <p>Profiles are exposed in <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> 3.2 and above, and are used to choose between a restricted core profile, and a compatibility profile which might contain deprecated support functionality.</p>
    /// <p>Note that the core profile might still contain functionality that is deprecated and scheduled for removal in a higher version. To get access to the deprecated functionality for the core profile in the set <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version you can use the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> format option <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#FormatOption-enum">QSurfaceFormat::DeprecatedFunctions</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct OpenGLContextProfile(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for OpenGLContextProfile {
        fn from(value: ::std::os::raw::c_int) -> Self {
            OpenGLContextProfile(value)
        }
    }

    impl From<OpenGLContextProfile> for ::std::os::raw::c_int {
        fn from(value: OpenGLContextProfile) -> Self {
            value.0
        }
    }

    impl OpenGLContextProfile {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl OpenGLContextProfile {
        /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version is lower than 3.2. For 3.2 and newer this is same as CoreProfile. (C++ enum variant: <span style='color: green;'>```NoProfile = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoProfile: crate::q_surface_format::OpenGLContextProfile =
            crate::q_surface_format::OpenGLContextProfile(0);
        /// Functionality deprecated in <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version 3.0 is not available. (C++ enum variant: <span style='color: green;'>```CoreProfile = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const CoreProfile: crate::q_surface_format::OpenGLContextProfile =
            crate::q_surface_format::OpenGLContextProfile(1);
        /// Functionality from earlier <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> versions is available. (C++ enum variant: <span style='color: green;'>```CompatibilityProfile = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompatibilityProfile: crate::q_surface_format::OpenGLContextProfile =
            crate::q_surface_format::OpenGLContextProfile(2);
    }

    impl From<crate::q_surface_format::FormatOption>
        for ::qt_core::QFlags<crate::q_surface_format::FormatOption>
    {
        fn from(value: crate::q_surface_format::FormatOption) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_surface_format::FormatOption>>> std::ops::BitOr<T>
        for crate::q_surface_format::FormatOption
    {
        type Output = ::qt_core::QFlags<crate::q_surface_format::FormatOption>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_surface_format::FormatOption> {
            Into::<::qt_core::QFlags<crate::q_surface_format::FormatOption>>::into(self) | rhs
        }
    }

    /// <p>This enum is used to specify the preferred color space, controlling if the window's associated default framebuffer is able to do updates and blending in a given encoding instead of the standard linear operations.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QSurfaceFormat::ColorSpace```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#ColorSpace-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum is used to specify the preferred color space, controlling if the window's associated default framebuffer is able to do updates and blending in a given encoding instead of the standard linear operations.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ColorSpace(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ColorSpace {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ColorSpace(value)
        }
    }

    impl From<ColorSpace> for ::std::os::raw::c_int {
        fn from(value: ColorSpace) -> Self {
            value.0
        }
    }

    impl ColorSpace {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ColorSpace {
        /// The default, unspecified color space. (C++ enum variant: <span style='color: green;'>```DefaultColorSpace = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const DefaultColorSpace: crate::q_surface_format::ColorSpace =
            crate::q_surface_format::ColorSpace(0);
        /// When <code>GL_ARB_framebuffer_sRGB</code> or <code>GL_EXT_framebuffer_sRGB</code> is supported by the platform and this value is set, the window will be created with an sRGB-capable default framebuffer. Note that some platforms may return windows with a sRGB-capable default framebuffer even when not requested explicitly. (C++ enum variant: <span style='color: green;'>```sRGBColorSpace = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGBColorSpace: crate::q_surface_format::ColorSpace =
            crate::q_surface_format::ColorSpace(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> class represents the format of a <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a>.</p>
///
/// C++ class: <span style='color: green;'>```QSurfaceFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> class represents the format of a <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a>.</p>
/// <p>The format includes the size of the color buffers, red, green, and blue; the size of the alpha buffer; the size of the depth and stencil buffers; and number of samples per pixel for multisampling. In addition, the format contains surface configuration parameters such as <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> profile and version for rendering, whether or not to enable stereo buffers, and swap behaviour.</p></div>
#[repr(C)]
pub struct QSurfaceFormat {
    _unused: u8,
}
impl QSurfaceFormat {
    /// <p>Get the size in bits of the alpha channel of the color buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::alphaBufferSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#alphaBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Get the size in bits of the alpha channel of the color buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setAlphaBufferSize">setAlphaBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alpha_buffer_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_alphaBufferSize(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Get the size in bits of the blue channel of the color buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::blueBufferSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#blueBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Get the size in bits of the blue channel of the color buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setBlueBufferSize">setBlueBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn blue_buffer_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_blueBufferSize(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Returns the color space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat::ColorSpace QSurfaceFormat::colorSpace() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#colorSpace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the color space.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setColorSpace">setColorSpace</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn color_space(&self) -> crate::q_surface_format::ColorSpace {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_colorSpace(self as *const crate::QSurfaceFormat)
    }

    /// <p>Assigns <i>other</i> to this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat& QSurfaceFormat::operator=(const QSurfaceFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this object.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSurfaceFormat>>,
    ) -> ::cpp_core::MutRef<crate::QSurfaceFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_operator_(
            self as *mut crate::QSurfaceFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSurfaceFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the global default surface format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QSurfaceFormat QSurfaceFormat::defaultFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#defaultFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the global default surface format.</p>
    /// <p>When <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDefaultFormat">setDefaultFormat</a>() is not called, this is a default-constructed <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDefaultFormat">setDefaultFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn default_format() -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_defaultFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the depth buffer size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::depthBufferSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#depthBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the depth buffer size.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDepthBufferSize">setDepthBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn depth_buffer_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_depthBufferSize(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Get the size in bits of the green channel of the color buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::greenBufferSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#greenBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Get the size in bits of the green channel of the color buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setGreenBufferSize">setGreenBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn green_buffer_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_greenBufferSize(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Returns <code>true</code> if the alpha buffer size is greater than zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSurfaceFormat::hasAlpha() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#hasAlpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the alpha buffer size is greater than zero.</p>
    /// <p>This means that the surface might be used with per pixel translucency effects.</p></div>
    #[inline(always)]
    pub unsafe fn has_alpha(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_hasAlpha(self as *const crate::QSurfaceFormat)
    }

    /// <p>Returns the major <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::majorVersion() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#majorVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the major <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    /// <p>The default version is 2.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setMajorVersion">setMajorVersion</a>().</p></div>
    #[inline(always)]
    pub unsafe fn major_version(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_majorVersion(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Returns the minor <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::minorVersion() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#minorVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minor <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setMinorVersion">setMinorVersion</a>().</p></div>
    #[inline(always)]
    pub unsafe fn minor_version(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_minorVersion(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Constructs a default initialized <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QSurfaceFormat::QSurfaceFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#QSurfaceFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a default initialized <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>.</p>
    /// <p><b>Note: </b>By default <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> 2.0 is requested since this provides the highest grade of portability between platforms and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> implementations.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_QSurfaceFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> with the given format <i>options</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QSurfaceFormat::QSurfaceFormat(QFlags<QSurfaceFormat::FormatOption> options)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#QSurfaceFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> with the given format <i>options</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        options: ::qt_core::QFlags<crate::q_surface_format::FormatOption>,
    ) -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_QSurfaceFormat1(options.to_int());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QSurfaceFormat::QSurfaceFormat(const QSurfaceFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#QSurfaceFormat-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSurfaceFormat>>,
    ) -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_QSurfaceFormat2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSurfaceFormat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the currently set format options.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QSurfaceFormat::FormatOption> QSurfaceFormat::options() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#options">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set format options.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOption">setOption</a>(), <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOptions">setOptions</a>(), and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#testOption">testOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn options(&self) -> ::qt_core::QFlags<crate::q_surface_format::FormatOption> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_options(
            self as *const crate::QSurfaceFormat,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Get the configured <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> context profile.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat::OpenGLContextProfile QSurfaceFormat::profile() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#profile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Get the configured <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> context profile.</p>
    /// <p>This setting is ignored if the requested <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version is less than 3.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setProfile">setProfile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn profile(&self) -> crate::q_surface_format::OpenGLContextProfile {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_profile(self as *const crate::QSurfaceFormat)
    }

    /// <p>Get the size in bits of the red channel of the color buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::redBufferSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#redBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Get the size in bits of the red channel of the color buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setRedBufferSize">setRedBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn red_buffer_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_redBufferSize(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Gets the renderable type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat::RenderableType QSurfaceFormat::renderableType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#renderableType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Gets the renderable type.</p>
    /// <p>Chooses between desktop <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a>, <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> ES, and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenVG</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setRenderableType">setRenderableType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn renderable_type(&self) -> crate::q_surface_format::RenderableType {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_renderableType(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Returns the number of samples per pixel when multisampling is enabled. By default, multisampling is disabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::samples() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#samples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of samples per pixel when multisampling is enabled. By default, multisampling is disabled.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setSamples">setSamples</a>().</p></div>
    #[inline(always)]
    pub unsafe fn samples(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_samples(self as *const crate::QSurfaceFormat)
    }

    /// <p>Set the desired <i>size</i> in bits of the alpha channel of the color buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setAlphaBufferSize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setAlphaBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the desired <i>size</i> in bits of the alpha channel of the color buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#alphaBufferSize">alphaBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_alpha_buffer_size(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setAlphaBufferSize(
            self as *mut crate::QSurfaceFormat,
            size,
        )
    }

    /// <p>Set the desired <i>size</i> in bits of the blue channel of the color buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setBlueBufferSize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setBlueBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the desired <i>size</i> in bits of the blue channel of the color buffer.</p>
    /// <p><b>Note: </b>On Mac OSX, be sure to set the buffer size of all color channels, otherwise this setting will have no effect. If one of the buffer sizes is not set, the current bit-depth of the screen is used.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#blueBufferSize">blueBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_blue_buffer_size(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setBlueBufferSize(
            self as *mut crate::QSurfaceFormat,
            size,
        )
    }

    /// <p>Sets the preferred <i>colorSpace</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setColorSpace(QSurfaceFormat::ColorSpace colorSpace)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setColorSpace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the preferred <i>colorSpace</i>.</p>
    /// <p>For example, this allows requesting windows with default framebuffers that are sRGB-capable on platforms that support it.</p>
    /// <p><b>Note: </b>When the requested color space is not supported by the platform, the request is ignored. Query the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> after window creation to verify if the color space request could be honored or not.</p><p><b>Note: </b>This setting controls if the default framebuffer of the window is capable of updates and blending in a given color space. It does not change applications' output by itself. The applications' rendering code will still have to opt in via the appropriate <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> calls to enable updates and blending to be performed in the given color space instead of using the standard linear operations.</p><p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#colorSpace">colorSpace</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_color_space(&mut self, color_space: crate::q_surface_format::ColorSpace) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setColorSpace(
            self as *mut crate::QSurfaceFormat,
            color_space,
        )
    }

    /// <p>Sets the global default surface <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QSurfaceFormat::setDefaultFormat(const QSurfaceFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDefaultFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the global default surface <i>format</i>.</p>
    /// <p>This format is used by default in <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>, <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>, <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a> and similar classes.</p>
    /// <p>It can always be overridden on a per-instance basis by using the class in question's own setFormat() function. However, it is often more convenient to set the format for all windows once at the start of the application. It also guarantees proper behavior in cases where shared contexts are required, because settings the format via this function guarantees that all contexts and surfaces, even the ones created internally by Qt, will use the same format.</p>
    /// <p><b>Note: </b>When setting <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_ShareOpenGLContexts</a>, it is strongly recommended to place the call to this function before the construction of the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> or <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a>. Otherwise <i>format</i> will not be applied to the global share context and therefore issues may arise with context sharing afterwards.</p><p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#defaultFormat">defaultFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_default_format(
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSurfaceFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setDefaultFormat(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSurfaceFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Set the minimum depth buffer size to <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setDepthBufferSize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDepthBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the minimum depth buffer size to <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#depthBufferSize">depthBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_depth_buffer_size(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setDepthBufferSize(
            self as *mut crate::QSurfaceFormat,
            size,
        )
    }

    /// <p>Set the desired <i>size</i> in bits of the green channel of the color buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setGreenBufferSize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setGreenBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the desired <i>size</i> in bits of the green channel of the color buffer.</p>
    /// <p><b>Note: </b>On Mac OSX, be sure to set the buffer size of all color channels, otherwise this setting will have no effect. If one of the buffer sizes is not set, the current bit-depth of the screen is used.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#greenBufferSize">greenBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_green_buffer_size(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setGreenBufferSize(
            self as *mut crate::QSurfaceFormat,
            size,
        )
    }

    /// <p>Sets the desired <i>major</i> <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setMajorVersion(int majorVersion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setMajorVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the desired <i>major</i> <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#majorVersion">majorVersion</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_major_version(&mut self, major_version: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setMajorVersion(
            self as *mut crate::QSurfaceFormat,
            major_version,
        )
    }

    /// <p>Sets the desired <i>minor</i> <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setMinorVersion(int minorVersion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setMinorVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the desired <i>minor</i> <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    /// <p>The default version is 2.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#minorVersion">minorVersion</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_minor_version(&mut self, minor_version: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setMinorVersion(
            self as *mut crate::QSurfaceFormat,
            minor_version,
        )
    }

    /// <p>Sets the format option <i>option</i> if <i>on</i> is true; otherwise, clears the option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setOption(QFlags<QSurfaceFormat::FormatOption> opt)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOption">C++ documentation</a> for <span style='color: green;'>```void QSurfaceFormat::setOption(FormatOption option, bool on = true)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format option <i>option</i> if <i>on</i> is true; otherwise, clears the option.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOptions">setOptions</a>(), <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#options">options</a>(), and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#testOption">testOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_option_q_flags_format_option(
        &mut self,
        opt: ::qt_core::QFlags<crate::q_surface_format::FormatOption>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setOption(
            self as *mut crate::QSurfaceFormat,
            opt.to_int(),
        )
    }

    /// <p>Sets the format option <i>option</i> if <i>on</i> is true; otherwise, clears the option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setOption(QSurfaceFormat::FormatOption option, bool on = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format option <i>option</i> if <i>on</i> is true; otherwise, clears the option.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOptions">setOptions</a>(), <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#options">options</a>(), and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#testOption">testOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_option_format_option_bool(
        &mut self,
        option: crate::q_surface_format::FormatOption,
        on: bool,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setOption1(
            self as *mut crate::QSurfaceFormat,
            option,
            on,
        )
    }

    /// <p>Sets the format option <i>option</i> if <i>on</i> is true; otherwise, clears the option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setOption(QSurfaceFormat::FormatOption option)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format option <i>option</i> if <i>on</i> is true; otherwise, clears the option.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOptions">setOptions</a>(), <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#options">options</a>(), and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#testOption">testOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_option_format_option(
        &mut self,
        option: crate::q_surface_format::FormatOption,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setOption2(
            self as *mut crate::QSurfaceFormat,
            option,
        )
    }

    /// <p>Sets the format options to <i>options</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setOptions(QFlags<QSurfaceFormat::FormatOption> options)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setOptions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format options to <i>options</i>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#options">options</a>() and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#testOption">testOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_options(
        &mut self,
        options: ::qt_core::QFlags<crate::q_surface_format::FormatOption>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setOptions(
            self as *mut crate::QSurfaceFormat,
            options.to_int(),
        )
    }

    /// <p>Sets the desired <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> context <i>profile</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setProfile(QSurfaceFormat::OpenGLContextProfile profile)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setProfile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the desired <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> context <i>profile</i>.</p>
    /// <p>This setting is ignored if the requested <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version is less than 3.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#profile">profile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_profile(&mut self, profile: crate::q_surface_format::OpenGLContextProfile) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setProfile(
            self as *mut crate::QSurfaceFormat,
            profile,
        )
    }

    /// <p>Set the desired <i>size</i> in bits of the red channel of the color buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setRedBufferSize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setRedBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the desired <i>size</i> in bits of the red channel of the color buffer.</p>
    /// <p><b>Note: </b>On Mac OSX, be sure to set the buffer size of all color channels, otherwise this setting will have no effect. If one of the buffer sizes is not set, the current bit-depth of the screen is used.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#redBufferSize">redBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_red_buffer_size(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setRedBufferSize(
            self as *mut crate::QSurfaceFormat,
            size,
        )
    }

    /// <p>Sets the desired renderable <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setRenderableType(QSurfaceFormat::RenderableType type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setRenderableType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the desired renderable <i>type</i>.</p>
    /// <p>Chooses between desktop <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a>, <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> ES, and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenVG</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#renderableType">renderableType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_renderable_type(&mut self, type_: crate::q_surface_format::RenderableType) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setRenderableType(
            self as *mut crate::QSurfaceFormat,
            type_,
        )
    }

    /// <p>Set the preferred number of samples per pixel when multisampling is enabled to <i>numSamples</i>. By default, multisampling is disabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setSamples(int numSamples)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setSamples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the preferred number of samples per pixel when multisampling is enabled to <i>numSamples</i>. By default, multisampling is disabled.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#samples">samples</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_samples(&mut self, num_samples: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setSamples(
            self as *mut crate::QSurfaceFormat,
            num_samples,
        )
    }

    /// <p>Set the preferred stencil buffer size to <i>size</i> bits.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setStencilBufferSize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setStencilBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the preferred stencil buffer size to <i>size</i> bits.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#stencilBufferSize">stencilBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_stencil_buffer_size(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setStencilBufferSize(
            self as *mut crate::QSurfaceFormat,
            size,
        )
    }

    /// <p>If <i>enable</i> is true enables stereo buffering; otherwise disables stereo buffering.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setStereo(bool enable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setStereo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enable</i> is true enables stereo buffering; otherwise disables stereo buffering.</p>
    /// <p>Stereo buffering is disabled by default.</p>
    /// <p>Stereo buffering provides extra color buffers to generate left-eye and right-eye images.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#stereo">stereo</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_stereo(&mut self, enable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setStereo(
            self as *mut crate::QSurfaceFormat,
            enable,
        )
    }

    /// <p>Set the swap <i>behavior</i> of the surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setSwapBehavior(QSurfaceFormat::SwapBehavior behavior)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setSwapBehavior">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the swap <i>behavior</i> of the surface.</p>
    /// <p>The swap behavior specifies whether single, double, or triple buffering is desired. The default, <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#SwapBehavior-enum">DefaultSwapBehavior</a>, gives the default swap behavior of the platform.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#swapBehavior">swapBehavior</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_swap_behavior(&mut self, behavior: crate::q_surface_format::SwapBehavior) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setSwapBehavior(
            self as *mut crate::QSurfaceFormat,
            behavior,
        )
    }

    /// <p>Sets the preferred swap interval. The swap interval specifies the minimum number of video frames that are displayed before a buffer swap occurs. This can be used to sync the GL drawing into a window to the vertical refresh of the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setSwapInterval(int interval)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setSwapInterval">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the preferred swap interval. The swap interval specifies the minimum number of video frames that are displayed before a buffer swap occurs. This can be used to sync the GL drawing into a window to the vertical refresh of the screen.</p>
    /// <p>Setting an <i>interval</i> value of 0 will turn the vertical refresh syncing off, any value higher than 0 will turn the vertical syncing on. Setting <i>interval</i> to a higher value, for example 10, results in having 10 vertical retraces between every buffer swap.</p>
    /// <p>The default interval is 1.</p>
    /// <p>Changing the swap interval may not be supported by the underlying platform. In this case, the request will be silently ignored.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#swapInterval">swapInterval</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_swap_interval(&mut self, interval: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setSwapInterval(
            self as *mut crate::QSurfaceFormat,
            interval,
        )
    }

    /// <p>Sets the desired <i>major</i> and <i>minor</i> <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> versions.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSurfaceFormat::setVersion(int major, int minor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the desired <i>major</i> and <i>minor</i> <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> versions.</p>
    /// <p>The default version is 2.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#version">version</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_version(
        &mut self,
        major: ::std::os::raw::c_int,
        minor: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_setVersion(
            self as *mut crate::QSurfaceFormat,
            major,
            minor,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the stencil buffer size in bits.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::stencilBufferSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#stencilBufferSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the stencil buffer size in bits.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setStencilBufferSize">setStencilBufferSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn stencil_buffer_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_stencilBufferSize(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Returns <code>true</code> if stereo buffering is enabled; otherwise returns false. Stereo buffering is disabled by default.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSurfaceFormat::stereo() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#stereo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if stereo buffering is enabled; otherwise returns false. Stereo buffering is disabled by default.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setStereo">setStereo</a>().</p></div>
    #[inline(always)]
    pub unsafe fn stereo(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_stereo(self as *const crate::QSurfaceFormat)
    }

    /// <p>Returns the configured swap behaviour.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat::SwapBehavior QSurfaceFormat::swapBehavior() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#swapBehavior">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the configured swap behaviour.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setSwapBehavior">setSwapBehavior</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_behavior(&self) -> crate::q_surface_format::SwapBehavior {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_swapBehavior(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Returns the swap interval.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSurfaceFormat::swapInterval() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#swapInterval">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the swap interval.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setSwapInterval">setSwapInterval</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_interval(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_swapInterval(
            self as *const crate::QSurfaceFormat,
        )
    }

    /// <p>Returns true if the format option <i>option</i> is set; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSurfaceFormat::testOption(QFlags<QSurfaceFormat::FormatOption> opt) const```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#testOption">C++ documentation</a> for <span style='color: green;'>```bool QSurfaceFormat::testOption(FormatOption option) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if the format option <i>option</i> is set; otherwise returns false.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#options">options</a>().</p></div>
    #[inline(always)]
    pub unsafe fn test_option_q_flags_format_option(
        &self,
        opt: ::qt_core::QFlags<crate::q_surface_format::FormatOption>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_testOption(
            self as *const crate::QSurfaceFormat,
            opt.to_int(),
        )
    }

    /// <p>Returns true if the format option <i>option</i> is set; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSurfaceFormat::testOption(QSurfaceFormat::FormatOption option) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#testOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if the format option <i>option</i> is set; otherwise returns false.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#options">options</a>().</p></div>
    #[inline(always)]
    pub unsafe fn test_option_format_option(
        &self,
        option: crate::q_surface_format::FormatOption,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_testOption1(
            self as *const crate::QSurfaceFormat,
            option,
        )
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;int, int&gt; representing the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<int, int> QSurfaceFormat::version() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#version">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;int, int&gt; representing the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#RenderableType-enum">OpenGL</a> version.</p>
    /// <p>Useful for version checks, for example format.version() &gt;= <a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">qMakePair</a>(3, 2)</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setVersion">setVersion</a>().</p></div>
    #[inline(always)]
    pub unsafe fn version(&self) -> ::cpp_core::CppBox<crate::QPairOfIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_version(
            self as *const crate::QSurfaceFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_surface {
    //! C++ type: <span style='color: green;'>```QSurface```</span>

    /// <p>The SurfaceClass enum describes the actual subclass of the surface.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QSurface::SurfaceClass```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#SurfaceClass-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The SurfaceClass enum describes the actual subclass of the surface.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SurfaceClass(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SurfaceClass {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SurfaceClass(value)
        }
    }

    impl From<SurfaceClass> for ::std::os::raw::c_int {
        fn from(value: SurfaceClass) -> Self {
            value.0
        }
    }

    impl SurfaceClass {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SurfaceClass {
        /// The surface is an instance of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>. (C++ enum variant: <span style='color: green;'>```Window = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Window: crate::q_surface::SurfaceClass = crate::q_surface::SurfaceClass(0);
        /// The surface is an instance of <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a>. (C++ enum variant: <span style='color: green;'>```Offscreen = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Offscreen: crate::q_surface::SurfaceClass = crate::q_surface::SurfaceClass(1);
    }

    /// <p>The SurfaceType enum describes what type of surface this is.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QSurface::SurfaceType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#SurfaceType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The SurfaceType enum describes what type of surface this is.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SurfaceType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SurfaceType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SurfaceType(value)
        }
    }

    impl From<SurfaceType> for ::std::os::raw::c_int {
        fn from(value: SurfaceType) -> Self {
            value.0
        }
    }

    impl SurfaceType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SurfaceType {
        /// The surface is is composed of pixels and can be rendered to using a software rasterizer like Qt's raster paint engine. (C++ enum variant: <span style='color: green;'>```RasterSurface = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterSurface: crate::q_surface::SurfaceType = crate::q_surface::SurfaceType(0);
        /// The surface is an OpenGL compatible surface and can be used in conjunction with <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>. (C++ enum variant: <span style='color: green;'>```OpenGLSurface = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenGLSurface: crate::q_surface::SurfaceType = crate::q_surface::SurfaceType(1);
        /// The surface can be rendered to using a software rasterizer, and also supports OpenGL. This surface type is intended for internal Qt use, and requires the use of private API. (C++ enum variant: <span style='color: green;'>```RasterGLSurface = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterGLSurface: crate::q_surface::SurfaceType = crate::q_surface::SurfaceType(2);
        /// The surface is an <a href="http://doc.qt.io/qt-5/qtquick-visualcanvas-adaptations.html#openvg">OpenVG</a> compatible surface and can be used in conjunction with <a href="http://doc.qt.io/qt-5/qtquick-visualcanvas-adaptations.html#openvg">OpenVG</a> contexts. (C++ enum variant: <span style='color: green;'>```OpenVGSurface = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenVGSurface: crate::q_surface::SurfaceType = crate::q_surface::SurfaceType(3);
        /// The surface is a Vulkan compatible surface and can be used in conjunction with the Vulkan graphics API. (C++ enum variant: <span style='color: green;'>```VulkanSurface = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const VulkanSurface: crate::q_surface::SurfaceType = crate::q_surface::SurfaceType(4);
        /// The surface is a Metal compatible surface and can be used in conjunction with Apple's Metal graphics API. This surface type is supported on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> only. (C++ enum variant: <span style='color: green;'>```MetalSurface = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const MetalSurface: crate::q_surface::SurfaceType = crate::q_surface::SurfaceType(5);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a> class is an abstraction of renderable surfaces in Qt.</p>
///
/// C++ class: <span style='color: green;'>```QSurface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qsurface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a> class is an abstraction of renderable surfaces in Qt.</p>
/// <p>The size of the surface is accessible with the <a href="http://doc.qt.io/qt-5/qsurface.html#size">size</a>() function. The rendering specific attributes of the surface are accessible through the <a href="http://doc.qt.io/qt-5/qsurface.html#format">format</a>() function.</p></div>
#[repr(C)]
pub struct QSurface {
    _unused: u8,
}
impl QSurface {
    /// <p>The <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a> class is an abstraction of renderable surfaces in Qt.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurface& QSurface::operator=(const QSurface& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a> class is an abstraction of renderable surfaces in Qt.</p>
    /// <p>The size of the surface is accessible with the <a href="http://doc.qt.io/qt-5/qsurface.html#size">size</a>() function. The rendering specific attributes of the surface are accessible through the <a href="http://doc.qt.io/qt-5/qsurface.html#format">format</a>() function.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSurface>>,
    ) -> ::cpp_core::MutRef<crate::QSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurface_operator_(
            self as *mut crate::QSurface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSurface>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the format of the surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QSurfaceFormat QSurface::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format of the surface.</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QSurface_format(self as *const crate::QSurface);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size of the surface in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QSize QSurface::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the surface in pixels.</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurface_size(self as *const crate::QSurface);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurface_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns true if the surface is OpenGL compatible and can be used in conjunction with <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSurface::supportsOpenGL() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#supportsOpenGL">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if the surface is OpenGL compatible and can be used in conjunction with <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>; otherwise returns false.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn supports_opengl(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSurface_supportsOpenGL(self as *const crate::QSurface)
    }

    /// <p>Returns the surface class of this surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurface::SurfaceClass QSurface::surfaceClass() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#surfaceClass">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the surface class of this surface.</p></div>
    #[inline(always)]
    pub unsafe fn surface_class(&self) -> crate::q_surface::SurfaceClass {
        crate::__ffi::ctr_qt_gui_ffi_QSurface_surfaceClass(self as *const crate::QSurface)
    }

    /// <p>Returns the type of the surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QSurface::SurfaceType QSurface::surfaceType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#surfaceType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of the surface.</p></div>
    #[inline(always)]
    pub unsafe fn surface_type(&self) -> crate::q_surface::SurfaceType {
        crate::__ffi::ctr_qt_gui_ffi_QSurface_surfaceType(self as *const crate::QSurface)
    }
}

pub mod q_icon {
    //! C++ type: <span style='color: green;'>```QIcon```</span>

    /// <p>This enum type describes the mode for which a pixmap is intended to be used. The currently defined modes are:</p>
    ///
    /// C++ enum: <span style='color: green;'>```QIcon::Mode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#Mode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type describes the mode for which a pixmap is intended to be used. The currently defined modes are:</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Mode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Mode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Mode(value)
        }
    }

    impl From<Mode> for ::std::os::raw::c_int {
        fn from(value: Mode) -> Self {
            value.0
        }
    }

    impl Mode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Mode {
        /// Display the pixmap when the user is not interacting with the icon, but the functionality represented by the icon is available. (C++ enum variant: <span style='color: green;'>```Normal = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Normal: crate::q_icon::Mode = crate::q_icon::Mode(0);
        /// Display the pixmap when the functionality represented by the icon is not available. (C++ enum variant: <span style='color: green;'>```Disabled = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Disabled: crate::q_icon::Mode = crate::q_icon::Mode(1);
        /// Display the pixmap when the functionality represented by the icon is available and the user is interacting with the icon, for example, moving the mouse over it or clicking it. (C++ enum variant: <span style='color: green;'>```Active = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Active: crate::q_icon::Mode = crate::q_icon::Mode(2);
        /// Display the pixmap when the item represented by the icon is selected. (C++ enum variant: <span style='color: green;'>```Selected = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Selected: crate::q_icon::Mode = crate::q_icon::Mode(3);
    }

    /// <p>This enum describes the state for which a pixmap is intended to be used. The <i>state</i> can be:</p>
    ///
    /// C++ enum: <span style='color: green;'>```QIcon::State```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#State-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the state for which a pixmap is intended to be used. The <i>state</i> can be:</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct State(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for State {
        fn from(value: ::std::os::raw::c_int) -> Self {
            State(value)
        }
    }

    impl From<State> for ::std::os::raw::c_int {
        fn from(value: State) -> Self {
            value.0
        }
    }

    impl State {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl State {
        /// Display the pixmap when the widget is in an "on" state (C++ enum variant: <span style='color: green;'>```On = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const On: crate::q_icon::State = crate::q_icon::State(0);
        /// Display the pixmap when the widget is in an "off" state (C++ enum variant: <span style='color: green;'>```Off = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Off: crate::q_icon::State = crate::q_icon::State(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> class provides scalable icons in different modes and states.</p>
///
/// C++ class: <span style='color: green;'>```QIcon```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qicon.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> class provides scalable icons in different modes and states.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> can generate smaller, larger, active, and disabled pixmaps from the set of pixmaps it is given. Such pixmaps are used by Qt widgets to show an icon representing a particular action.</p>
/// <p>The simplest use of <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> is to create one from a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> file or resource, and then use it, allowing Qt to work out all the required icon styles and sizes. For example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qtoolbutton.html">QToolButton</a></span> <span class="operator">*</span>button <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtoolbutton.html">QToolButton</a></span>;
///   button<span class="operator">-</span><span class="operator">&gt;</span>setIcon(<span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span>(<span class="string">"open.xpm"</span>));
///
/// </pre>
/// <p>To undo a <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>, simply set a null icon in its place:</p>
/// <pre class="cpp">
///
///   button<span class="operator">-</span><span class="operator">&gt;</span>setIcon(<span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span>());
///
/// </pre>
/// <p>Use the <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">QImageWriter::supportedImageFormats</a>() functions to retrieve a complete list of the supported file formats.</p>
/// <p>When you retrieve a pixmap using pixmap(<a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>, Mode, State), and no pixmap for this given size, mode and state has been added with <a href="http://doc.qt.io/qt-5/qicon.html#addFile">addFile</a>() or <a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">addPixmap</a>(), then <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> will generate one on the fly. This pixmap generation happens in a <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a>. The default engine scales pixmaps down if required, but never up, and it uses the current style to calculate a disabled appearance. By using custom icon engines, you can customize every aspect of generated icons. With <a href="http://doc.qt.io/qt-5/qiconengineplugin.html">QIconEnginePlugin</a> it is possible to register different icon engines for different file suffixes, making it possible for third parties to provide additional icon engines to those included with Qt.</p>
/// <p><b>Note: </b>Since Qt 4.2, an icon engine that supports SVG is included.</p><a name="making-classes-that-use-qicon"></a></div>
#[repr(C)]
pub struct QIcon {
    _unused: u8,
}
impl QIcon {
    /// <p>Returns the actual size of the icon for the requested <i>size</i>, <i>mode</i>, and <i>state</i>. The result might be smaller than requested, but never larger. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QIcon::actualSize(const QSize& size, QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#actualSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the icon for the requested <i>size</i>, <i>mode</i>, and <i>state</i>. The result might be smaller than requested, but never larger. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn actual_size_q_size_mode_state(
        &self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_actualSize(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the actual size of the icon for the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QIcon::actualSize(QWindow* window, const QSize& size, QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#actualSize-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the icon for the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>.</p>
    /// <p>The pixmap can be smaller than the requested size. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn actual_size_q_window_q_size_mode_state(
        &self,
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_actualSize1(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the actual size of the icon for the requested <i>size</i>, <i>mode</i>, and <i>state</i>. The result might be smaller than requested, but never larger. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QIcon::actualSize(const QSize& size, QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#actualSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the icon for the requested <i>size</i>, <i>mode</i>, and <i>state</i>. The result might be smaller than requested, but never larger. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn actual_size_q_size_mode(
        &self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_actualSize2(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the actual size of the icon for the requested <i>size</i>, <i>mode</i>, and <i>state</i>. The result might be smaller than requested, but never larger. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QIcon::actualSize(const QSize& size) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#actualSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the icon for the requested <i>size</i>, <i>mode</i>, and <i>state</i>. The result might be smaller than requested, but never larger. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn actual_size_q_size(
        &self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_actualSize3(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the actual size of the icon for the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QIcon::actualSize(QWindow* window, const QSize& size, QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#actualSize-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the icon for the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>.</p>
    /// <p>The pixmap can be smaller than the requested size. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn actual_size_q_window_q_size_mode(
        &self,
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_actualSize4(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the actual size of the icon for the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QIcon::actualSize(QWindow* window, const QSize& size) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#actualSize-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the icon for the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>.</p>
    /// <p>The pixmap can be smaller than the requested size. The returned size is in device-independent pixels (This is relevant for high-dpi pixmaps.)</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn actual_size_q_window_q_size(
        &self,
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_actualSize5(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Adds an image from the file with the given <i>fileName</i> to the icon, as a specialization for <i>size</i>, <i>mode</i> and <i>state</i>. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::addFile(const QString& fileName, const QSize& size = …, QIcon::Mode mode = …, QIcon::State state = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#addFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds an image from the file with the given <i>fileName</i> to the icon, as a specialization for <i>size</i>, <i>mode</i> and <i>state</i>. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.</p>
    /// <p>If <i>fileName</i> contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.</p>
    /// <p>The file name can refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">QImageWriter::supportedImageFormats</a>() functions to retrieve a complete list of the supported file formats.</p>
    /// <p>If a high resolution version of the image exists (identified by the suffix <code>@2x</code> on the base name), it is automatically loaded and added with the <i>device pixel ratio</i> set to a value of 2. This can be disabled by setting the environment variable <code>QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING</code> (see <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>).</p>
    /// <p><b>Note: </b>When you add a non-empty filename to a <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>, the icon becomes non-null, even if the file doesn't exist or points to a corrupt file.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">addPixmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">QPixmap::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_file_4a(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_addFile(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
        )
    }

    /// <p>Adds an image from the file with the given <i>fileName</i> to the icon, as a specialization for <i>size</i>, <i>mode</i> and <i>state</i>. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::addFile(const QString& fileName, const QSize& size = …, QIcon::Mode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#addFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds an image from the file with the given <i>fileName</i> to the icon, as a specialization for <i>size</i>, <i>mode</i> and <i>state</i>. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.</p>
    /// <p>If <i>fileName</i> contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.</p>
    /// <p>The file name can refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">QImageWriter::supportedImageFormats</a>() functions to retrieve a complete list of the supported file formats.</p>
    /// <p>If a high resolution version of the image exists (identified by the suffix <code>@2x</code> on the base name), it is automatically loaded and added with the <i>device pixel ratio</i> set to a value of 2. This can be disabled by setting the environment variable <code>QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING</code> (see <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>).</p>
    /// <p><b>Note: </b>When you add a non-empty filename to a <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>, the icon becomes non-null, even if the file doesn't exist or points to a corrupt file.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">addPixmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">QPixmap::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_file_3a(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_addFile1(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
        )
    }

    /// <p>Adds an image from the file with the given <i>fileName</i> to the icon, as a specialization for <i>size</i>, <i>mode</i> and <i>state</i>. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::addFile(const QString& fileName, const QSize& size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#addFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds an image from the file with the given <i>fileName</i> to the icon, as a specialization for <i>size</i>, <i>mode</i> and <i>state</i>. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.</p>
    /// <p>If <i>fileName</i> contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.</p>
    /// <p>The file name can refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">QImageWriter::supportedImageFormats</a>() functions to retrieve a complete list of the supported file formats.</p>
    /// <p>If a high resolution version of the image exists (identified by the suffix <code>@2x</code> on the base name), it is automatically loaded and added with the <i>device pixel ratio</i> set to a value of 2. This can be disabled by setting the environment variable <code>QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING</code> (see <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>).</p>
    /// <p><b>Note: </b>When you add a non-empty filename to a <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>, the icon becomes non-null, even if the file doesn't exist or points to a corrupt file.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">addPixmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">QPixmap::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_file_2a(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_addFile2(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>Adds an image from the file with the given <i>fileName</i> to the icon, as a specialization for <i>size</i>, <i>mode</i> and <i>state</i>. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::addFile(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#addFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds an image from the file with the given <i>fileName</i> to the icon, as a specialization for <i>size</i>, <i>mode</i> and <i>state</i>. The file will be loaded on demand. Note: custom icon engines are free to ignore additionally added pixmaps.</p>
    /// <p>If <i>fileName</i> contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.</p>
    /// <p>The file name can refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">QImageWriter::supportedImageFormats</a>() functions to retrieve a complete list of the supported file formats.</p>
    /// <p>If a high resolution version of the image exists (identified by the suffix <code>@2x</code> on the base name), it is automatically loaded and added with the <i>device pixel ratio</i> set to a value of 2. This can be disabled by setting the environment variable <code>QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING</code> (see <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>).</p>
    /// <p><b>Note: </b>When you add a non-empty filename to a <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>, the icon becomes non-null, even if the file doesn't exist or points to a corrupt file.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">addPixmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">QPixmap::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_file_1a(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_addFile3(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Adds <i>pixmap</i> to the icon, as a specialization for <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::addPixmap(const QPixmap& pixmap, QIcon::Mode mode = …, QIcon::State state = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds <i>pixmap</i> to the icon, as a specialization for <i>mode</i> and <i>state</i>.</p>
    /// <p>Custom icon engines are free to ignore additionally added pixmaps.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#addFile">addFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_pixmap_3a(
        &mut self,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_addPixmap(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            mode,
            state,
        )
    }

    /// <p>Adds <i>pixmap</i> to the icon, as a specialization for <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::addPixmap(const QPixmap& pixmap, QIcon::Mode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds <i>pixmap</i> to the icon, as a specialization for <i>mode</i> and <i>state</i>.</p>
    /// <p>Custom icon engines are free to ignore additionally added pixmaps.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#addFile">addFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_pixmap_2a(
        &mut self,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        mode: crate::q_icon::Mode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_addPixmap1(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            mode,
        )
    }

    /// <p>Adds <i>pixmap</i> to the icon, as a specialization for <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::addPixmap(const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds <i>pixmap</i> to the icon, as a specialization for <i>mode</i> and <i>state</i>.</p>
    /// <p>Custom icon engines are free to ignore additionally added pixmaps.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#addFile">addFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_pixmap_1a(
        &mut self,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_addPixmap2(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        )
    }

    /// <p>Returns a list of available icon sizes for the specified <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize> QIcon::availableSizes(QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#availableSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of available icon sizes for the specified <i>mode</i> and <i>state</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn available_sizes_2a(
        &self,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_availableSizes(
            self as *const crate::QIcon,
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of available icon sizes for the specified <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize> QIcon::availableSizes(QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#availableSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of available icon sizes for the specified <i>mode</i> and <i>state</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn available_sizes_1a(
        &self,
        mode: crate::q_icon::Mode,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIcon_availableSizes1(self as *const crate::QIcon, mode);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of available icon sizes for the specified <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize> QIcon::availableSizes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#availableSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of available icon sizes for the specified <i>mode</i> and <i>state</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn available_sizes_0a(&self) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIcon_availableSizes2(self as *const crate::QIcon);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a number that identifies the contents of this <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> object. Distinct <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> objects can have the same key if they refer to the same contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```qint64 QIcon::cacheKey() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#cacheKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a number that identifies the contents of this <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> object. Distinct <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> objects can have the same key if they refer to the same contents.</p>
    /// <p>The cacheKey() will change when the icon is altered via <a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">addPixmap</a>() or <a href="http://doc.qt.io/qt-5/qicon.html#addFile">addFile</a>().</p>
    /// <p>Cache keys are mostly useful in conjunction with caching.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#cacheKey">QPixmap::cacheKey</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cache_key(&self) -> i64 {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_cacheKey(self as *const crate::QIcon)
    }

    /// <p>Assigns the <i>other</i> icon to this icon and returns a reference to this icon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIcon& QIcon::operator=(const QIcon& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the <i>other</i> icon to this icon and returns a reference to this icon.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIcon>>,
    ) -> ::cpp_core::MutRef<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_operator_(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIcon>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```void QIcon::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_detach(self as *mut crate::QIcon)
    }

    /// <p>Returns the fallback search paths for icons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QIcon::fallbackSearchPaths()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#fallbackSearchPaths">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the fallback search paths for icons.</p>
    /// <p>The default value will depend on the platform.</p>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#setFallbackSearchPaths">setFallbackSearchPaths</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">themeSearchPaths</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fallback_search_paths() -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_fallbackSearchPaths();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the name of the fallback icon theme.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QIcon::fallbackThemeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#fallbackThemeName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the fallback icon theme.</p>
    /// <p>On X11, if not set, the fallback icon theme depends on your desktop settings. On other platforms it is not set by default.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#setFallbackThemeName">setFallbackThemeName</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#themeName">themeName</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fallback_theme_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_fallbackThemeName();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> corresponding to <i>name</i> in the current icon theme.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QIcon QIcon::fromTheme(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> corresponding to <i>name</i> in the current icon theme.</p>
    /// <p>The latest version of the freedesktop icon specification and naming specification can be obtained here:</p>
    /// <ul>
    /// <li><a href="http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html">http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html</a></li>
    /// <li><a href="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html</a></li>
    /// </ul>
    /// <p>To fetch an icon from the current icon theme:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span> undoicon <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span><span class="operator">::</span>fromTheme(<span class="string">"edit-undo"</span>);
    ///
    /// </pre>
    /// <p><b>Note: </b>By default, only X11 will support themed icons. In order to use themed icons on Mac and Windows, you will have to bundle a compliant theme in one of your <a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">themeSearchPaths</a>() and set the appropriate <a href="http://doc.qt.io/qt-5/qicon.html#themeName">themeName</a>().</p><p><b>Note: </b>Qt will make use of GTK's icon-theme.cache if present to speed up the lookup. These caches can be generated using gtk-update-icon-cache: <a href="https://developer.gnome.org/gtk3/stable/gtk-update-icon-cache.html">https://developer.gnome.org/gtk3/stable/gtk-update-icon-cache.html</a>.</p><p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#themeName">themeName</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#setThemeName">setThemeName</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">themeSearchPaths</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_theme_1a(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_fromTheme(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QIcon QIcon::fromTheme(const QString& name, const QIcon& fallback)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> corresponding to <i>name</i> in the current icon theme. If no such icon is found in the current theme <i>fallback</i> is returned instead.</p>
    /// <p>If you want to provide a guaranteed fallback for platforms that do not support theme icons, you can use the second argument:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span> undoicon <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span><span class="operator">::</span>fromTheme(<span class="string">"edit-undo"</span><span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span>(<span class="string">":/undo.png"</span>));
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn from_theme_2a(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        fallback: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIcon>>,
    ) -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_fromTheme1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIcon>>::cast_into(fallback).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if there is an icon available for <i>name</i> in the current icon theme, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QIcon::hasThemeIcon(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#hasThemeIcon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if there is an icon available for <i>name</i> in the current icon theme, otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">themeSearchPaths</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">fromTheme</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#setThemeName">setThemeName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_theme_icon(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_hasThemeIcon(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QIcon::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_isDetached(self as *const crate::QIcon)
    }

    /// <p>Returns <code>true</code> if this icon has been marked as a mask image. Certain platforms render mask icons differently (for example, menu icons on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QIcon::isMask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#isMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this icon has been marked as a mask image. Certain platforms render mask icons differently (for example, menu icons on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>).</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#setIsMask">setIsMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_mask(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_isMask(self as *const crate::QIcon)
    }

    /// <p>Returns <code>true</code> if the icon is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QIcon::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the icon is empty; otherwise returns <code>false</code>.</p>
    /// <p>An icon is empty if it has neither a pixmap nor a filename.</p>
    /// <p>Note: Even a non-null icon might not be able to create valid pixmaps, eg. if the file does not exist or cannot be read.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_isNull(self as *const crate::QIcon)
    }

    /// <p>Returns the name used to create the icon, if available.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QIcon::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#name">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name used to create the icon, if available.</p>
    /// <p>Depending on the way the icon was created, it may have an associated name. This is the case for icons created with <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">fromTheme</a>() or icons using a <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> which supports the <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::IconNameHook</a>.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">fromTheme</a>() and <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a>.</p></div>
    #[inline(always)]
    pub unsafe fn name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_name(self as *const crate::QIcon);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a null icon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIcon::QIcon()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#QIcon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a null icon.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_QIcon();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an icon from a <i>pixmap</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIcon::QIcon(const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#QIcon-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an icon from a <i>pixmap</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_pixmap(
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_QIcon1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an icon from the file with the given <i>fileName</i>. The file will be loaded on demand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIcon::QIcon(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#QIcon-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an icon from the file with the given <i>fileName</i>. The file will be loaded on demand.</p>
    /// <p>If <i>fileName</i> contains a relative path (e.g. the filename only) the relevant file must be found relative to the runtime working directory.</p>
    /// <p>The file name can refer to an actual file on disk or to one of the application's embedded resources. See the <a href="http://doc.qt.io/qt-5/resources.html">Resource System</a> overview for details on how to embed images and other resource files in the application's executable.</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">QImageWriter::supportedImageFormats</a>() functions to retrieve a complete list of the supported file formats.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_QIcon4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates an icon with a specific icon <i>engine</i>. The icon takes ownership of the engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIcon::QIcon(QIconEngine* engine)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#QIcon-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates an icon with a specific icon <i>engine</i>. The icon takes ownership of the engine.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_icon_engine(
        engine: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QIconEngine>>,
    ) -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_QIcon5(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QIconEngine>>::cast_into(engine)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>. This is very fast.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIcon::QIcon(const QIcon& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#QIcon-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>. This is very fast.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIcon>>,
    ) -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_QIcon2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIcon>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Uses the <i>painter</i> to paint the icon with specified <i>alignment</i>, required <i>mode</i>, and <i>state</i> into the rectangle <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::paint(QPainter* painter, const QRect& rect, QFlags<Qt::AlignmentFlag> alignment = …, QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#paint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uses the <i>painter</i> to paint the icon with specified <i>alignment</i>, required <i>mode</i>, and <i>state</i> into the rectangle <i>rect</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn paint_q_painter_q_rect_q_flags_alignment_flag_mode_state(
        &self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_paint(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            alignment.to_int(),
            mode,
            state,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::paint(QPainter* painter, int x, int y, int w, int h, QFlags<Qt::AlignmentFlag> alignment = …, QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#paint-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Paints the icon into the rectangle <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>w</i>, <i>h</i>).</p></div>
    #[inline(always)]
    pub unsafe fn paint_q_painter4_int_q_flags_alignment_flag_mode_state(
        &self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_paint1(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            x,
            y,
            w,
            h,
            alignment.to_int(),
            mode,
            state,
        )
    }

    /// <p>Uses the <i>painter</i> to paint the icon with specified <i>alignment</i>, required <i>mode</i>, and <i>state</i> into the rectangle <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::paint(QPainter* painter, const QRect& rect, QFlags<Qt::AlignmentFlag> alignment = …, QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#paint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uses the <i>painter</i> to paint the icon with specified <i>alignment</i>, required <i>mode</i>, and <i>state</i> into the rectangle <i>rect</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn paint_q_painter_q_rect_q_flags_alignment_flag_mode(
        &self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>,
        mode: crate::q_icon::Mode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_paint2(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            alignment.to_int(),
            mode,
        )
    }

    /// <p>Uses the <i>painter</i> to paint the icon with specified <i>alignment</i>, required <i>mode</i>, and <i>state</i> into the rectangle <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::paint(QPainter* painter, const QRect& rect, QFlags<Qt::AlignmentFlag> alignment = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#paint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uses the <i>painter</i> to paint the icon with specified <i>alignment</i>, required <i>mode</i>, and <i>state</i> into the rectangle <i>rect</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn paint_q_painter_q_rect_q_flags_alignment_flag(
        &self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_paint3(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            alignment.to_int(),
        )
    }

    /// <p>Uses the <i>painter</i> to paint the icon with specified <i>alignment</i>, required <i>mode</i>, and <i>state</i> into the rectangle <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::paint(QPainter* painter, const QRect& rect) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#paint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uses the <i>painter</i> to paint the icon with specified <i>alignment</i>, required <i>mode</i>, and <i>state</i> into the rectangle <i>rect</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">pixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn paint_q_painter_q_rect(
        &self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_paint4(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::paint(QPainter* painter, int x, int y, int w, int h, QFlags<Qt::AlignmentFlag> alignment = …, QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#paint-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Paints the icon into the rectangle <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>w</i>, <i>h</i>).</p></div>
    #[inline(always)]
    pub unsafe fn paint_q_painter4_int_q_flags_alignment_flag_mode(
        &self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>,
        mode: crate::q_icon::Mode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_paint5(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            x,
            y,
            w,
            h,
            alignment.to_int(),
            mode,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::paint(QPainter* painter, int x, int y, int w, int h, QFlags<Qt::AlignmentFlag> alignment = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#paint-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Paints the icon into the rectangle <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>w</i>, <i>h</i>).</p></div>
    #[inline(always)]
    pub unsafe fn paint_q_painter4_int_q_flags_alignment_flag(
        &self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_paint6(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            x,
            y,
            w,
            h,
            alignment.to_int(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::paint(QPainter* painter, int x, int y, int w, int h) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#paint-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Paints the icon into the rectangle <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>w</i>, <i>h</i>).</p></div>
    #[inline(always)]
    pub unsafe fn paint_q_painter4_int(
        &self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_paint7(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            x,
            y,
            w,
            h,
        )
    }

    /// <p>Returns a pixmap with the requested <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary. The pixmap might be smaller than requested, but never larger.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(const QSize& size, QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pixmap with the requested <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary. The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_q_size_mode_state(
        &self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(int w, int h, QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a pixmap of size <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>(<i>w</i>, <i>h</i>). The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_2_int_mode_state(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap1(
            self as *const crate::QIcon,
            w,
            h,
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(int extent, QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a pixmap of size <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>(<i>extent</i>, <i>extent</i>). The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_int_mode_state(
        &self,
        extent: ::std::os::raw::c_int,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap2(
            self as *const crate::QIcon,
            extent,
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pixmap with the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(QWindow* window, const QSize& size, QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pixmap with the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary.</p>
    /// <p>The pixmap can be smaller than the requested size. If <i>window</i> is on a high-dpi display the pixmap can be larger. In that case it will have a devicePixelRatio larger than 1.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_q_window_q_size_mode_state(
        &self,
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap3(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pixmap with the requested <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary. The pixmap might be smaller than requested, but never larger.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(const QSize& size, QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pixmap with the requested <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary. The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_q_size_mode(
        &self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap4(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pixmap with the requested <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary. The pixmap might be smaller than requested, but never larger.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(const QSize& size) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pixmap with the requested <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary. The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_q_size(
        &self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap5(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(int w, int h, QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a pixmap of size <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>(<i>w</i>, <i>h</i>). The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_2_int_mode(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        mode: crate::q_icon::Mode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap6(self as *const crate::QIcon, w, h, mode);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(int w, int h) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a pixmap of size <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>(<i>w</i>, <i>h</i>). The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_2_int(
        &self,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap7(self as *const crate::QIcon, w, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(int extent, QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a pixmap of size <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>(<i>extent</i>, <i>extent</i>). The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_int_mode(
        &self,
        extent: ::std::os::raw::c_int,
        mode: crate::q_icon::Mode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap8(self as *const crate::QIcon, extent, mode);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(int extent) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a pixmap of size <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>(<i>extent</i>, <i>extent</i>). The pixmap might be smaller than requested, but never larger.</p>
    /// <p>Setting the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_UseHighDpiPixmaps</a> application attribute enables this function to return pixmaps that are larger than the requested size. Such images will have a devicePixelRatio larger than 1.</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_int(
        &self,
        extent: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap9(self as *const crate::QIcon, extent);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pixmap with the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(QWindow* window, const QSize& size, QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pixmap with the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary.</p>
    /// <p>The pixmap can be smaller than the requested size. If <i>window</i> is on a high-dpi display the pixmap can be larger. In that case it will have a devicePixelRatio larger than 1.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_q_window_q_size_mode(
        &self,
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap10(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pixmap with the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIcon::pixmap(QWindow* window, const QSize& size) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#pixmap-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pixmap with the requested <i>window</i> <i>size</i>, <i>mode</i>, and <i>state</i>, generating one if necessary.</p>
    /// <p>The pixmap can be smaller than the requested size. If <i>window</i> is on a high-dpi display the pixmap can be larger. In that case it will have a devicePixelRatio larger than 1.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#actualSize">actualSize</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#paint">paint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_q_window_q_size(
        &self,
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_pixmap11(
            self as *const crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the fallback search paths for icons to <i>paths</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QIcon::setFallbackSearchPaths(const QStringList& paths)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#setFallbackSearchPaths">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the fallback search paths for icons to <i>paths</i>.</p>
    /// <p><b>Note: </b>To add some path without replacing existing ones:</p><pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span><span class="operator">::</span>setFallbackSearchPaths(<span class="type"><a href="http://doc.qt.io/qt-5/qicon.html#QIcon">QIcon</a></span><span class="operator">::</span>fallbackSearchPaths() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"my/search/path"</span>);
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#fallbackSearchPaths">fallbackSearchPaths</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#setThemeSearchPaths">setThemeSearchPaths</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_fallback_search_paths(
        paths: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_setFallbackSearchPaths(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(paths)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the fallback icon theme to <i>name</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QIcon::setFallbackThemeName(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#setFallbackThemeName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the fallback icon theme to <i>name</i>.</p>
    /// <p>The <i>name</i> should correspond to a directory name in the themeSearchPath() containing an index.theme file describing its contents.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#fallbackThemeName">fallbackThemeName</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">themeSearchPaths</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#themeName">themeName</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_fallback_theme_name(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_setFallbackThemeName(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Indicate that this icon is a mask image(boolean <i>isMask</i>), and hence can potentially be modified based on where it's displayed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::setIsMask(bool isMask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#setIsMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Indicate that this icon is a mask image(boolean <i>isMask</i>), and hence can potentially be modified based on where it's displayed.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#isMask">isMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_is_mask(&mut self, is_mask: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_setIsMask(self as *mut crate::QIcon, is_mask)
    }

    /// <p>Sets the current icon theme to <i>name</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QIcon::setThemeName(const QString& path)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#setThemeName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the current icon theme to <i>name</i>.</p>
    /// <p>The <i>name</i> should correspond to a directory name in the themeSearchPath() containing an index.theme file describing it's contents.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">themeSearchPaths</a>() and <a href="http://doc.qt.io/qt-5/qicon.html#themeName">themeName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_theme_name(
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_setThemeName(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(path)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the search paths for icon themes to <i>paths</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QIcon::setThemeSearchPaths(const QStringList& searchpath)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#setThemeSearchPaths">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the search paths for icon themes to <i>paths</i>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">themeSearchPaths</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">fromTheme</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#setThemeName">setThemeName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_theme_search_paths(
        searchpath: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_setThemeSearchPaths(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(searchpath)
                .as_raw_ptr(),
        )
    }

    /// <p>Swaps icon <i>other</i> with this icon. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIcon::swap(QIcon& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps icon <i>other</i> with this icon. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QIcon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_swap(
            self as *mut crate::QIcon,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QIcon>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the name of the current icon theme.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QIcon::themeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#themeName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the current icon theme.</p>
    /// <p>On X11, the current icon theme depends on your desktop settings. On other platforms it is not set by default.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#setThemeName">setThemeName</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">themeSearchPaths</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">fromTheme</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#hasThemeIcon">hasThemeIcon</a>().</p></div>
    #[inline(always)]
    pub unsafe fn theme_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_themeName();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the search paths for icon themes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QIcon::themeSearchPaths()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#themeSearchPaths">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the search paths for icon themes.</p>
    /// <p>The default value will depend on the platform:</p>
    /// <p>On X11, the search path will use the XDG_DATA_DIRS environment variable if available.</p>
    /// <p>By default all platforms will have the resource directory <code>:\icons</code> as a fallback. You can use "rcc -project" to generate a resource file from your icon theme.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qicon.html#setThemeSearchPaths">setThemeSearchPaths</a>(), <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">fromTheme</a>(), and <a href="http://doc.qt.io/qt-5/qicon.html#setThemeName">setThemeName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn theme_search_paths() -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIcon_themeSearchPaths();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the icon as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QIcon::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the icon as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIcon_operator_QVariant(self as *const crate::QIcon);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a> class provides a mouse cursor with an arbitrary shape.</p>
///
/// C++ class: <span style='color: green;'>```QCursor```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcursor.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a> class provides a mouse cursor with an arbitrary shape.</p>
/// <p>This class is mainly used to create mouse cursors that are associated with particular widgets and to get and set the position of the mouse cursor.</p>
/// <p>Qt has a number of standard cursor shapes, but you can also make custom cursor shapes based on a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a>, a mask and a hotspot.</p>
/// <p>To associate a cursor with a widget, use <a href="http://doc.qt.io/qt-5/qwidget.html#cursor-prop">QWidget::setCursor</a>(). To associate a cursor with all widgets (normally for a short period of time), use <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">QGuiApplication::setOverrideCursor</a>().</p>
/// <p>To set a cursor shape use <a href="http://doc.qt.io/qt-5/qcursor.html#setShape">QCursor::setShape</a>() or use the <a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a> constructor which takes the shape as argument, or you can use one of the predefined cursors defined in the <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">Qt::CursorShape</a> enum.</p>
/// <p>If you want to create a cursor with your own bitmap, either use the <a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a> constructor which takes a bitmap and a mask or the constructor which takes a pixmap as arguments.</p>
/// <p>To set or get the position of the mouse cursor use the static methods <a href="http://doc.qt.io/qt-5/qcursor.html#pos">QCursor::pos</a>() and <a href="http://doc.qt.io/qt-5/qcursor.html#setPos">QCursor::setPos</a>().</p>
/// <p><b>Note:</b> It is possible to create a <a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a> before <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a>, but it is not useful except as a place-holder for a real <a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a> created after <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a>. Attempting to use a <a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a> that was created before <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> will result in a crash.</p>
/// <a name="a-note-for-x11-users"></a></div>
#[repr(C)]
pub struct QCursor {
    _unused: u8,
}
impl QCursor {
    /// <p>Returns the cursor bitmap, or 0 if it is one of the standard cursors.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBitmap* QCursor::bitmap() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#bitmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor bitmap, or 0 if it is one of the standard cursors.</p></div>
    #[inline(always)]
    pub unsafe fn bitmap(&self) -> ::cpp_core::Ptr<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_bitmap(self as *const crate::QCursor);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Assigns <i>c</i> to this cursor and returns a reference to this cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QCursor& QCursor::operator=(const QCursor& cursor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>c</i> to this cursor and returns a reference to this cursor.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QCursor>>,
    ) -> ::cpp_core::MutRef<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_operator_(
            self as *mut crate::QCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QCursor>>::cast_into(cursor).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the cursor hot spot, or (0, 0) if it is one of the standard cursors.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QCursor::hotSpot() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#hotSpot">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor hot spot, or (0, 0) if it is one of the standard cursors.</p></div>
    #[inline(always)]
    pub unsafe fn hot_spot(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QCursor_hotSpot(self as *const crate::QCursor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the cursor bitmap mask, or 0 if it is one of the standard cursors.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBitmap* QCursor::mask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#mask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor bitmap mask, or 0 if it is one of the standard cursors.</p></div>
    #[inline(always)]
    pub unsafe fn mask(&self) -> ::cpp_core::Ptr<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_mask(self as *const crate::QCursor);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a cursor with the default arrow shape.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a cursor with the default arrow shape.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a cursor with the specified <i>shape</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor(Qt::CursorShape shape)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a cursor with the specified <i>shape</i>.</p>
    /// <p>See <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">Qt::CursorShape</a> for a list of shapes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcursor.html#setShape">setShape</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_cursor_shape(
        shape: ::qt_core::CursorShape,
    ) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor1(shape);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a custom bitmap cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor(const QBitmap& bitmap, const QBitmap& mask, int hotX = …, int hotY = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a custom bitmap cursor.</p>
    /// <p><i>bitmap</i> and <i>mask</i> make up the bitmap. <i>hotX</i> and <i>hotY</i> define the cursor's hot spot.</p>
    /// <p>If <i>hotX</i> is negative, it is set to the <code>bitmap().width()/2</code>. If <i>hotY</i> is negative, it is set to the <code>bitmap().height()/2</code>.</p>
    /// <p>The cursor <i>bitmap</i> (B) and <i>mask</i> (M) bits are combined like this:</p>
    /// <ul>
    /// <li>B=1 and M=1 gives black.</li>
    /// <li>B=0 and M=1 gives white.</li>
    /// <li>B=0 and M=0 gives transparent.</li>
    /// <li>B=1 and M=0 gives an XOR'd result under Windows, undefined results on all other platforms.</li>
    /// </ul>
    /// <p>Use the global Qt color <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a> to draw 0-pixels and <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color1</a> to draw 1-pixels in the bitmaps.</p>
    /// <p>Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap">QBitmap::QBitmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QBitmap::setMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_q_bitmap2_int(
        bitmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
        mask: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
        hot_x: ::std::os::raw::c_int,
        hot_y: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(bitmap).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(mask).as_raw_ptr(),
            hot_x,
            hot_y,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a custom pixmap cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor(const QPixmap& pixmap, int hotX = …, int hotY = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a custom pixmap cursor.</p>
    /// <p><i>pixmap</i> is the image. It is usual to give it a mask (set using <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QPixmap::setMask</a>()). <i>hotX</i> and <i>hotY</i> define the cursor's hot spot.</p>
    /// <p>If <i>hotX</i> is negative, it is set to the <code>pixmap().width()/2</code>. If <i>hotY</i> is negative, it is set to the <code>pixmap().height()/2</code>.</p>
    /// <p>Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap::QPixmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QPixmap::setMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_pixmap2_int(
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        hot_x: ::std::os::raw::c_int,
        hot_y: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            hot_x,
            hot_y,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a custom bitmap cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor(const QBitmap& bitmap, const QBitmap& mask, int hotX = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a custom bitmap cursor.</p>
    /// <p><i>bitmap</i> and <i>mask</i> make up the bitmap. <i>hotX</i> and <i>hotY</i> define the cursor's hot spot.</p>
    /// <p>If <i>hotX</i> is negative, it is set to the <code>bitmap().width()/2</code>. If <i>hotY</i> is negative, it is set to the <code>bitmap().height()/2</code>.</p>
    /// <p>The cursor <i>bitmap</i> (B) and <i>mask</i> (M) bits are combined like this:</p>
    /// <ul>
    /// <li>B=1 and M=1 gives black.</li>
    /// <li>B=0 and M=1 gives white.</li>
    /// <li>B=0 and M=0 gives transparent.</li>
    /// <li>B=1 and M=0 gives an XOR'd result under Windows, undefined results on all other platforms.</li>
    /// </ul>
    /// <p>Use the global Qt color <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a> to draw 0-pixels and <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color1</a> to draw 1-pixels in the bitmaps.</p>
    /// <p>Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap">QBitmap::QBitmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QBitmap::setMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_q_bitmap_int(
        bitmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
        mask: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
        hot_x: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(bitmap).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(mask).as_raw_ptr(),
            hot_x,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a custom bitmap cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor(const QBitmap& bitmap, const QBitmap& mask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a custom bitmap cursor.</p>
    /// <p><i>bitmap</i> and <i>mask</i> make up the bitmap. <i>hotX</i> and <i>hotY</i> define the cursor's hot spot.</p>
    /// <p>If <i>hotX</i> is negative, it is set to the <code>bitmap().width()/2</code>. If <i>hotY</i> is negative, it is set to the <code>bitmap().height()/2</code>.</p>
    /// <p>The cursor <i>bitmap</i> (B) and <i>mask</i> (M) bits are combined like this:</p>
    /// <ul>
    /// <li>B=1 and M=1 gives black.</li>
    /// <li>B=0 and M=1 gives white.</li>
    /// <li>B=0 and M=0 gives transparent.</li>
    /// <li>B=1 and M=0 gives an XOR'd result under Windows, undefined results on all other platforms.</li>
    /// </ul>
    /// <p>Use the global Qt color <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a> to draw 0-pixels and <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color1</a> to draw 1-pixels in the bitmaps.</p>
    /// <p>Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap">QBitmap::QBitmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QBitmap::setMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_q_bitmap(
        bitmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
        mask: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
    ) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor7(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(bitmap).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(mask).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a custom pixmap cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor(const QPixmap& pixmap, int hotX = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a custom pixmap cursor.</p>
    /// <p><i>pixmap</i> is the image. It is usual to give it a mask (set using <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QPixmap::setMask</a>()). <i>hotX</i> and <i>hotY</i> define the cursor's hot spot.</p>
    /// <p>If <i>hotX</i> is negative, it is set to the <code>pixmap().width()/2</code>. If <i>hotY</i> is negative, it is set to the <code>pixmap().height()/2</code>.</p>
    /// <p>Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap::QPixmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QPixmap::setMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_pixmap_int(
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        hot_x: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor8(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            hot_x,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a custom pixmap cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor(const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a custom pixmap cursor.</p>
    /// <p><i>pixmap</i> is the image. It is usual to give it a mask (set using <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QPixmap::setMask</a>()). <i>hotX</i> and <i>hotY</i> define the cursor's hot spot.</p>
    /// <p>If <i>hotX</i> is negative, it is set to the <code>pixmap().width()/2</code>. If <i>hotY</i> is negative, it is set to the <code>pixmap().height()/2</code>.</p>
    /// <p>Valid cursor sizes depend on the display hardware (or the underlying window system). We recommend using 32 x 32 cursors, because this size is supported on all platforms. Some platforms also support 16 x 16, 48 x 48, and 64 x 64 cursors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#QPixmap">QPixmap::QPixmap</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QPixmap::setMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_pixmap(
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor9(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of the cursor <i>c</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QCursor::QCursor(const QCursor& cursor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#QCursor-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of the cursor <i>c</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QCursor>>,
    ) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_QCursor4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QCursor>>::cast_into(cursor).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the cursor pixmap. This is only valid if the cursor is a pixmap cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QCursor::pixmap() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#pixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor pixmap. This is only valid if the cursor is a pixmap cursor.</p></div>
    #[inline(always)]
    pub unsafe fn pixmap(&self) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_pixmap(self as *const crate::QCursor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the cursor (hot spot) of the primary screen in global screen coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPoint QCursor::pos()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#pos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the cursor (hot spot) of the primary screen in global screen coordinates.</p>
    /// <p>You can call <a href="http://doc.qt.io/qt-5/qwidget.html#mapFromGlobal">QWidget::mapFromGlobal</a>() to translate it to widget coordinates.</p>
    /// <p><b>Note: </b>The position is queried from the windowing system. If mouse events are generated via other means (e.g., via QWindowSystemInterface in a unit test), those fake mouse moves will not be reflected in the returned value.</p><p><b>Note: </b>On platforms where there is no windowing system or cursors are not available, the returned position is based on the mouse move events generated via QWindowSystemInterface.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qcursor.html#setPos">setPos</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mapFromGlobal">QWidget::mapFromGlobal</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mapToGlobal">QWidget::mapToGlobal</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#primaryScreen-prop">QGuiApplication::primaryScreen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos_0a() -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_pos();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of the cursor (hot spot) of the <i>screen</i> in global screen coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPoint QCursor::pos(const QScreen* screen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#pos-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the cursor (hot spot) of the <i>screen</i> in global screen coordinates.</p>
    /// <p>You can call <a href="http://doc.qt.io/qt-5/qwidget.html#mapFromGlobal">QWidget::mapFromGlobal</a>() to translate it to widget coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcursor.html#setPos">setPos</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mapFromGlobal">QWidget::mapFromGlobal</a>(), and <a href="http://doc.qt.io/qt-5/qwidget.html#mapToGlobal">QWidget::mapToGlobal</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pos_1a(
        screen: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QScreen>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QCursor_pos1(
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QScreen>>::cast_into(screen).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the cursor (hot spot) of the primary screen to the global screen position (<i>x</i>, <i>y</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QCursor::setPos(int x, int y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#setPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the cursor (hot spot) of the primary screen to the global screen position (<i>x</i>, <i>y</i>).</p>
    /// <p>You can call <a href="http://doc.qt.io/qt-5/qwidget.html#mapToGlobal">QWidget::mapToGlobal</a>() to translate widget coordinates to global screen coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcursor.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mapFromGlobal">QWidget::mapFromGlobal</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mapToGlobal">QWidget::mapToGlobal</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#primaryScreen-prop">QGuiApplication::primaryScreen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pos_2_int(x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QCursor_setPos(x, y)
    }

    /// <p>Moves the cursor (hot spot) of the <i>screen</i> to the global screen position (<i>x</i>, <i>y</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QCursor::setPos(QScreen* screen, int x, int y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#setPos-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the cursor (hot spot) of the <i>screen</i> to the global screen position (<i>x</i>, <i>y</i>).</p>
    /// <p>You can call <a href="http://doc.qt.io/qt-5/qwidget.html#mapToGlobal">QWidget::mapToGlobal</a>() to translate widget coordinates to global screen coordinates.</p>
    /// <p><b>Note: </b>Calling this function results in changing the cursor position through the windowing system. The windowing system will typically respond by sending mouse events to the application's window. This means that the usage of this function should be avoided in unit tests and everywhere where fake mouse events are being injected via QWindowSystemInterface because the windowing system's mouse state (with regards to buttons for example) may not match the state in the application-generated events.</p><p><b>Note: </b>On platforms where there is no windowing system or cursors are not available, this function may do nothing.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qcursor.html#pos">pos</a>(), <a href="http://doc.qt.io/qt-5/qwidget.html#mapFromGlobal">QWidget::mapFromGlobal</a>(), and <a href="http://doc.qt.io/qt-5/qwidget.html#mapToGlobal">QWidget::mapToGlobal</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pos_q_screen2_int(
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QCursor_setPos1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen)
                .as_mut_raw_ptr(),
            x,
            y,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QCursor::setPos(const QPoint& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#setPos-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Moves the cursor (hot spot) to the global screen position at point <i>p</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_pos_q_point(
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QCursor_setPos2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QCursor::setPos(QScreen* screen, const QPoint& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#setPos-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Moves the cursor (hot spot) to the global screen position of the <i>screen</i> at point <i>p</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_pos_q_screen_q_point(
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QCursor_setPos3(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>Sets the cursor to the shape identified by <i>shape</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QCursor::setShape(Qt::CursorShape newShape)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#setShape">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the cursor to the shape identified by <i>shape</i>.</p>
    /// <p>See <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">Qt::CursorShape</a> for the list of cursor shapes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcursor.html#shape">shape</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_shape(&mut self, new_shape: ::qt_core::CursorShape) {
        crate::__ffi::ctr_qt_gui_ffi_QCursor_setShape(self as *mut crate::QCursor, new_shape)
    }

    /// <p>Returns the cursor shape identifier. The return value is one of the <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">Qt::CursorShape</a> enum values (cast to an int).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::CursorShape QCursor::shape() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#shape">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor shape identifier. The return value is one of the <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">Qt::CursorShape</a> enum values (cast to an int).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcursor.html#setShape">setShape</a>().</p></div>
    #[inline(always)]
    pub unsafe fn shape(&self) -> ::qt_core::CursorShape {
        crate::__ffi::ctr_qt_gui_ffi_QCursor_shape(self as *const crate::QCursor)
    }

    /// <p>Swaps this cursor with the <i>other</i> cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QCursor::swap(QCursor& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this cursor with the <i>other</i> cursor.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QCursor_swap(
            self as *mut crate::QCursor,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QCursor>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the cursor as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QCursor::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cursor as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QCursor_operator_QVariant(self as *const crate::QCursor);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_window {
    //! C++ type: <span style='color: green;'>```QWindow```</span>

    /// <p>This enum describes what part of the screen the window occupies or should occupy.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QWindow::Visibility```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#Visibility-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes what part of the screen the window occupies or should occupy.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.1.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Visibility(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Visibility {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Visibility(value)
        }
    }

    impl From<Visibility> for ::std::os::raw::c_int {
        fn from(value: Visibility) -> Self {
            value.0
        }
    }

    impl Visibility {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Visibility {
        /// The window is not visible in any way, however it may remember a latent visibility which can be restored by setting AutomaticVisibility. (C++ enum variant: <span style='color: green;'>```Hidden = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Hidden: crate::q_window::Visibility = crate::q_window::Visibility(0);
        /// This means to give the window a default visible state, which might be fullscreen or windowed depending on the platform. It can be given as a parameter to <a href="http://doc.qt.io/qt-5/qwindow.html#visibility-prop">setVisibility</a> but will never be read back from the visibility accessor. (C++ enum variant: <span style='color: green;'>```AutomaticVisibility = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AutomaticVisibility: crate::q_window::Visibility = crate::q_window::Visibility(1);
        /// The window occupies part of the screen, but not necessarily the entire screen. This state will occur only on windowing systems which support showing multiple windows simultaneously. In this state it is possible for the user to move and resize the window manually, if WindowFlags permit it and if it is supported by the windowing system. (C++ enum variant: <span style='color: green;'>```Windowed = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Windowed: crate::q_window::Visibility = crate::q_window::Visibility(2);
        /// The window is reduced to an entry or icon on the task bar, dock, task list or desktop, depending on how the windowing system handles minimized windows. (C++ enum variant: <span style='color: green;'>```Minimized = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Minimized: crate::q_window::Visibility = crate::q_window::Visibility(3);
        /// The window occupies one entire screen, and the titlebar is still visible. On most windowing systems this is the state achieved by clicking the maximize button on the toolbar. (C++ enum variant: <span style='color: green;'>```Maximized = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Maximized: crate::q_window::Visibility = crate::q_window::Visibility(4);
        /// The window occupies one entire screen, is not resizable, and there is no titlebar. On some platforms which do not support showing multiple simultaneous windows, this can be the usual visibility when the window is not hidden. (C++ enum variant: <span style='color: green;'>```FullScreen = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const FullScreen: crate::q_window::Visibility = crate::q_window::Visibility(5);
    }

    /// <p>This enum is used to control whether or not transient parents should be considered ancestors.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QWindow::AncestorMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#AncestorMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum is used to control whether or not transient parents should be considered ancestors.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AncestorMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AncestorMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AncestorMode(value)
        }
    }

    impl From<AncestorMode> for ::std::os::raw::c_int {
        fn from(value: AncestorMode) -> Self {
            value.0
        }
    }

    impl AncestorMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AncestorMode {
        /// Transient parents are not considered ancestors. (C++ enum variant: <span style='color: green;'>```ExcludeTransients = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExcludeTransients: crate::q_window::AncestorMode =
            crate::q_window::AncestorMode(0);
        /// Transient parents are considered ancestors. (C++ enum variant: <span style='color: green;'>```IncludeTransients = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const IncludeTransients: crate::q_window::AncestorMode =
            crate::q_window::AncestorMode(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> class represents a window in the underlying windowing system.</p>
///
/// C++ class: <span style='color: green;'>```QWindow```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qwindow.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> class represents a window in the underlying windowing system.</p>
/// <p>A window that is supplied a parent becomes a native child window of their parent window.</p>
/// <p>An application will typically use <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or <a href="http://doc.qt.io/qt-5/qquickview.html">QQuickView</a> for its UI, and not <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> directly. Still, it is possible to render directly to a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> with <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> or <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>, when wanting to keep dependencies to a minimum or when wanting to use OpenGL directly. The <a href="http://doc.qt.io/qt-5/qtgui-rasterwindow-example.html">Raster Window Example</a> and <a href="http://doc.qt.io/qt-5/qtgui-openglwindow-example.html">OpenGL Window Example</a> are useful reference examples for how to render to a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> using either approach.</p>
/// <a name="resource-management"></a></div>
#[repr(C)]
pub struct QWindow {
    _unused: u8,
}
impl QWindow {
    /// <p>Requests the window to be activated, i.e. receive keyboard focus.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::requestActivate` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#requestActivate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests the window to be activated, i.e. receive keyboard focus.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#isActive">isActive</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#focusWindow">QGuiApplication::focusWindow</a>(), and <a href="http://doc.qt.io/qt-5/qwindowswindowfunctions.html#setWindowActivationBehavior">QWindowsWindowFunctions::setWindowActivationBehavior</a>().</p></div>
    #[inline(always)]
    pub fn slot_request_activate(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1requestActivate()\0"),
            )
        }
    }

    /// <p>This property holds whether the window is visible or not</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setVisible` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the window is visible or not</p>
    /// <p>This property controls the visibility of the window in the windowing system.</p>
    /// <p>By default, the window is not visible, you must call setVisible(true), or <a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>() or similar to make it visible.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isVisible</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVisible</b></span>(bool <i>visible</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibleChanged</b></span>(bool <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_visible(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setVisible(bool)\0"),
            )
        }
    }

    /// <p>Shows the window.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::show` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#show">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window.</p>
    /// <p>This is equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#showFullScreen">showFullScreen</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showMaximized">showMaximized</a>(), or <a href="http://doc.qt.io/qt-5/qwindow.html#showNormal">showNormal</a>(), depending on the platform's default behavior for the window type and flags.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#showFullScreen">showFullScreen</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showMaximized">showMaximized</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showNormal">showNormal</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#hide">hide</a>(), <a href="http://doc.qt.io/qt-5/qstylehints.html#showIsFullScreen-prop">QStyleHints::showIsFullScreen</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>().</p></div>
    #[inline(always)]
    pub fn slot_show(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1show()\0"),
            )
        }
    }

    /// <p>Hides the window.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::hide` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#hide">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Hides the window.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(false).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub fn slot_hide(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1hide()\0"),
            )
        }
    }

    /// <p>Shows the window as minimized.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::showMinimized` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#showMinimized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window as minimized.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(<a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowMinimized</a>) and then <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub fn slot_show_minimized(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1showMinimized()\0"),
            )
        }
    }

    /// <p>Shows the window as maximized.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::showMaximized` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#showMaximized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window as maximized.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(<a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowMaximized</a>) and then <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub fn slot_show_maximized(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1showMaximized()\0"),
            )
        }
    }

    /// <p>Shows the window as fullscreen.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::showFullScreen` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#showFullScreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window as fullscreen.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(<a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowFullScreen</a>) and then <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub fn slot_show_full_screen(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1showFullScreen()\0"),
            )
        }
    }

    /// <p>Shows the window as normal, i.e. neither maximized, minimized, nor fullscreen.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::showNormal` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#showNormal">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window as normal, i.e. neither maximized, minimized, nor fullscreen.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(<a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowNoState</a>) and then <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub fn slot_show_normal(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1showNormal()\0"),
            )
        }
    }

    /// <p>Close the window.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::close` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#close">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Close the window.</p>
    /// <p>This closes the window, effectively calling <a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>(), and potentially quitting the application. Returns <code>true</code> on success, false if it has a parent window (in which case the top level window should be closed instead).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#quitOnLastWindowClosed-prop">QGuiApplication::quitOnLastWindowClosed</a>().</p></div>
    #[inline(always)]
    pub fn slot_close(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1close()\0"),
            )
        }
    }

    /// <p>Raise the window in the windowing system.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::raise` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#raise">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Raise the window in the windowing system.</p>
    /// <p>Requests that the window be raised to appear above other windows.</p></div>
    #[inline(always)]
    pub fn slot_raise(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1raise()\0"),
            )
        }
    }

    /// <p>Lower the window in the windowing system.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::lower` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#lower">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Lower the window in the windowing system.</p>
    /// <p>Requests that the window be lowered to appear below other windows.</p></div>
    #[inline(always)]
    pub fn slot_lower(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1lower()\0"),
            )
        }
    }

    /// <p>This property holds the window's title in the windowing system</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setTitle` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#title-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the window's title in the windowing system</p>
    /// <p>The window title might appear in the title area of the window decorations, depending on the windowing system and the window flags. It might also be used by the windowing system to identify the window in other contexts, such as in the task switcher.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>title</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTitle</b></span>(<i>const QString &amp;</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>windowTitleChanged</b></span>(const QString &amp;<i>title</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_title(&self) -> ::qt_core::Receiver<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setTitle(const QString&)\0"),
            )
        }
    }

    /// <p>This property holds the x position of the window's geometry</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setX` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#x-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the x position of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>x</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setX</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>xChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_x(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setX(int)\0"),
            )
        }
    }

    /// <p>This property holds the y position of the window's geometry</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setY` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#y-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the y position of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>y</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setY</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>yChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_y(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setY(int)\0"),
            )
        }
    }

    /// <p>This property holds the width of the window's geometry</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setWidth` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWidth</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_width(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWidth(int)\0"),
            )
        }
    }

    /// <p>This property holds the height of the window's geometry</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setHeight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHeight</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_height(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setHeight(int)\0"),
            )
        }
    }

    /// <p>This property holds the minimum width of the window's geometry</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setMinimumWidth` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the minimum width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinimumWidth</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumWidthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_minimum_width(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMinimumWidth(int)\0"),
            )
        }
    }

    /// <p>This property holds the minimum height of the window's geometry</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setMinimumHeight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumHeight-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the minimum height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumHeight</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinimumHeight</b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumHeightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_minimum_height(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMinimumHeight(int)\0"),
            )
        }
    }

    /// <p>This property holds the maximum width of the window's geometry</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setMaximumWidth` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the maximum width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumWidth</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumWidthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_maximum_width(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMaximumWidth(int)\0"),
            )
        }
    }

    /// <p>This property holds the maximum height of the window's geometry</p>
    ///
    /// Returns a built-in Qt slot `QWindow::setMaximumHeight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumHeight-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the maximum height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumHeight</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumHeight</b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumHeightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_maximum_height(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMaximumHeight(int)\0"),
            )
        }
    }

    /// <p>Causes an alert to be shown for <i>msec</i> miliseconds. If <i>msec</i> is <code>0</code> (the default), then the alert is shown indefinitely until the window becomes active again. This function has no effect on an active window.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::alert` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#alert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Causes an alert to be shown for <i>msec</i> miliseconds. If <i>msec</i> is <code>0</code> (the default), then the alert is shown indefinitely until the window becomes active again. This function has no effect on an active window.</p>
    /// <p>In alert state, the window indicates that it demands attention, for example by flashing or bouncing the taskbar entry.</p>
    /// <p>This function was introduced in  Qt 5.1.</p></div>
    #[inline(always)]
    pub fn slot_alert(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1alert(int)\0"),
            )
        }
    }

    /// <p>Schedules a <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::UpdateRequest</a> event to be delivered to this window.</p>
    ///
    /// Returns a built-in Qt slot `QWindow::requestUpdate` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#requestUpdate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Schedules a <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::UpdateRequest</a> event to be delivered to this window.</p>
    /// <p>The event is delivered in sync with the display vsync on platforms where this is possible. Otherwise, the event is delivered after a delay of 5 ms. The additional time is there to give the event loop a bit of idle time to gather system events, and can be overridden using the QT_QPA_UPDATE_IDLE_TIME environment variable.</p>
    /// <p>When driving animations, this function should be called once after drawing has completed. Calling this function multiple times will result in a single event being delivered to the window.</p>
    /// <p>Subclasses of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> should reimplement <a href="http://doc.qt.io/qt-5/qwindow.html#event">event</a>(), intercept the event and call the application's rendering code, then call the base class implementation.</p>
    /// <p><b>Note: </b>The subclass' reimplementation of <a href="http://doc.qt.io/qt-5/qwindow.html#event">event</a>() must invoke the base class implementation, unless it is absolutely sure that the event does not need to be handled by the base class. For example, the default implementation of this function relies on <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::Timer</a> events. Filtering them away would therefore break the delivery of the update events.</p><p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub fn slot_request_update(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1requestUpdate()\0"),
            )
        }
    }

    /// <p>This signal is emitted when a window's <i>screen</i> changes, either by being set explicitly with <a href="http://doc.qt.io/qt-5/qwindow.html#setScreen">setScreen</a>(), or automatically when the window's screen is removed.</p>
    ///
    /// Returns a built-in Qt signal `QWindow::screenChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#screenChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when a window's <i>screen</i> changes, either by being set explicitly with <a href="http://doc.qt.io/qt-5/qwindow.html#setScreen">setScreen</a>(), or automatically when the window's screen is removed.</p></div>
    #[inline(always)]
    pub fn screen_changed(&self) -> ::qt_core::Signal<(*mut crate::QScreen,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2screenChanged(QScreen*)\0"),
            )
        }
    }

    /// <p>This signal is emitted when the Qwindow::modality property changes to <i>modality</i>.</p>
    ///
    /// Returns a built-in Qt signal `QWindow::modalityChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#modalityChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the Qwindow::modality property changes to <i>modality</i>.</p>
    /// <p><b>Note:</b> Notifier signal for property <a href="http://doc.qt.io/qt-5/qwindow.html#modality-prop">modality</a>. </p></div>
    #[inline(always)]
    pub fn modality_changed(&self) -> ::qt_core::Signal<(::qt_core::WindowModality,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2modalityChanged(Qt::WindowModality)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the <i>windowState</i> changes, either by being set explicitly with <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(), or automatically when the user clicks one of the titlebar buttons or by other means.</p>
    ///
    /// Returns a built-in Qt signal `QWindow::windowStateChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#windowStateChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the <i>windowState</i> changes, either by being set explicitly with <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(), or automatically when the user clicks one of the titlebar buttons or by other means.</p></div>
    #[inline(always)]
    pub fn window_state_changed(&self) -> ::qt_core::Signal<(::qt_core::WindowState,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2windowStateChanged(Qt::WindowState)\0",
                ),
            )
        }
    }

    /// <p>This property holds the window's title in the windowing system</p>
    ///
    /// Returns a built-in Qt signal `QWindow::windowTitleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#title-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the window's title in the windowing system</p>
    /// <p>The window title might appear in the title area of the window decorations, depending on the windowing system and the window flags. It might also be used by the windowing system to identify the window in other contexts, such as in the task switcher.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>title</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTitle</b></span>(<i>const QString &amp;</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>windowTitleChanged</b></span>(const QString &amp;<i>title</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>().</p></div>
    #[inline(always)]
    pub fn window_title_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2windowTitleChanged(const QString&)\0",
                ),
            )
        }
    }

    /// <p>This property holds the x position of the window's geometry</p>
    ///
    /// Returns a built-in Qt signal `QWindow::xChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#x-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the x position of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>x</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setX</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>xChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn x_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2xChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the y position of the window's geometry</p>
    ///
    /// Returns a built-in Qt signal `QWindow::yChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#y-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the y position of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>y</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setY</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>yChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn y_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2yChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the width of the window's geometry</p>
    ///
    /// Returns a built-in Qt signal `QWindow::widthChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWidth</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn width_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2widthChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the height of the window's geometry</p>
    ///
    /// Returns a built-in Qt signal `QWindow::heightChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHeight</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn height_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2heightChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the minimum width of the window's geometry</p>
    ///
    /// Returns a built-in Qt signal `QWindow::minimumWidthChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the minimum width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinimumWidth</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumWidthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn minimum_width_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2minimumWidthChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the minimum height of the window's geometry</p>
    ///
    /// Returns a built-in Qt signal `QWindow::minimumHeightChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumHeight-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the minimum height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumHeight</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinimumHeight</b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumHeightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn minimum_height_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2minimumHeightChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the maximum width of the window's geometry</p>
    ///
    /// Returns a built-in Qt signal `QWindow::maximumWidthChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the maximum width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumWidth</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumWidthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn maximum_width_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2maximumWidthChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the maximum height of the window's geometry</p>
    ///
    /// Returns a built-in Qt signal `QWindow::maximumHeightChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumHeight-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the maximum height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumHeight</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumHeight</b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumHeightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn maximum_height_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2maximumHeightChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds whether the window is visible or not</p>
    ///
    /// Returns a built-in Qt signal `QWindow::visibleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the window is visible or not</p>
    /// <p>This property controls the visibility of the window in the windowing system.</p>
    /// <p>By default, the window is not visible, you must call setVisible(true), or <a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>() or similar to make it visible.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isVisible</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVisible</b></span>(bool <i>visible</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibleChanged</b></span>(bool <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>().</p></div>
    #[inline(always)]
    pub fn visible_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2visibleChanged(bool)\0"),
            )
        }
    }

    /// <p>This property holds the screen-occupation state of the window</p>
    ///
    /// Returns a built-in Qt signal `QWindow::visibilityChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#visibility-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen-occupation state of the window</p>
    /// <p>Visibility is whether the window should appear in the windowing system as normal, minimized, maximized, fullscreen or hidden.</p>
    /// <p>To set the visibility to <a href="http://doc.qt.io/qt-5/qwindow.html#Visibility-enum">AutomaticVisibility</a> means to give the window a default visible state, which might be fullscreen or windowed depending on the platform. When reading the visibility property you will always get the actual state, never <a href="http://doc.qt.io/qt-5/qwindow.html#Visibility-enum">AutomaticVisibility</a>.</p>
    /// <p>This property was introduced in  Qt 5.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Visibility </td><td class="memItemRight bottomAlign"><span class="name"><b>visibility</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVisibility</b></span>(Visibility <i>v</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibilityChanged</b></span>(QWindow::Visibility <i>visibility</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn visibility_changed(&self) -> ::qt_core::Signal<(crate::q_window::Visibility,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2visibilityChanged(QWindow::Visibility)\0",
                ),
            )
        }
    }

    /// <p>This property holds the active status of the window</p>
    ///
    /// Returns a built-in Qt signal `QWindow::activeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#active-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the active status of the window</p>
    /// <p>This property was introduced in  Qt 5.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qwindow.html#isActive">isActive</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>activeChanged</b></span>()</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#requestActivate">requestActivate</a>().</p></div>
    #[inline(always)]
    pub fn active_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2activeChanged()\0"),
            )
        }
    }

    /// <p>This property holds the orientation of the window's contents</p>
    ///
    /// Returns a built-in Qt signal `QWindow::contentOrientationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#contentOrientation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the orientation of the window's contents</p>
    /// <p>This is a hint to the window manager in case it needs to display additional content like popups, dialogs, status bars, or similar in relation to the window.</p>
    /// <p>The recommended orientation is <a href="http://doc.qt.io/qt-5/qscreen.html#orientation-prop">QScreen::orientation</a>() but an application doesn't have to support all possible orientations, and thus can opt to ignore the current screen orientation.</p>
    /// <p>The difference between the window and the content orientation determines how much to rotate the content by. <a href="http://doc.qt.io/qt-5/qscreen.html#angleBetween">QScreen::angleBetween</a>(), <a href="http://doc.qt.io/qt-5/qscreen.html#transformBetween">QScreen::transformBetween</a>(), and <a href="http://doc.qt.io/qt-5/qscreen.html#mapBetween">QScreen::mapBetween</a>() can be used to compute the necessary transform.</p>
    /// <p>The default value is <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a></p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::ScreenOrientation </td><td class="memItemRight bottomAlign"><span class="name"><b>contentOrientation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>reportContentOrientationChange</b></span>(Qt::ScreenOrientation <i>orientation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>contentOrientationChanged</b></span>(Qt::ScreenOrientation <i>orientation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn content_orientation_changed(
        &self,
    ) -> ::qt_core::Signal<(::qt_core::ScreenOrientation,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2contentOrientationChanged(Qt::ScreenOrientation)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the final receiver of events tied to focus is changed to <i>object</i>.</p>
    ///
    /// Returns a built-in Qt signal `QWindow::focusObjectChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#focusObjectChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the final receiver of events tied to focus is changed to <i>object</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#focusObject">focusObject</a>().</p></div>
    #[inline(always)]
    pub fn focus_object_changed(&self) -> ::qt_core::Signal<(*mut ::qt_core::QObject,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2focusObjectChanged(QObject*)\0"),
            )
        }
    }

    /// <p>This property holds the opacity of the window in the windowing system.</p>
    ///
    /// Returns a built-in Qt signal `QWindow::opacityChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#opacity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the opacity of the window in the windowing system.</p>
    /// <p>If the windowing system supports window opacity, this can be used to fade the window in and out, or to make it semitransparent.</p>
    /// <p>A value of 1.0 or above is treated as fully opaque, whereas a value of 0.0 or below is treated as fully transparent. Values inbetween represent varying levels of translucency between the two extremes.</p>
    /// <p>The default value is 1.0.</p>
    /// <p>This property was introduced in  Qt 5.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>opacity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setOpacity</b></span>(qreal <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>opacityChanged</b></span>(qreal <i>opacity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn opacity_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2opacityChanged(double)\0"),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual QAccessibleInterface* QWindow::accessibleRoot() const```</span>.
    #[inline(always)]
    pub unsafe fn accessible_root(&self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_accessibleRoot(self as *const crate::QWindow);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Causes an alert to be shown for <i>msec</i> miliseconds. If <i>msec</i> is <code>0</code> (the default), then the alert is shown indefinitely until the window becomes active again. This function has no effect on an active window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::alert(int msec)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#alert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Causes an alert to be shown for <i>msec</i> miliseconds. If <i>msec</i> is <code>0</code> (the default), then the alert is shown indefinitely until the window becomes active again. This function has no effect on an active window.</p>
    /// <p>In alert state, the window indicates that it demands attention, for example by flashing or bouncing the taskbar entry.</p>
    /// <p>This function was introduced in  Qt 5.1.</p></div>
    #[inline(always)]
    pub unsafe fn alert(&mut self, msec: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_alert(self as *mut crate::QWindow, msec)
    }

    /// <p>Returns the base size of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QWindow::baseSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#baseSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the base size of the window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setBaseSize">setBaseSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn base_size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_baseSize(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Close the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] bool QWindow::close()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#close">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Close the window.</p>
    /// <p>This closes the window, effectively calling <a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>(), and potentially quitting the application. Returns <code>true</code> on success, false if it has a parent window (in which case the top level window should be closed instead).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#quitOnLastWindowClosed-prop">QGuiApplication::quitOnLastWindowClosed</a>().</p></div>
    #[inline(always)]
    pub unsafe fn close(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_close(self as *mut crate::QWindow)
    }

    /// <p>This property holds the orientation of the window's contents</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::ScreenOrientation QWindow::contentOrientation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#contentOrientation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the orientation of the window's contents</p>
    /// <p>This is a hint to the window manager in case it needs to display additional content like popups, dialogs, status bars, or similar in relation to the window.</p>
    /// <p>The recommended orientation is <a href="http://doc.qt.io/qt-5/qscreen.html#orientation-prop">QScreen::orientation</a>() but an application doesn't have to support all possible orientations, and thus can opt to ignore the current screen orientation.</p>
    /// <p>The difference between the window and the content orientation determines how much to rotate the content by. <a href="http://doc.qt.io/qt-5/qscreen.html#angleBetween">QScreen::angleBetween</a>(), <a href="http://doc.qt.io/qt-5/qscreen.html#transformBetween">QScreen::transformBetween</a>(), and <a href="http://doc.qt.io/qt-5/qscreen.html#mapBetween">QScreen::mapBetween</a>() can be used to compute the necessary transform.</p>
    /// <p>The default value is <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a></p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::ScreenOrientation </td><td class="memItemRight bottomAlign"><span class="name"><b>contentOrientation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>reportContentOrientationChange</b></span>(Qt::ScreenOrientation <i>orientation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>contentOrientationChanged</b></span>(Qt::ScreenOrientation <i>orientation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn content_orientation(&self) -> ::qt_core::ScreenOrientation {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_contentOrientation(self as *const crate::QWindow)
    }

    /// <p>Allocates the platform resources associated with the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Allocates the platform resources associated with the window.</p>
    /// <p>It is at this point that the surface format set using <a href="http://doc.qt.io/qt-5/qwindow.html#setFormat">setFormat</a>() gets resolved into an actual native surface. However, the window remains hidden until <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>() is called.</p>
    /// <p>Note that it is not usually necessary to call this function directly, as it will be implicitly called by <a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(), and other functions that require access to the platform resources.</p>
    /// <p>Call <a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>() to free the platform resources if necessary.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_create(self as *mut crate::QWindow)
    }

    /// <p>the cursor shape for this window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QCursor QWindow::cursor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#cursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>the cursor shape for this window</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setCursor">setCursor</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#unsetCursor">unsetCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cursor(&self) -> ::cpp_core::CppBox<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_cursor(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Releases the native platform resources associated with this window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::destroy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#destroy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases the native platform resources associated with this window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn destroy(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_destroy(self as *mut crate::QWindow)
    }

    /// <p>Returns the ratio between physical pixels and device-independent pixels for the window. This value is dependent on the screen the window is on, and may change when the window is moved.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QWindow::devicePixelRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#devicePixelRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the ratio between physical pixels and device-independent pixels for the window. This value is dependent on the screen the window is on, and may change when the window is moved.</p>
    /// <p>Common values are 1.0 on normal displays and 2.0 on Apple "retina" displays.</p>
    /// <p><b>Note: </b>For windows not backed by a platform window, meaning that <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>() was not called, the function will fall back to the associated <a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a>'s device pixel ratio.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#devicePixelRatio-prop">QScreen::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device_pixel_ratio(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_devicePixelRatio(self as *const crate::QWindow)
    }

    /// <p>the file name this window is representing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QWindow::filePath() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#filePath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>the file name this window is representing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setFilePath">setFilePath</a>().</p></div>
    #[inline(always)]
    pub unsafe fn file_path(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_filePath(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the window flags of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::WindowType> QWindow::flags() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the window flags of the window</p>
    /// <p>The window flags control the window's appearance in the windowing system, whether it's a dialog, popup, or a regular window, and whether it should have a title bar, etc.</p>
    /// <p>The actual window flags might differ from the flags set with setFlags() if the requested flags could not be fulfilled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::WindowFlags </td><td class="memItemRight bottomAlign"><span class="name"><b>flags</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFlags</b></span>(Qt::WindowFlags <i>flags</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setFlag">setFlag</a>().</p></div>
    #[inline(always)]
    pub unsafe fn flags(&self) -> ::qt_core::QFlags<::qt_core::WindowType> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_flags(self as *const crate::QWindow);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> that will be the final receiver of events tied focus, such as key events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QObject* QWindow::focusObject() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#focusObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> that will be the final receiver of events tied focus, such as key events.</p></div>
    #[inline(always)]
    pub unsafe fn focus_object(&self) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_focusObject(self as *const crate::QWindow);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#format">QSurface::format</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSurfaceFormat QWindow::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#format">QSurface::format</a>().</p>
    /// <p>Returns the actual format of this window.</p>
    /// <p>After the window has been created, this function will return the actual surface format of the window. It might differ from the requested format if the requested format could not be fulfilled by the platform. It might also be a superset, for example certain buffer sizes may be larger than requested.</p>
    /// <p><b>Note: </b>Depending on the platform, certain values in this surface format may still contain the requested values, that is, the values that have been passed to <a href="http://doc.qt.io/qt-5/qwindow.html#setFormat">setFormat</a>(). Typical examples are the OpenGL version, profile and options. These may not get updated during <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>() since these are context specific and a single window may be used together with multiple contexts over its lifetime. Use the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>'s format() instead to query such values.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setFormat">setFormat</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#requestedFormat">requestedFormat</a>(), and <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">QOpenGLContext::format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_format(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the geometry of the window, including its window frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QWindow::frameGeometry() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#frameGeometry">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the geometry of the window, including its window frame.</p>
    /// <p>The geometry is in relation to the virtualGeometry() of its screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#geometry">geometry</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#frameMargins">frameMargins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn frame_geometry(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_frameGeometry(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the window frame margins surrounding the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMargins QWindow::frameMargins() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#frameMargins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window frame margins surrounding the window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#geometry">geometry</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#frameGeometry">frameGeometry</a>().</p></div>
    #[inline(always)]
    pub unsafe fn frame_margins(&self) -> ::cpp_core::CppBox<::qt_core::QMargins> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_frameMargins(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the top left position of the window, including its window frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QWindow::framePosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#framePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the top left position of the window, including its window frame.</p>
    /// <p>This returns the same value as <a href="http://doc.qt.io/qt-5/qwindow.html#frameGeometry">frameGeometry</a>().topLeft().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setFramePosition">setFramePosition</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#geometry">geometry</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#frameGeometry">frameGeometry</a>().</p></div>
    #[inline(always)]
    pub unsafe fn frame_position(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_framePosition(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a local representation of a window created by another process or by using native libraries below Qt.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QWindow* QWindow::fromWinId(unsigned long long id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#fromWinId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a local representation of a window created by another process or by using native libraries below Qt.</p>
    /// <p>Given the handle <i>id</i> to a native window, this method creates a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> object which can be used to represent the window when invoking methods like <a href="http://doc.qt.io/qt-5/qwindow.html#setParent">setParent</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#setTransientParent">setTransientParent</a>().</p>
    /// <p>This can be used, on platforms which support it, to embed a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> inside a native window, or to embed a native window inside a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>.</p>
    /// <p>If foreign windows are not supported or embedding the native window failed in the platform plugin, this function returns 0.</p>
    /// <p><b>Note: </b>The resulting <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> should not be used to manipulate the underlying native window (besides re-parenting), or to observe state changes of the native window. Any support for these kind of operations is incidental, highly platform dependent and untested.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setParent">setParent</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#setTransientParent">setTransientParent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_win_id(
        id: ::std::os::raw::c_ulonglong,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_fromWinId(id);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the geometry of the window, excluding its window frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QWindow::geometry() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#geometry">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the geometry of the window, excluding its window frame.</p>
    /// <p>The geometry is in relation to the virtualGeometry() of its screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setGeometry">setGeometry</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#frameMargins">frameMargins</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#frameGeometry">frameGeometry</a>().</p></div>
    #[inline(always)]
    pub unsafe fn geometry(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_geometry(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the height of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWindow::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHeight</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_height(self as *const crate::QWindow)
    }

    /// <p>Hides the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::hide()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#hide">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Hides the window.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(false).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn hide(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_hide(self as *mut crate::QWindow)
    }

    /// <p>Sets the window's icon in the windowing system</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIcon QWindow::icon() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#icon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the window's icon in the windowing system</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setIcon">setIcon</a>().</p></div>
    #[inline(always)]
    pub unsafe fn icon(&self) -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_icon(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the window should appear active from a style perspective.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::isActive() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#isActive">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the window should appear active from a style perspective.</p>
    /// <p>This is the case for the window that has input focus as well as windows that are in the same parent / transient parent chain as the focus window.</p>
    /// <p>To get the window that currently has focus, use <a href="http://doc.qt.io/qt-5/qguiapplication.html#focusWindow">QGuiApplication::focusWindow</a>().</p>
    /// <p><b>Note:</b> Getter function for property <a href="http://doc.qt.io/qt-5/qwindow.html#active-prop">active</a>. </p></div>
    #[inline(always)]
    pub unsafe fn is_active(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_isActive(self as *const crate::QWindow)
    }

    /// <p>Returns <code>true</code> if the window is an ancestor of the given <i>child</i>. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qwindow.html#AncestorMode-enum">IncludeTransients</a>, then transient parents are also considered ancestors.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::isAncestorOf(const QWindow* child, QWindow::AncestorMode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#isAncestorOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the window is an ancestor of the given <i>child</i>. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qwindow.html#AncestorMode-enum">IncludeTransients</a>, then transient parents are also considered ancestors.</p></div>
    #[inline(always)]
    pub unsafe fn is_ancestor_of_2a(
        &self,
        child: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QWindow>>,
        mode: crate::q_window::AncestorMode,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_isAncestorOf(
            self as *const crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QWindow>>::cast_into(child).as_raw_ptr(),
            mode,
        )
    }

    /// <p>Returns <code>true</code> if the window is an ancestor of the given <i>child</i>. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qwindow.html#AncestorMode-enum">IncludeTransients</a>, then transient parents are also considered ancestors.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::isAncestorOf(const QWindow* child) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#isAncestorOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the window is an ancestor of the given <i>child</i>. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qwindow.html#AncestorMode-enum">IncludeTransients</a>, then transient parents are also considered ancestors.</p></div>
    #[inline(always)]
    pub unsafe fn is_ancestor_of_1a(
        &self,
        child: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QWindow>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_isAncestorOf1(
            self as *const crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QWindow>>::cast_into(child).as_raw_ptr(),
        )
    }

    /// <p>Returns if this window is exposed in the windowing system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::isExposed() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#isExposed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns if this window is exposed in the windowing system.</p>
    /// <p>When the window is not exposed, it is shown by the application but it is still not showing in the windowing system, so the application should minimize rendering and other graphical activities.</p>
    /// <p>An <a href="http://doc.qt.io/qt-5/qwindow.html#exposeEvent">exposeEvent</a>() is sent every time this value changes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#exposeEvent">exposeEvent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_exposed(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_isExposed(self as *const crate::QWindow)
    }

    /// <p>Returns whether the window is modal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::isModal() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#isModal">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the window is modal.</p>
    /// <p>A modal window prevents other windows from getting any input.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#modality-prop">QWindow::modality</a>.</p></div>
    #[inline(always)]
    pub unsafe fn is_modal(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_isModal(self as *const crate::QWindow)
    }

    /// <p>Returns whether the window is top level, i.e. has no parent window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::isTopLevel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#isTopLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the window is top level, i.e. has no parent window.</p></div>
    #[inline(always)]
    pub unsafe fn is_top_level(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_isTopLevel(self as *const crate::QWindow)
    }

    /// <p>This property holds whether the window is visible or not</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::isVisible() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the window is visible or not</p>
    /// <p>This property controls the visibility of the window in the windowing system.</p>
    /// <p>By default, the window is not visible, you must call setVisible(true), or <a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>() or similar to make it visible.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isVisible</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVisible</b></span>(bool <i>visible</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibleChanged</b></span>(bool <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_visible(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_isVisible(self as *const crate::QWindow)
    }

    /// <p>Lower the window in the windowing system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::lower()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#lower">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Lower the window in the windowing system.</p>
    /// <p>Requests that the window be lowered to appear below other windows.</p></div>
    #[inline(always)]
    pub unsafe fn lower(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_lower(self as *mut crate::QWindow)
    }

    /// <p>Translates the global screen coordinate <i>pos</i> to window coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QWindow::mapFromGlobal(const QPoint& pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#mapFromGlobal">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates the global screen coordinate <i>pos</i> to window coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#mapToGlobal">mapToGlobal</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_from_global(
        &self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_mapFromGlobal(
            self as *const crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Translates the window coordinate <i>pos</i> to global screen coordinates. For example, <code>mapToGlobal(QPoint(0,0))</code> would give the global coordinates of the top-left pixel of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QWindow::mapToGlobal(const QPoint& pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#mapToGlobal">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates the window coordinate <i>pos</i> to global screen coordinates. For example, <code>mapToGlobal(QPoint(0,0))</code> would give the global coordinates of the top-left pixel of the window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#mapFromGlobal">mapFromGlobal</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_to_global(
        &self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_mapToGlobal(
            self as *const crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the mask set on the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QWindow::mask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#mask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mask set on the window.</p>
    /// <p>The mask is a hint to the windowing system that the application does not want to receive mouse or touch input outside the given region.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setMask">setMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mask(&self) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_mask(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the maximum height of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWindow::maximumHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumHeight-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the maximum height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumHeight</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumHeight</b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumHeightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn maximum_height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_maximumHeight(self as *const crate::QWindow)
    }

    /// <p>Returns the maximum size of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QWindow::maximumSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum size of the window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setMaximumSize">setMaximumSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_maximumSize(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the maximum width of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWindow::maximumWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the maximum width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumWidth</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumWidthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn maximum_width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_maximumWidth(self as *const crate::QWindow)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QWindow::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_metaObject(self as *const crate::QWindow);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>This property holds the minimum height of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWindow::minimumHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumHeight-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the minimum height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumHeight</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinimumHeight</b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumHeightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn minimum_height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_minimumHeight(self as *const crate::QWindow)
    }

    /// <p>Returns the minimum size of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QWindow::minimumSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum size of the window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setMinimumSize">setMinimumSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn minimum_size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_minimumSize(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the minimum width of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWindow::minimumWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the minimum width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinimumWidth</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumWidthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn minimum_width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_minimumWidth(self as *const crate::QWindow)
    }

    /// <p>This property holds the modality of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::WindowModality QWindow::modality() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#modality-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the modality of the window</p>
    /// <p>A modal window prevents other windows from receiving input events. Qt supports two types of modality: <a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::WindowModal</a> and <a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::ApplicationModal</a>.</p>
    /// <p>By default, this property is <a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::NonModal</a></p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::WindowModality </td><td class="memItemRight bottomAlign"><span class="name"><b>modality</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setModality</b></span>(Qt::WindowModality <i>modality</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qwindow.html#modalityChanged">modalityChanged</a></b></span>(Qt::WindowModality <i>modality</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::WindowModality</a>.</p></div>
    #[inline(always)]
    pub unsafe fn modality(&self) -> ::qt_core::WindowModality {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_modality(self as *const crate::QWindow)
    }

    /// <p>Creates a window as a top level on the <i>targetScreen</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWindow::QWindow(QScreen* screen = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#QWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a window as a top level on the <i>targetScreen</i>.</p>
    /// <p>The window is not shown until <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true), <a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>(), or similar is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setScreen">setScreen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_screen(
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
    ) -> ::cpp_core::CppBox<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_QWindow(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a window as a child of the given <i>parent</i> window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWindow::QWindow(QWindow* parent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#QWindow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a window as a child of the given <i>parent</i> window.</p>
    /// <p>The window will be embedded inside the parent window, its coordinates relative to the parent.</p>
    /// <p>The screen is inherited from the parent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setParent">setParent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_window(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) -> ::cpp_core::CppBox<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_QWindow1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> class represents a window in the underlying windowing system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QWindow::QWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> class represents a window in the underlying windowing system.</p>
    /// <p>A window that is supplied a parent becomes a native child window of their parent window.</p>
    /// <p>An application will typically use <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or <a href="http://doc.qt.io/qt-5/qquickview.html">QQuickView</a> for its UI, and not <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> directly. Still, it is possible to render directly to a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> with <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> or <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>, when wanting to keep dependencies to a minimum or when wanting to use OpenGL directly. The <a href="http://doc.qt.io/qt-5/qtgui-rasterwindow-example.html">Raster Window Example</a> and <a href="http://doc.qt.io/qt-5/qtgui-openglwindow-example.html">OpenGL Window Example</a> are useful reference examples for how to render to a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> using either approach.</p>
    /// <a name="resource-management"></a></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_QWindow2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the opacity of the window in the windowing system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QWindow::opacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#opacity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the opacity of the window in the windowing system.</p>
    /// <p>If the windowing system supports window opacity, this can be used to fade the window in and out, or to make it semitransparent.</p>
    /// <p>A value of 1.0 or above is treated as fully opaque, whereas a value of 0.0 or below is treated as fully transparent. Values inbetween represent varying levels of translucency between the two extremes.</p>
    /// <p>The default value is 1.0.</p>
    /// <p>This property was introduced in  Qt 5.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>opacity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setOpacity</b></span>(qreal <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>opacityChanged</b></span>(qreal <i>opacity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn opacity(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_opacity(self as *const crate::QWindow)
    }

    /// <p>Returns the parent window, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QWindow::parent(QWindow::AncestorMode mode) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#parent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the parent window, if any.</p>
    /// <p>If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qwindow.html#AncestorMode-enum">IncludeTransients</a>, then the transient parent is returned if there is no parent.</p>
    /// <p>A window without a parent is known as a top level window.</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setParent">setParent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn parent_1a(
        &self,
        mode: crate::q_window::AncestorMode,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_parent(self as *const crate::QWindow, mode);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the parent window, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QWindow::parent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#parent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the parent window, if any.</p>
    /// <p>A window without a parent is known as a top level window.</p></div>
    #[inline(always)]
    pub unsafe fn parent_0a(&self) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_parent1(self as *const crate::QWindow);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the position of the window on the desktop excluding any window frame</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QWindow::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#position">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the window on the desktop excluding any window frame</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setPosition">setPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_position(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QWindow::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_qt_metacall(
            self as *mut crate::QWindow,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QWindow::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_qt_metacast(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Raise the window in the windowing system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::raise()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#raise">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Raise the window in the windowing system.</p>
    /// <p>Requests that the window be raised to appear above other windows.</p></div>
    #[inline(always)]
    pub unsafe fn raise(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_raise(self as *mut crate::QWindow)
    }

    /// <p>This property holds the orientation of the window's contents</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::reportContentOrientationChange(Qt::ScreenOrientation orientation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#contentOrientation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the orientation of the window's contents</p>
    /// <p>This is a hint to the window manager in case it needs to display additional content like popups, dialogs, status bars, or similar in relation to the window.</p>
    /// <p>The recommended orientation is <a href="http://doc.qt.io/qt-5/qscreen.html#orientation-prop">QScreen::orientation</a>() but an application doesn't have to support all possible orientations, and thus can opt to ignore the current screen orientation.</p>
    /// <p>The difference between the window and the content orientation determines how much to rotate the content by. <a href="http://doc.qt.io/qt-5/qscreen.html#angleBetween">QScreen::angleBetween</a>(), <a href="http://doc.qt.io/qt-5/qscreen.html#transformBetween">QScreen::transformBetween</a>(), and <a href="http://doc.qt.io/qt-5/qscreen.html#mapBetween">QScreen::mapBetween</a>() can be used to compute the necessary transform.</p>
    /// <p>The default value is <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a></p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::ScreenOrientation </td><td class="memItemRight bottomAlign"><span class="name"><b>contentOrientation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>reportContentOrientationChange</b></span>(Qt::ScreenOrientation <i>orientation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>contentOrientationChanged</b></span>(Qt::ScreenOrientation <i>orientation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn report_content_orientation_change(
        &mut self,
        orientation: ::qt_core::ScreenOrientation,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_reportContentOrientationChange(
            self as *mut crate::QWindow,
            orientation,
        )
    }

    /// <p>Requests the window to be activated, i.e. receive keyboard focus.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::requestActivate()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#requestActivate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests the window to be activated, i.e. receive keyboard focus.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#isActive">isActive</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#focusWindow">QGuiApplication::focusWindow</a>(), and <a href="http://doc.qt.io/qt-5/qwindowswindowfunctions.html#setWindowActivationBehavior">QWindowsWindowFunctions::setWindowActivationBehavior</a>().</p></div>
    #[inline(always)]
    pub unsafe fn request_activate(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_requestActivate(self as *mut crate::QWindow)
    }

    /// <p>Schedules a <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::UpdateRequest</a> event to be delivered to this window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::requestUpdate()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#requestUpdate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Schedules a <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::UpdateRequest</a> event to be delivered to this window.</p>
    /// <p>The event is delivered in sync with the display vsync on platforms where this is possible. Otherwise, the event is delivered after a delay of 5 ms. The additional time is there to give the event loop a bit of idle time to gather system events, and can be overridden using the QT_QPA_UPDATE_IDLE_TIME environment variable.</p>
    /// <p>When driving animations, this function should be called once after drawing has completed. Calling this function multiple times will result in a single event being delivered to the window.</p>
    /// <p>Subclasses of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> should reimplement <a href="http://doc.qt.io/qt-5/qwindow.html#event">event</a>(), intercept the event and call the application's rendering code, then call the base class implementation.</p>
    /// <p><b>Note: </b>The subclass' reimplementation of <a href="http://doc.qt.io/qt-5/qwindow.html#event">event</a>() must invoke the base class implementation, unless it is absolutely sure that the event does not need to be handled by the base class. For example, the default implementation of this function relies on <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::Timer</a> events. Filtering them away would therefore break the delivery of the update events.</p><p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn request_update(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_requestUpdate(self as *mut crate::QWindow)
    }

    /// <p>Returns the requested surface format of this window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat QWindow::requestedFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#requestedFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the requested surface format of this window.</p>
    /// <p>If the requested format was not supported by the platform implementation, the requestedFormat will differ from the actual window format.</p>
    /// <p>This is the value set with <a href="http://doc.qt.io/qt-5/qwindow.html#setFormat">setFormat</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setFormat">setFormat</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn requested_format(&self) -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_requestedFormat(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>set the size of the window, excluding any window frame, to <i>newSize</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::resize(const QSize& newSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>set the size of the window, excluding any window frame, to <i>newSize</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#geometry">geometry</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize_1a(
        &mut self,
        new_size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_resize(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(new_size)
                .as_raw_ptr(),
        )
    }

    /// <p>set the size of the window, excluding any window frame, to a <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> constructed from width <i>w</i> and height <i>h</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::resize(int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#resize-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>set the size of the window, excluding any window frame, to a <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> constructed from width <i>w</i> and height <i>h</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#geometry">geometry</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize_2a(&mut self, w: ::std::os::raw::c_int, h: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_resize1(self as *mut crate::QWindow, w, h)
    }

    /// <p>Returns the screen on which the window is shown, or null if there is none.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen* QWindow::screen() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#screen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the screen on which the window is shown, or null if there is none.</p>
    /// <p>For child windows, this returns the screen of the corresponding top level window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setScreen">setScreen</a>() and <a href="http://doc.qt.io/qt-5/qscreen.html#virtualSiblings">QScreen::virtualSiblings</a>().</p></div>
    #[inline(always)]
    pub unsafe fn screen(&self) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_screen(self as *const crate::QWindow);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the base <i>size</i> of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setBaseSize(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setBaseSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the base <i>size</i> of the window.</p>
    /// <p>The base size is used to calculate a proper window size if the window defines <a href="http://doc.qt.io/qt-5/qwindow.html#sizeIncrement">sizeIncrement</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setMinimumSize">setMinimumSize</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#setMaximumSize">setMaximumSize</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#setSizeIncrement">setSizeIncrement</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#baseSize">baseSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_base_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setBaseSize(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>set the cursor shape for this window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setCursor(const QCursor& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>set the cursor shape for this window</p>
    /// <p>The mouse <i>cursor</i> will assume this shape when it is over this window, unless an override cursor is set. See the <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">list of predefined cursor objects</a> for a range of useful shapes.</p>
    /// <p>If no cursor has been set, or after a call to <a href="http://doc.qt.io/qt-5/qwindow.html#unsetCursor">unsetCursor</a>(), the parent window's cursor is used.</p>
    /// <p>By default, the cursor has the <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">Qt::ArrowCursor</a> shape.</p>
    /// <p>Some underlying window implementations will reset the cursor if it leaves a window even if the mouse is grabbed. If you want to have a cursor set for all windows, even when outside the window, consider <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">QGuiApplication::setOverrideCursor</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#cursor">cursor</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">QGuiApplication::setOverrideCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cursor(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setCursor(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QCursor>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>set the file name this window is representing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setFilePath(const QString& filePath)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setFilePath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>set the file name this window is representing.</p>
    /// <p>The windowing system might use <i>filePath</i> to display the path of the document this window is representing in the tile bar.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#filePath">filePath</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_file_path(
        &mut self,
        file_path: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setFilePath(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_path)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the window flag <i>flag</i> on this window if <i>on</i> is true; otherwise clears the flag.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setFlag(Qt::WindowType arg1, bool on = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setFlag">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the window flag <i>flag</i> on this window if <i>on</i> is true; otherwise clears the flag.</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">setFlags</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#type">type</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_flag_2a(&mut self, arg1: ::qt_core::WindowType, on: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setFlag(self as *mut crate::QWindow, arg1, on)
    }

    /// <p>Sets the window flag <i>flag</i> on this window if <i>on</i> is true; otherwise clears the flag.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setFlag(Qt::WindowType arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setFlag">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the window flag <i>flag</i> on this window if <i>on</i> is true; otherwise clears the flag.</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">setFlags</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#type">type</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_flag_1a(&mut self, arg1: ::qt_core::WindowType) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setFlag1(self as *mut crate::QWindow, arg1)
    }

    /// <p>This property holds the window flags of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setFlags(QFlags<Qt::WindowType> flags)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the window flags of the window</p>
    /// <p>The window flags control the window's appearance in the windowing system, whether it's a dialog, popup, or a regular window, and whether it should have a title bar, etc.</p>
    /// <p>The actual window flags might differ from the flags set with setFlags() if the requested flags could not be fulfilled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::WindowFlags </td><td class="memItemRight bottomAlign"><span class="name"><b>flags</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFlags</b></span>(Qt::WindowFlags <i>flags</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setFlag">setFlag</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_flags(&mut self, flags: ::qt_core::QFlags<::qt_core::WindowType>) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setFlags(self as *mut crate::QWindow, flags.to_int())
    }

    /// <p>Sets the window's surface <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setFormat(const QSurfaceFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the window's surface <i>format</i>.</p>
    /// <p>The format determines properties such as color depth, alpha, depth and stencil buffer size, etc. For example, to give a window a transparent background (provided that the window system supports compositing, and provided that other content in the window does not make it opaque again):</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a></span> format;
    ///   format<span class="operator">.</span>setAlphaBufferSize(<span class="number">8</span>);
    ///   window<span class="operator">.</span>setFormat(format);
    ///
    /// </pre>
    /// <p>The surface format will be resolved in the <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>() function. Calling this function after <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>() has been called will not re-resolve the surface format of the native surface.</p>
    /// <p>When the format is not explicitly set via this function, the format returned by <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#defaultFormat">QSurfaceFormat::defaultFormat</a>() will be used. This means that when having multiple windows, individual calls to this function can be replaced by one single call to <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDefaultFormat">QSurfaceFormat::setDefaultFormat</a>() before creating the first window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#format">format</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>(), and <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDefaultFormat">QSurfaceFormat::setDefaultFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSurfaceFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setFormat(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSurfaceFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the upper left position of the window (<i>point</i>) including its window frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setFramePosition(const QPoint& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setFramePosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the upper left position of the window (<i>point</i>) including its window frame.</p>
    /// <p>The position is in relation to the virtualGeometry() of its screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#framePosition">framePosition</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#setGeometry">setGeometry</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#frameGeometry">frameGeometry</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_frame_position(
        &mut self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setFramePosition(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the geometry of the window, excluding its window frame, to a rectangle constructed from <i>posx</i>, <i>posy</i>, <i>w</i> and <i>h</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setGeometry(int posx, int posy, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setGeometry">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the geometry of the window, excluding its window frame, to a rectangle constructed from <i>posx</i>, <i>posy</i>, <i>w</i> and <i>h</i>.</p>
    /// <p>The geometry is in relation to the virtualGeometry() of its screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#geometry">geometry</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_geometry_4a(
        &mut self,
        posx: ::std::os::raw::c_int,
        posy: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setGeometry(
            self as *mut crate::QWindow,
            posx,
            posy,
            w,
            h,
        )
    }

    /// <p>Sets the geometry of the window, excluding its window frame, to <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setGeometry(const QRect& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setGeometry-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the geometry of the window, excluding its window frame, to <i>rect</i>.</p>
    /// <p>The geometry is in relation to the virtualGeometry() of its screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#geometry">geometry</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_geometry_1a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setGeometry1(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>This property holds the height of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setHeight(int arg)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHeight</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_height(&mut self, arg: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setHeight(self as *mut crate::QWindow, arg)
    }

    /// <p>Sets the window's <i>icon</i> in the windowing system</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setIcon(const QIcon& icon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setIcon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the window's <i>icon</i> in the windowing system</p>
    /// <p>The window icon might be used by the windowing system for example to decorate the window, and/or in the task switcher.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#icon">icon</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_icon(
        &mut self,
        icon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIcon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setIcon(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIcon>>::cast_into(icon).as_raw_ptr(),
        )
    }

    /// <p>Sets whether keyboard grab should be enabled or not (<i>grab</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::setKeyboardGrabEnabled(bool grab)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setKeyboardGrabEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether keyboard grab should be enabled or not (<i>grab</i>).</p>
    /// <p>If the return value is true, the window receives all key events until setKeyboardGrabEnabled(false) is called; other windows get no key events at all. Mouse events are not affected. Use <a href="http://doc.qt.io/qt-5/qwindow.html#setMouseGrabEnabled">setMouseGrabEnabled</a>() if you want to grab that.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setMouseGrabEnabled">setMouseGrabEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_keyboard_grab_enabled(&mut self, grab: bool) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setKeyboardGrabEnabled(
            self as *mut crate::QWindow,
            grab,
        )
    }

    /// <p>Sets the mask of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setMask(const QRegion& region)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the mask of the window.</p>
    /// <p>The mask is a hint to the windowing system that the application does not want to receive mouse or touch input outside the given <i>region</i>.</p>
    /// <p>The window manager may or may not choose to display any areas of the window not included in the mask, thus it is the application's responsibility to clear to transparent the areas that are not part of the mask.</p>
    /// <p>Setting the mask before the window has been created has no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#mask">mask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mask(
        &mut self,
        region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setMask(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(region).as_raw_ptr(),
        )
    }

    /// <p>This property holds the maximum height of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setMaximumHeight(int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumHeight-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the maximum height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumHeight</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumHeight</b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumHeightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_maximum_height(&mut self, h: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setMaximumHeight(self as *mut crate::QWindow, h)
    }

    /// <p>Sets the maximum size of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setMaximumSize(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setMaximumSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the maximum size of the window.</p>
    /// <p>This is a hint to the window manager to prevent resizing above the specified <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setMinimumSize">setMinimumSize</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#maximumSize">maximumSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_maximum_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setMaximumSize(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>This property holds the maximum width of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setMaximumWidth(int w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#maximumWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the maximum width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMaximumWidth</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumWidthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_maximum_width(&mut self, w: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setMaximumWidth(self as *mut crate::QWindow, w)
    }

    /// <p>This property holds the minimum height of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setMinimumHeight(int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumHeight-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the minimum height of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumHeight</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinimumHeight</b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumHeightChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_minimum_height(&mut self, h: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setMinimumHeight(self as *mut crate::QWindow, h)
    }

    /// <p>Sets the minimum size of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setMinimumSize(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setMinimumSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the minimum size of the window.</p>
    /// <p>This is a hint to the window manager to prevent resizing below the specified <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setMaximumSize">setMaximumSize</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#minimumSize">minimumSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_minimum_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setMinimumSize(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>This property holds the minimum width of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setMinimumWidth(int w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#minimumWidth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the minimum width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumWidth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinimumWidth</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minimumWidthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_minimum_width(&mut self, w: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setMinimumWidth(self as *mut crate::QWindow, w)
    }

    /// <p>This property holds the modality of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setModality(Qt::WindowModality modality)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#modality-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the modality of the window</p>
    /// <p>A modal window prevents other windows from receiving input events. Qt supports two types of modality: <a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::WindowModal</a> and <a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::ApplicationModal</a>.</p>
    /// <p>By default, this property is <a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::NonModal</a></p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::WindowModality </td><td class="memItemRight bottomAlign"><span class="name"><b>modality</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setModality</b></span>(Qt::WindowModality <i>modality</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qwindow.html#modalityChanged">modalityChanged</a></b></span>(Qt::WindowModality <i>modality</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::WindowModality</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_modality(&mut self, modality: ::qt_core::WindowModality) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setModality(self as *mut crate::QWindow, modality)
    }

    /// <p>Sets whether mouse grab should be enabled or not (<i>grab</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QWindow::setMouseGrabEnabled(bool grab)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setMouseGrabEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether mouse grab should be enabled or not (<i>grab</i>).</p>
    /// <p>If the return value is true, the window receives all mouse events until setMouseGrabEnabled(false) is called; other windows get no mouse events at all. Keyboard events are not affected. Use <a href="http://doc.qt.io/qt-5/qwindow.html#setKeyboardGrabEnabled">setKeyboardGrabEnabled</a>() if you want to grab that.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setKeyboardGrabEnabled">setKeyboardGrabEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mouse_grab_enabled(&mut self, grab: bool) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setMouseGrabEnabled(self as *mut crate::QWindow, grab)
    }

    /// <p>This property holds the opacity of the window in the windowing system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setOpacity(double level)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#opacity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the opacity of the window in the windowing system.</p>
    /// <p>If the windowing system supports window opacity, this can be used to fade the window in and out, or to make it semitransparent.</p>
    /// <p>A value of 1.0 or above is treated as fully opaque, whereas a value of 0.0 or below is treated as fully transparent. Values inbetween represent varying levels of translucency between the two extremes.</p>
    /// <p>The default value is 1.0.</p>
    /// <p>This property was introduced in  Qt 5.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>opacity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setOpacity</b></span>(qreal <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>opacityChanged</b></span>(qreal <i>opacity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_opacity(&mut self, level: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setOpacity(self as *mut crate::QWindow, level)
    }

    /// <p>Sets the <i>parent</i> Window. This will lead to the windowing system managing the clip of the window, so it will be clipped to the <i>parent</i> window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setParent(QWindow* parent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setParent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>parent</i> Window. This will lead to the windowing system managing the clip of the window, so it will be clipped to the <i>parent</i> window.</p>
    /// <p>Setting <i>parent</i> to be 0 will make the window become a top level window.</p>
    /// <p>If <i>parent</i> is a window created by <a href="http://doc.qt.io/qt-5/qwindow.html#fromWinId">fromWinId</a>(), then the current window will be embedded inside <i>parent</i>, if the platform supports it.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#parent-1">parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_parent(
        &mut self,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setParent(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(parent)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>set the position of the window on the desktop to <i>pt</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setPosition(const QPoint& pt)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>set the position of the window on the desktop to <i>pt</i></p>
    /// <p>The position is in relation to the virtualGeometry() of its screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_position_1a(
        &mut self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setPosition(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pt).as_raw_ptr(),
        )
    }

    /// <p>set the position of the window on the desktop to <i>posx</i>, <i>posy</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setPosition(int posx, int posy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setPosition-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>set the position of the window on the desktop to <i>posx</i>, <i>posy</i></p>
    /// <p>The position is in relation to the virtualGeometry() of its screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#position">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_position_2a(
        &mut self,
        posx: ::std::os::raw::c_int,
        posy: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setPosition1(self as *mut crate::QWindow, posx, posy)
    }

    /// <p>Sets the screen on which the window should be shown.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setScreen(QScreen* screen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setScreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the screen on which the window should be shown.</p>
    /// <p>If the window has been created, it will be recreated on the <i>newScreen</i>.</p>
    /// <p><b>Note: </b>If the screen is part of a virtual desktop of multiple screens, the window will not move automatically to <i>newScreen</i>. To place the window relative to the screen, use the screen's topLeft() position.</p><p>This function only works for top level windows.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#screen">screen</a>() and <a href="http://doc.qt.io/qt-5/qscreen.html#virtualSiblings">QScreen::virtualSiblings</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_screen(
        &mut self,
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setScreen(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the size increment (<i>size</i>) of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setSizeIncrement(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setSizeIncrement">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size increment (<i>size</i>) of the window.</p>
    /// <p>When the user resizes the window, the size will move in steps of <a href="http://doc.qt.io/qt-5/qwindow.html#sizeIncrement">sizeIncrement</a>().<a href="http://doc.qt.io/qt-5/qwindow.html#width-prop">width</a>() pixels horizontally and <a href="http://doc.qt.io/qt-5/qwindow.html#sizeIncrement">sizeIncrement</a>().<a href="http://doc.qt.io/qt-5/qwindow.html#height-prop">height</a>() pixels vertically, with <a href="http://doc.qt.io/qt-5/qwindow.html#baseSize">baseSize</a>() as the basis.</p>
    /// <p>By default, this property contains a size with zero width and height.</p>
    /// <p>The windowing system might not support size increments.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#sizeIncrement">sizeIncrement</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#setBaseSize">setBaseSize</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#setMinimumSize">setMinimumSize</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#setMaximumSize">setMaximumSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_size_increment(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setSizeIncrement(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>Sets the <i>surfaceType</i> of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setSurfaceType(QSurface::SurfaceType surfaceType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setSurfaceType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>surfaceType</i> of the window.</p>
    /// <p>Specifies whether the window is meant for raster rendering with <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a>, or OpenGL rendering with <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qwindow.html#surfaceType">surfaceType</a> will be used when the native surface is created in the <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>() function. Calling this function after the native surface has been created requires calling <a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>() to release the old native surface and create a new one.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#surfaceType">surfaceType</a>(), <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a>, <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>, <a href="http://doc.qt.io/qt-5/qwindow.html#create">create</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#destroy">destroy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_surface_type(&mut self, surface_type: crate::q_surface::SurfaceType) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setSurfaceType(
            self as *mut crate::QWindow,
            surface_type,
        )
    }

    /// <p>This property holds the window's title in the windowing system</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setTitle(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#title-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the window's title in the windowing system</p>
    /// <p>The window title might appear in the title area of the window decorations, depending on the windowing system and the window flags. It might also be used by the windowing system to identify the window in other contexts, such as in the task switcher.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>title</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTitle</b></span>(<i>const QString &amp;</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>windowTitleChanged</b></span>(const QString &amp;<i>title</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_title(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setTitle(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the transient <i>parent</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setTransientParent(QWindow* parent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setTransientParent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the transient <i>parent</i></p>
    /// <p>This is a hint to the window manager that this window is a dialog or pop-up on behalf of the given window.</p>
    /// <p>In order to cause the window to be centered above its transient parent by default, depending on the window manager, it may also be necessary to call <a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">setFlags</a>() with a suitable <a href="http://doc.qt.io/qt-5/qt.html#WindowType-enum">Qt::WindowType</a> (such as <code>Qt::Dialog</code>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#transientParent">transientParent</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#parent-1">parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_transient_parent(
        &mut self,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setTransientParent(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(parent)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This property holds the screen-occupation state of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setVisibility(QWindow::Visibility v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#visibility-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen-occupation state of the window</p>
    /// <p>Visibility is whether the window should appear in the windowing system as normal, minimized, maximized, fullscreen or hidden.</p>
    /// <p>To set the visibility to <a href="http://doc.qt.io/qt-5/qwindow.html#Visibility-enum">AutomaticVisibility</a> means to give the window a default visible state, which might be fullscreen or windowed depending on the platform. When reading the visibility property you will always get the actual state, never <a href="http://doc.qt.io/qt-5/qwindow.html#Visibility-enum">AutomaticVisibility</a>.</p>
    /// <p>This property was introduced in  Qt 5.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Visibility </td><td class="memItemRight bottomAlign"><span class="name"><b>visibility</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVisibility</b></span>(Visibility <i>v</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibilityChanged</b></span>(QWindow::Visibility <i>visibility</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_visibility(&mut self, v: crate::q_window::Visibility) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setVisibility(self as *mut crate::QWindow, v)
    }

    /// <p>This property holds whether the window is visible or not</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setVisible(bool visible)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the window is visible or not</p>
    /// <p>This property controls the visibility of the window in the windowing system.</p>
    /// <p>By default, the window is not visible, you must call setVisible(true), or <a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>() or similar to make it visible.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isVisible</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVisible</b></span>(bool <i>visible</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibleChanged</b></span>(bool <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#show">show</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_visible(&mut self, visible: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setVisible(self as *mut crate::QWindow, visible)
    }

    /// <p>This property holds the width of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setWidth(int arg)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWidth</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_width(&mut self, arg: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setWidth(self as *mut crate::QWindow, arg)
    }

    /// <p>set the screen-occupation state of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setWindowState(Qt::WindowState state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>set the screen-occupation state of the window</p>
    /// <p>The window <i>state</i> represents whether the window appears in the windowing system as maximized, minimized, fullscreen, or normal.</p>
    /// <p>The enum value <a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowActive</a> is not an accepted parameter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#windowState">windowState</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showNormal">showNormal</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showFullScreen">showFullScreen</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showMinimized">showMinimized</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#showMaximized">showMaximized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_window_state(&mut self, state: ::qt_core::WindowState) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setWindowState(self as *mut crate::QWindow, state)
    }

    /// <p>set the screen-occupation state of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::setWindowStates(QFlags<Qt::WindowState> states)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowStates">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>set the screen-occupation state of the window</p>
    /// <p>The window <i>state</i> represents whether the window appears in the windowing system as maximized, minimized and/or fullscreen.</p>
    /// <p>The window can be in a combination of several states. For example, if the window is both minimized and maximized, the window will appear minimized, but clicking on the task bar entry will restore it to the maximized state.</p>
    /// <p>The enum value <a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowActive</a> should not be set.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#windowStates">windowStates</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showNormal">showNormal</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showFullScreen">showFullScreen</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showMinimized">showMinimized</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#showMaximized">showMaximized</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_window_states(&mut self, states: ::qt_core::QFlags<::qt_core::WindowState>) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setWindowStates(
            self as *mut crate::QWindow,
            states.to_int(),
        )
    }

    /// <p>This property holds the x position of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setX(int arg)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#x-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the x position of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>x</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setX</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>xChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_x(&mut self, arg: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setX(self as *mut crate::QWindow, arg)
    }

    /// <p>This property holds the y position of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::setY(int arg)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#y-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the y position of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>y</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setY</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>yChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_y(&mut self, arg: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_setY(self as *mut crate::QWindow, arg)
    }

    /// <p>Shows the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::show()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#show">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window.</p>
    /// <p>This is equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#showFullScreen">showFullScreen</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showMaximized">showMaximized</a>(), or <a href="http://doc.qt.io/qt-5/qwindow.html#showNormal">showNormal</a>(), depending on the platform's default behavior for the window type and flags.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#showFullScreen">showFullScreen</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showMaximized">showMaximized</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#showNormal">showNormal</a>(), <a href="http://doc.qt.io/qt-5/qwindow.html#hide">hide</a>(), <a href="http://doc.qt.io/qt-5/qstylehints.html#showIsFullScreen-prop">QStyleHints::showIsFullScreen</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn show(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_show(self as *mut crate::QWindow)
    }

    /// <p>Shows the window as fullscreen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::showFullScreen()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#showFullScreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window as fullscreen.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(<a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowFullScreen</a>) and then <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn show_full_screen(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_showFullScreen(self as *mut crate::QWindow)
    }

    /// <p>Shows the window as maximized.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::showMaximized()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#showMaximized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window as maximized.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(<a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowMaximized</a>) and then <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn show_maximized(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_showMaximized(self as *mut crate::QWindow)
    }

    /// <p>Shows the window as minimized.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::showMinimized()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#showMinimized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window as minimized.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(<a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowMinimized</a>) and then <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn show_minimized(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_showMinimized(self as *mut crate::QWindow)
    }

    /// <p>Shows the window as normal, i.e. neither maximized, minimized, nor fullscreen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QWindow::showNormal()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#showNormal">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shows the window as normal, i.e. neither maximized, minimized, nor fullscreen.</p>
    /// <p>Equivalent to calling <a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>(<a href="http://doc.qt.io/qt-5/qt.html#WindowState-enum">Qt::WindowNoState</a>) and then <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>(true).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#visible-prop">setVisible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn show_normal(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_showNormal(self as *mut crate::QWindow)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#size">QSurface::size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSize QWindow::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#size">QSurface::size</a>().</p>
    /// <p>Returns the size of the window excluding any window frame</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_size(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size increment of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QWindow::sizeIncrement() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#sizeIncrement">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size increment of the window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setSizeIncrement">setSizeIncrement</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size_increment(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_sizeIncrement(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#surfaceType">QSurface::surfaceType</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSurface::SurfaceType QWindow::surfaceType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#surfaceType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#surfaceType">QSurface::surfaceType</a>().</p>
    /// <p>Returns the surface type of the window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setSurfaceType">setSurfaceType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn surface_type(&self) -> crate::q_surface::SurfaceType {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_surfaceType(self as *const crate::QWindow)
    }

    /// <p>This property holds the window's title in the windowing system</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QWindow::title() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#title-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the window's title in the windowing system</p>
    /// <p>The window title might appear in the title area of the window decorations, depending on the windowing system and the window flags. It might also be used by the windowing system to identify the window in other contexts, such as in the task switcher.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>title</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTitle</b></span>(<i>const QString &amp;</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>windowTitleChanged</b></span>(const QString &amp;<i>title</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn title(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_title(self as *const crate::QWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QWindow::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QWindow::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the transient parent of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QWindow::transientParent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#transientParent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transient parent of the window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setTransientParent">setTransientParent</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#parent-1">parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transient_parent(&self) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_transientParent(self as *const crate::QWindow);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QWindow::transientParentChanged(QWindow* transientParent)```</span>.
    ///
    ///
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn transient_parent_changed(
        &mut self,
        transient_parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_transientParentChanged(
            self as *mut crate::QWindow,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(transient_parent)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the type of the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::WindowType QWindow::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of the window.</p>
    /// <p>This returns the part of the window flags that represents whether the window is a dialog, tooltip, popup, regular window, etc.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">flags</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#flags-prop">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> ::qt_core::WindowType {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_type(self as *const crate::QWindow)
    }

    /// <p>Restores the default arrow cursor for this window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QWindow::unsetCursor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#unsetCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Restores the default arrow cursor for this window.</p></div>
    #[inline(always)]
    pub unsafe fn unset_cursor(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_unsetCursor(self as *mut crate::QWindow)
    }

    /// <p>This property holds the screen-occupation state of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow::Visibility QWindow::visibility() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#visibility-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen-occupation state of the window</p>
    /// <p>Visibility is whether the window should appear in the windowing system as normal, minimized, maximized, fullscreen or hidden.</p>
    /// <p>To set the visibility to <a href="http://doc.qt.io/qt-5/qwindow.html#Visibility-enum">AutomaticVisibility</a> means to give the window a default visible state, which might be fullscreen or windowed depending on the platform. When reading the visibility property you will always get the actual state, never <a href="http://doc.qt.io/qt-5/qwindow.html#Visibility-enum">AutomaticVisibility</a>.</p>
    /// <p>This property was introduced in  Qt 5.1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Visibility </td><td class="memItemRight bottomAlign"><span class="name"><b>visibility</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVisibility</b></span>(Visibility <i>v</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibilityChanged</b></span>(QWindow::Visibility <i>visibility</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn visibility(&self) -> crate::q_window::Visibility {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_visibility(self as *const crate::QWindow)
    }

    /// <p>This property holds the width of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWindow::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the width of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWidth</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_width(self as *const crate::QWindow)
    }

    /// <p>Returns the window's platform id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned long long QWindow::winId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#winId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window's platform id.</p>
    /// <p>For platforms where this id might be useful, the value returned will uniquely represent the window inside the corresponding screen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#screen">screen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn win_id(&self) -> ::std::os::raw::c_ulonglong {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_winId(self as *const crate::QWindow)
    }

    /// <p>the screen-occupation state of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::WindowState QWindow::windowState() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#windowState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>the screen-occupation state of the window</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowState">setWindowState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn window_state(&self) -> ::qt_core::WindowState {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_windowState(self as *const crate::QWindow)
    }

    /// <p>the screen-occupation state of the window</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::WindowState> QWindow::windowStates() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#windowStates">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>the screen-occupation state of the window</p>
    /// <p>The window can be in a combination of several states. For example, if the window is both minimized and maximized, the window will appear minimized, but clicking on the task bar entry will restore it to the maximized state.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setWindowStates">setWindowStates</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn window_states(&self) -> ::qt_core::QFlags<::qt_core::WindowState> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QWindow_windowStates(self as *const crate::QWindow);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>This property holds the x position of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWindow::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#x-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the x position of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>x</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setX</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>xChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_x(self as *const crate::QWindow)
    }

    /// <p>This property holds the y position of the window's geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QWindow::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#y-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the y position of the window's geometry</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>y</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setY</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>yChanged</b></span>(int <i>arg</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_y(self as *const crate::QWindow)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> class provides a drawing area for <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>.</p>
///
/// C++ class: <span style='color: green;'>```QBackingStore```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qbackingstore.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> class provides a drawing area for <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> enables the use of <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> to paint on a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> with type RasterSurface. The other way of rendering to a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> is through the use of OpenGL with <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> contains a buffered representation of the window contents, and thus supports partial updates by using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> to only update a sub region of the window contents.</p>
/// <p><a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> might be used by an application that wants to use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> without OpenGL acceleration and without the extra overhead of using the <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> or <a href="http://doc.qt.io/qt-5/qgraphicsview.html">QGraphicsView</a> UI stacks. For an example of how to use <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> see the <a href="http://doc.qt.io/qt-5/qtgui-rasterwindow-example.html">Raster Window Example</a>.</p></div>
#[repr(C)]
pub struct QBackingStore {
    _unused: u8,
}
impl QBackingStore {
    /// <p>This function is called before painting onto the surface begins, with the <i>region</i> in which the painting will occur.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBackingStore::beginPaint(const QRegion& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#beginPaint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is called before painting onto the surface begins, with the <i>region</i> in which the painting will occur.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbackingstore.html#endPaint">endPaint</a>() and <a href="http://doc.qt.io/qt-5/qbackingstore.html#paintDevice">paintDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_paint(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_beginPaint(
            self as *mut crate::QBackingStore,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>This function is called after painting onto the surface has ended.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBackingStore::endPaint()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#endPaint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is called after painting onto the surface has ended.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbackingstore.html#beginPaint">beginPaint</a>() and <a href="http://doc.qt.io/qt-5/qbackingstore.html#paintDevice">paintDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_paint(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_endPaint(self as *mut crate::QBackingStore)
    }

    /// <p>Flushes the given <i>region</i> from the specified window <i>win</i> onto the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBackingStore::flush(const QRegion& region, QWindow* window = …, const QPoint& offset = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#flush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Flushes the given <i>region</i> from the specified window <i>win</i> onto the screen.</p>
    /// <p>Note that the <i>offset</i> parameter is currently unused.</p></div>
    #[inline(always)]
    pub unsafe fn flush_3a(
        &mut self,
        region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_flush(
            self as *mut crate::QBackingStore,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(region).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(offset)
                .as_raw_ptr(),
        )
    }

    /// <p>Flushes the given <i>region</i> from the specified window <i>win</i> onto the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBackingStore::flush(const QRegion& region, QWindow* window = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#flush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Flushes the given <i>region</i> from the specified window <i>win</i> onto the screen.</p>
    /// <p>Note that the <i>offset</i> parameter is currently unused.</p></div>
    #[inline(always)]
    pub unsafe fn flush_2a(
        &mut self,
        region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_flush1(
            self as *mut crate::QBackingStore,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(region).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Flushes the given <i>region</i> from the specified window <i>win</i> onto the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBackingStore::flush(const QRegion& region)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#flush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Flushes the given <i>region</i> from the specified window <i>win</i> onto the screen.</p>
    /// <p>Note that the <i>offset</i> parameter is currently unused.</p></div>
    #[inline(always)]
    pub unsafe fn flush_1a(
        &mut self,
        region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_flush2(
            self as *mut crate::QBackingStore,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(region).as_raw_ptr(),
        )
    }

    /// <p>Returns a boolean indicating if this window has static contents or not.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QBackingStore::hasStaticContents() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#hasStaticContents">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a boolean indicating if this window has static contents or not.</p></div>
    #[inline(always)]
    pub unsafe fn has_static_contents(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_hasStaticContents(
            self as *const crate::QBackingStore,
        )
    }

    /// <p>Constructs an empty surface for the given top-level <i>window</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBackingStore::QBackingStore(QWindow* window)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#QBackingStore">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty surface for the given top-level <i>window</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        window: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) -> ::cpp_core::CppBox<crate::QBackingStore> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBackingStore_QBackingStore(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(window)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Implement this function to return the appropriate paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* QBackingStore::paintDevice()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#paintDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Implement this function to return the appropriate paint device.</p></div>
    #[inline(always)]
    pub unsafe fn paint_device(&mut self) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBackingStore_paintDevice(
            self as *mut crate::QBackingStore,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the size of the windowsurface to be <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBackingStore::resize(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the windowsurface to be <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbackingstore.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_resize(
            self as *mut crate::QBackingStore,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>Scrolls the given <i>area</i> <i>dx</i> pixels to the right and <i>dy</i> downward; both <i>dx</i> and <i>dy</i> may be negative.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QBackingStore::scroll(const QRegion& area, int dx, int dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#scroll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scrolls the given <i>area</i> <i>dx</i> pixels to the right and <i>dy</i> downward; both <i>dx</i> and <i>dy</i> may be negative.</p>
    /// <p>Returns <code>true</code> if the area was scrolled successfully; false otherwise.</p></div>
    #[inline(always)]
    pub unsafe fn scroll(
        &mut self,
        area: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
        dx: ::std::os::raw::c_int,
        dy: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_scroll(
            self as *mut crate::QBackingStore,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(area).as_raw_ptr(),
            dx,
            dy,
        )
    }

    /// <p>Set <i>region</i> as the static contents of this window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBackingStore::setStaticContents(const QRegion& region)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#setStaticContents">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set <i>region</i> as the static contents of this window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbackingstore.html#staticContents">staticContents</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_static_contents(
        &mut self,
        region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_setStaticContents(
            self as *mut crate::QBackingStore,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(region).as_raw_ptr(),
        )
    }

    /// <p>Returns the current size of the windowsurface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QBackingStore::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current size of the windowsurface.</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QBackingStore_size(self as *const crate::QBackingStore);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pointer to the <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> that has the static contents of this window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QBackingStore::staticContents() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#staticContents">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> that has the static contents of this window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbackingstore.html#setStaticContents">setStaticContents</a>().</p></div>
    #[inline(always)]
    pub unsafe fn static_contents(&self) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBackingStore_staticContents(
            self as *const crate::QBackingStore,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pointer to the top-level window associated with this surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QBackingStore::window() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#window">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the top-level window associated with this surface.</p></div>
    #[inline(always)]
    pub unsafe fn window(&self) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QBackingStore_window(self as *const crate::QBackingStore);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> class provides monochrome (1-bit depth) pixmaps.</p>
///
/// C++ class: <span style='color: green;'>```QBitmap```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qbitmap.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> class provides monochrome (1-bit depth) pixmaps.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> class is a monochrome off-screen paint device used mainly for creating custom <a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a> and <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> objects, constructing <a href="http://doc.qt.io/qt-5/qregion.html">QRegion</a> objects, and for setting masks for pixmaps and widgets.</p>
/// <p><a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> is a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> subclass ensuring a depth of 1, except for null objects which have a depth of 0. If a pixmap with a depth greater than 1 is assigned to a bitmap, the bitmap will be dithered automatically.</p>
/// <p>Use the <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> objects <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a> and <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color1</a> when drawing on a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> object (or a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> object with depth 1).</p>
/// <p>Painting with <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a> sets the bitmap bits to 0, and painting with <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color1</a> sets the bits to 1. For a bitmap, 0-bits indicate background (or transparent pixels) and 1-bits indicate foreground (or opaque pixels). Use the <a href="http://doc.qt.io/qt-5/qbitmap.html#clear">clear</a>() function to set all the bits to <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a>. Note that using the <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::black</a> and <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::white</a> colors make no sense because the QColor::pixel() value is not necessarily 0 for black and 1 for white.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> class provides the <a href="http://doc.qt.io/qt-5/qbitmap.html#transformed">transformed</a>() function returning a transformed copy of the bitmap; use the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> argument to translate, scale, shear, and rotate the bitmap. In addition, <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> provides the static <a href="http://doc.qt.io/qt-5/qbitmap.html#fromData">fromData</a>() function which returns a bitmap constructed from the given <code>uchar</code> data, and the static <a href="http://doc.qt.io/qt-5/qbitmap.html#fromImage">fromImage</a>() function returning a converted copy of a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> object.</p>
/// <p>Just like the <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> class, <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> is optimized by the use of implicit data sharing. For more information, see the <a href="http://doc.qt.io/qt-5/implicit-sharing.html">Implicit Data Sharing</a> documentation.</p></div>
#[repr(C)]
pub struct QBitmap {
    _unused: u8,
}
impl QBitmap {
    /// <p>Clears the bitmap, setting all its bits to <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBitmap::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the bitmap, setting all its bits to <a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::color0</a>.</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QBitmap_clear(self as *mut crate::QBitmap)
    }

    /// <p>Copy-assignment operator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap& QBitmap::operator=(const QBitmap& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy-assignment operator.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from_q_bitmap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
    ) -> ::cpp_core::MutRef<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_operator_(
            self as *mut crate::QBitmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap& QBitmap::operator=(const QPixmap& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#operator-eq-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Assigns the given <i>pixmap</i> to this bitmap and returns a reference to this bitmap.</p>
    /// <p>If the pixmap has a depth greater than 1, the resulting bitmap will be dithered automatically.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#depth">QPixmap::depth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn copy_from_q_pixmap(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::MutRef<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_operator_2(
            self as *mut crate::QBitmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs a bitmap with the given <i>size</i>, and sets the contents to the <i>bits</i> supplied.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QBitmap QBitmap::fromData(const QSize& size, const unsigned char* bits, QImage::Format monoFormat = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#fromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a bitmap with the given <i>size</i>, and sets the contents to the <i>bits</i> supplied.</p>
    /// <p>The bitmap data has to be byte aligned and provided in in the bit order specified by <i>monoFormat</i>. The mono format must be either <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Mono</a> or <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_MonoLSB</a>. Use <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Mono</a> to specify data on the XBM format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#fromImage">fromImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_data_3a(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        bits: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
        mono_format: crate::q_image::Format,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_fromData(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(bits)
                .as_raw_ptr(),
            mono_format,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a bitmap with the given <i>size</i>, and sets the contents to the <i>bits</i> supplied.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QBitmap QBitmap::fromData(const QSize& size, const unsigned char* bits)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#fromData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a bitmap with the given <i>size</i>, and sets the contents to the <i>bits</i> supplied.</p>
    /// <p>The bitmap data has to be byte aligned and provided in in the bit order specified by <i>monoFormat</i>. The mono format must be either <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Mono</a> or <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_MonoLSB</a>. Use <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Mono</a> to specify data on the XBM format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#fromImage">fromImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_data_2a(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        bits: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uchar>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_fromData1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uchar>>::cast_into(bits)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the given <i>image</i> converted to a bitmap using the specified image conversion <i>flags</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QBitmap QBitmap::fromImage(const QImage& image, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#fromImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the given <i>image</i> converted to a bitmap using the specified image conversion <i>flags</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#fromData">fromData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_image_2a(
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_fromImage(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of the given <i>image</i> converted to a bitmap using the specified image conversion <i>flags</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QBitmap QBitmap::fromImage(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#fromImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of the given <i>image</i> converted to a bitmap using the specified image conversion <i>flags</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#fromData">fromData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_image_1a(
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_fromImage1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a null bitmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBitmap::QBitmap()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a null bitmap.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">QPixmap::isNull</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_QBitmap();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a bitmap that is a copy of the given <i>pixmap</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBitmap::QBitmap(const QPixmap& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a bitmap that is a copy of the given <i>pixmap</i>.</p>
    /// <p>If the pixmap has a depth greater than 1, the resulting bitmap will be dithered automatically.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#depth">QPixmap::depth</a>(), <a href="http://doc.qt.io/qt-5/qbitmap.html#fromImage">fromImage</a>(), and <a href="http://doc.qt.io/qt-5/qbitmap.html#fromData">fromData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_pixmap(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_QBitmap1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a bitmap with the given <i>width</i> and <i>height</i>. The pixels inside are uninitialized.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBitmap::QBitmap(int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a bitmap with the given <i>width</i> and <i>height</i>. The pixels inside are uninitialized.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#clear">clear</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int(
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_QBitmap2(w, h);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a bitmap with the given <i>size</i>. The pixels in the bitmap are uninitialized.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBitmap::QBitmap(const QSize& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a bitmap with the given <i>size</i>. The pixels in the bitmap are uninitialized.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbitmap.html#clear">clear</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_QBitmap3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a bitmap from the file specified by the given <i>fileName</i>. If the file does not exist, or has an unknown format, the bitmap becomes a null bitmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBitmap::QBitmap(const QString& fileName, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a bitmap from the file specified by the given <i>fileName</i>. If the file does not exist, or has an unknown format, the bitmap becomes a null bitmap.</p>
    /// <p>The <i>fileName</i> and <i>format</i> parameters are passed on to the <a href="http://doc.qt.io/qt-5/qpixmap.html#load">QPixmap::load</a>() function. If the file format uses more than 1 bit per pixel, the resulting bitmap will be dithered automatically.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">QPixmap::isNull</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#imageFormat">QImageReader::imageFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_char(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_QBitmap4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a bitmap from the file specified by the given <i>fileName</i>. If the file does not exist, or has an unknown format, the bitmap becomes a null bitmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBitmap::QBitmap(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a bitmap from the file specified by the given <i>fileName</i>. If the file does not exist, or has an unknown format, the bitmap becomes a null bitmap.</p>
    /// <p>The <i>fileName</i> and <i>format</i> parameters are passed on to the <a href="http://doc.qt.io/qt-5/qpixmap.html#load">QPixmap::load</a>() function. If the file format uses more than 1 bit per pixel, the resulting bitmap will be dithered automatically.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">QPixmap::isNull</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#imageFormat">QImageReader::imageFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_QBitmap6(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy constructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QBitmap::QBitmap(const QBitmap& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#QBitmap-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBitmap>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_QBitmap5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBitmap>>::cast_into(other).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps bitmap <i>other</i> with this bitmap. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QBitmap::swap(QBitmap& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps bitmap <i>other</i> with this bitmap. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QBitmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QBitmap_swap(
            self as *mut crate::QBitmap,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QBitmap>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the bitmap as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QBitmap::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bitmap as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QBitmap_operator_QVariant(self as *const crate::QBitmap);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of this bitmap, transformed according to the given <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap QBitmap::transformed(const QMatrix& arg1) const```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qbitmap.html#transformed">C++ documentation</a> for <span style='color: green;'>```QBitmap QBitmap::transformed(const QTransform &matrix) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of this bitmap, transformed according to the given <i>matrix</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#transformed">QPixmap::transformed</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_matrix(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_transformed(
            self as *const crate::QBitmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a copy of this bitmap, transformed according to the given <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBitmap QBitmap::transformed(const QTransform& matrix) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#transformed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of this bitmap, transformed according to the given <i>matrix</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#transformed">QPixmap::transformed</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transformed_q_transform(
        &self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QBitmap_transformed1(
            self as *const crate::QBitmap,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_clipboard {
    //! C++ type: <span style='color: green;'>```QClipboard```</span>

    /// <p>This enum type is used to control which part of the system clipboard is used by <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">QClipboard::mimeData</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">QClipboard::setMimeData</a>() and related functions.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QClipboard::Mode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type is used to control which part of the system clipboard is used by <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">QClipboard::mimeData</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">QClipboard::setMimeData</a>() and related functions.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#supportsSelection">QClipboard::supportsSelection</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Mode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Mode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Mode(value)
        }
    }

    impl From<Mode> for ::std::os::raw::c_int {
        fn from(value: Mode) -> Self {
            value.0
        }
    }

    impl Mode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Mode {
        /// indicates that data should be stored and retrieved from the global clipboard. (C++ enum variant: <span style='color: green;'>```Clipboard = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Clipboard: crate::q_clipboard::Mode = crate::q_clipboard::Mode(0);
        /// indicates that data should be stored and retrieved from the global mouse selection. Support for <code>Selection</code> is provided only on systems with a global mouse selection (e.g. X11). (C++ enum variant: <span style='color: green;'>```Selection = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Selection: crate::q_clipboard::Mode = crate::q_clipboard::Mode(1);
        /// indicates that data should be stored and retrieved from the Find buffer. This mode is used for holding search strings on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>. (C++ enum variant: <span style='color: green;'>```FindBuffer = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const FindBuffer: crate::q_clipboard::Mode = crate::q_clipboard::Mode(2);
        /// C++ enum variant: <span style='color: green;'>```LastMode = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const LastMode: crate::q_clipboard::Mode = crate::q_clipboard::Mode(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qclipboard.html">QClipboard</a> class provides access to the window system clipboard.</p>
///
/// C++ class: <span style='color: green;'>```QClipboard```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qclipboard.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qclipboard.html">QClipboard</a> class provides access to the window system clipboard.</p>
/// <p>The clipboard offers a simple mechanism to copy and paste data between applications.</p>
/// <p><a href="http://doc.qt.io/qt-5/qclipboard.html">QClipboard</a> supports the same data types that <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> does, and uses similar mechanisms. For advanced clipboard usage read <a href="http://doc.qt.io/qt-5/dnd.html">Drag and Drop</a>.</p>
/// <p>There is a single <a href="http://doc.qt.io/qt-5/qclipboard.html">QClipboard</a> object in an application, accessible as <a href="http://doc.qt.io/qt-5/qguiapplication.html#clipboard">QGuiApplication::clipboard</a>().</p>
/// <p>Example:</p>
/// <pre class="cpp">
///
///   <span class="type">QClipboard</span> <span class="operator">*</span>clipboard <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a></span><span class="operator">::</span>clipboard();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> originalText <span class="operator">=</span> clipboard<span class="operator">-</span><span class="operator">&gt;</span>text();
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   clipboard<span class="operator">-</span><span class="operator">&gt;</span>setText(newText);
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qclipboard.html">QClipboard</a> features some convenience functions to access common data types: <a href="http://doc.qt.io/qt-5/qclipboard.html#setText">setText</a>() allows the exchange of Unicode text and <a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">setPixmap</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>() allows the exchange of QPixmaps and QImages between applications. The <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>() function is the ultimate in flexibility: it allows you to add any <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> into the clipboard. There are corresponding getters for each of these, e.g. <a href="http://doc.qt.io/qt-5/qclipboard.html#text">text</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#image">image</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">pixmap</a>(). You can clear the clipboard by calling <a href="http://doc.qt.io/qt-5/qclipboard.html#clear">clear</a>().</p>
/// <p>A typical example of the use of these functions follows:</p>
/// <pre class="cpp">
///
///   <span class="type">void</span> DropArea<span class="operator">::</span>paste()
///   {
/// &#32;     <span class="keyword">const</span> <span class="type">QClipboard</span> <span class="operator">*</span>clipboard <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a></span><span class="operator">::</span>clipboard();
/// &#32;     <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a></span> <span class="operator">*</span>mimeData <span class="operator">=</span> clipboard<span class="operator">-</span><span class="operator">&gt;</span>mimeData();
///
/// &#32;     <span class="keyword">if</span> (mimeData<span class="operator">-</span><span class="operator">&gt;</span>hasImage()) {
/// &#32;   &#32;     setPixmap(qvariant_cast<span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a></span><span class="operator">&gt;</span>(mimeData<span class="operator">-</span><span class="operator">&gt;</span>imageData()));
/// &#32;     } <span class="keyword">else</span> <span class="keyword">if</span> (mimeData<span class="operator">-</span><span class="operator">&gt;</span>hasHtml()) {
/// &#32;   &#32;     setText(mimeData<span class="operator">-</span><span class="operator">&gt;</span>html());
/// &#32;   &#32;     setTextFormat(<span class="type">Qt</span><span class="operator">::</span>RichText);
/// &#32;     } <span class="keyword">else</span> <span class="keyword">if</span> (mimeData<span class="operator">-</span><span class="operator">&gt;</span>hasText()) {
/// &#32;   &#32;     setText(mimeData<span class="operator">-</span><span class="operator">&gt;</span>text());
/// &#32;   &#32;     setTextFormat(<span class="type">Qt</span><span class="operator">::</span>PlainText);
/// &#32;     } <span class="keyword">else</span> {
/// &#32;   &#32;     setText(tr(<span class="string">"Cannot display data"</span>));
/// &#32;     }
///
/// </pre>
/// <a name="notes-for-x11-users"></a></div>
#[repr(C)]
pub struct QClipboard {
    _unused: u8,
}
impl QClipboard {
    /// <p>This signal is emitted when the data for the given clipboard <i>mode</i> is changed.</p>
    ///
    /// Returns a built-in Qt signal `QClipboard::changed` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#changed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the data for the given clipboard <i>mode</i> is changed.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#dataChanged">dataChanged</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#selectionChanged">selectionChanged</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#findBufferChanged">findBufferChanged</a>().</p></div>
    #[inline(always)]
    pub fn changed(&self) -> ::qt_core::Signal<(crate::q_clipboard::Mode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2changed(QClipboard::Mode)\0"),
            )
        }
    }

    /// <p>This signal is emitted when the selection is changed. This only applies to windowing systems that support selections, e.g. X11. Windows and <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> don't support selections.</p>
    ///
    /// Returns a built-in Qt signal `QClipboard::selectionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#selectionChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the selection is changed. This only applies to windowing systems that support selections, e.g. X11. Windows and <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> don't support selections.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#dataChanged">dataChanged</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#findBufferChanged">findBufferChanged</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#changed">changed</a>().</p></div>
    #[inline(always)]
    pub fn selection_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2selectionChanged()\0"),
            )
        }
    }

    /// <p>This signal is emitted when the find buffer is changed. This only applies to <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>.</p>
    ///
    /// Returns a built-in Qt signal `QClipboard::findBufferChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#findBufferChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the find buffer is changed. This only applies to <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>.</p>
    /// <p>With Qt version 4.3 or higher, clipboard changes made by other applications will only be detected when the application is activated.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#dataChanged">dataChanged</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#selectionChanged">selectionChanged</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#changed">changed</a>().</p></div>
    #[inline(always)]
    pub fn find_buffer_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2findBufferChanged()\0"),
            )
        }
    }

    /// <p>This signal is emitted when the clipboard data is changed.</p>
    ///
    /// Returns a built-in Qt signal `QClipboard::dataChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#dataChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the clipboard data is changed.</p>
    /// <p>On <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> and with Qt version 4.3 or higher, clipboard changes made by other applications will only be detected when the application is activated.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#findBufferChanged">findBufferChanged</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#selectionChanged">selectionChanged</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#changed">changed</a>().</p></div>
    #[inline(always)]
    pub fn data_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2dataChanged()\0"),
            )
        }
    }

    /// <p>Clear the clipboard contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::clear(QClipboard::Mode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clear the clipboard contents.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, this function clears the global clipboard contents. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, this function clears the global mouse selection contents. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, this function clears the search string buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Mode</a> and <a href="http://doc.qt.io/qt-5/qclipboard.html#supportsSelection">supportsSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_1a(&mut self, mode: crate::q_clipboard::Mode) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_clear(self as *mut crate::QClipboard, mode)
    }

    /// <p>Clear the clipboard contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clear the clipboard contents.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, this function clears the global clipboard contents. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, this function clears the global mouse selection contents. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, this function clears the search string buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Mode</a> and <a href="http://doc.qt.io/qt-5/qclipboard.html#supportsSelection">supportsSelection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_clear1(self as *mut crate::QClipboard)
    }

    /// <p>Returns the clipboard image, or returns a null image if the clipboard does not contain an image or if it contains an image in an unsupported image format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QClipboard::image(QClipboard::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#image">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clipboard image, or returns a null image if the clipboard does not contain an image or if it contains an image in an unsupported image format.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the image is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the image is retrieved from the global mouse selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">pixmap</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#isNull">QImage::isNull</a>().</p></div>
    #[inline(always)]
    pub unsafe fn image_1a(
        &self,
        mode: crate::q_clipboard::Mode,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QClipboard_image(self as *const crate::QClipboard, mode);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the clipboard image, or returns a null image if the clipboard does not contain an image or if it contains an image in an unsupported image format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QClipboard::image() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#image">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clipboard image, or returns a null image if the clipboard does not contain an image or if it contains an image in an unsupported image format.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the image is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the image is retrieved from the global mouse selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">pixmap</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#isNull">QImage::isNull</a>().</p></div>
    #[inline(always)]
    pub unsafe fn image_0a(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QClipboard_image1(self as *const crate::QClipboard);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QClipboard::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QClipboard_metaObject(self as *const crate::QClipboard);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to a <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> representation of the current clipboard data (can be NULL if the given <i>mode</i> is not supported by the platform).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QMimeData* QClipboard::mimeData(QClipboard::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to a <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> representation of the current clipboard data (can be NULL if the given <i>mode</i> is not supported by the platform).</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the data is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the data is retrieved from the global mouse selection. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, the data is retrieved from the search string buffer.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qclipboard.html#text">text</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#image">image</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">pixmap</a>() functions are simpler wrappers for retrieving text, image, and pixmap data.</p>
    /// <p><b>Note: </b>The pointer returned might become invalidated when the contents of the clipboard changes; either by calling one of the setter functions or externally by the system clipboard changing.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mime_data_1a(
        &self,
        mode: crate::q_clipboard::Mode,
    ) -> ::cpp_core::Ptr<::qt_core::QMimeData> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QClipboard_mimeData(
            self as *const crate::QClipboard,
            mode,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to a <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> representation of the current clipboard data (can be NULL if the given <i>mode</i> is not supported by the platform).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QMimeData* QClipboard::mimeData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to a <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> representation of the current clipboard data (can be NULL if the given <i>mode</i> is not supported by the platform).</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the data is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the data is retrieved from the global mouse selection. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, the data is retrieved from the search string buffer.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qclipboard.html#text">text</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#image">image</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">pixmap</a>() functions are simpler wrappers for retrieving text, image, and pixmap data.</p>
    /// <p><b>Note: </b>The pointer returned might become invalidated when the contents of the clipboard changes; either by calling one of the setter functions or externally by the system clipboard changing.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mime_data_0a(&self) -> ::cpp_core::Ptr<::qt_core::QMimeData> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QClipboard_mimeData1(self as *const crate::QClipboard);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns <code>true</code> if this clipboard object owns the clipboard data; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QClipboard::ownsClipboard() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#ownsClipboard">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this clipboard object owns the clipboard data; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn owns_clipboard(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_ownsClipboard(self as *const crate::QClipboard)
    }

    /// <p>Returns <code>true</code> if this clipboard object owns the find buffer data; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QClipboard::ownsFindBuffer() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#ownsFindBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this clipboard object owns the find buffer data; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn owns_find_buffer(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_ownsFindBuffer(self as *const crate::QClipboard)
    }

    /// <p>Returns <code>true</code> if this clipboard object owns the mouse selection data; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QClipboard::ownsSelection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#ownsSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this clipboard object owns the mouse selection data; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn owns_selection(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_ownsSelection(self as *const crate::QClipboard)
    }

    /// <p>Returns the clipboard pixmap, or null if the clipboard does not contain a pixmap. Note that this can lose information. For example, if the image is 24-bit and the display is 8-bit, the result is converted to 8 bits, and if the image has an alpha channel, the result just has a mask.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QClipboard::pixmap(QClipboard::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clipboard pixmap, or null if the clipboard does not contain a pixmap. Note that this can lose information. For example, if the image is 24-bit and the display is 8-bit, the result is converted to 8 bits, and if the image has an alpha channel, the result just has a mask.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the pixmap is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the pixmap is retrieved from the global mouse selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">setPixmap</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#image">image</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#convertFromImage">QPixmap::convertFromImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_1a(
        &self,
        mode: crate::q_clipboard::Mode,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QClipboard_pixmap(self as *const crate::QClipboard, mode);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the clipboard pixmap, or null if the clipboard does not contain a pixmap. Note that this can lose information. For example, if the image is 24-bit and the display is 8-bit, the result is converted to 8 bits, and if the image has an alpha channel, the result just has a mask.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QClipboard::pixmap() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clipboard pixmap, or null if the clipboard does not contain a pixmap. Note that this can lose information. For example, if the image is 24-bit and the display is 8-bit, the result is converted to 8 bits, and if the image has an alpha channel, the result just has a mask.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the pixmap is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the pixmap is retrieved from the global mouse selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">setPixmap</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#image">image</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#convertFromImage">QPixmap::convertFromImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap_0a(&self) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QClipboard_pixmap1(self as *const crate::QClipboard);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QClipboard::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_qt_metacall(
            self as *mut crate::QClipboard,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QClipboard::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QClipboard_qt_metacast(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Copies the <i>image</i> into the clipboard.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::setImage(const QImage& arg1, QClipboard::Mode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies the <i>image</i> into the clipboard.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the image is stored in the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the data is stored in the global mouse selection.</p>
    /// <p>This is shorthand for:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a></span> <span class="operator">*</span>data <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a></span>;
    ///   data<span class="operator">-</span><span class="operator">&gt;</span>setImageData(image);
    ///   clipboard<span class="operator">-</span><span class="operator">&gt;</span>setMimeData(data<span class="operator">,</span> mode);
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#image">image</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">setPixmap</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_image_2a(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        mode: crate::q_clipboard::Mode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_setImage(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(arg1).as_raw_ptr(),
            mode,
        )
    }

    /// <p>Copies the <i>image</i> into the clipboard.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::setImage(const QImage& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies the <i>image</i> into the clipboard.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the image is stored in the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the data is stored in the global mouse selection.</p>
    /// <p>This is shorthand for:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a></span> <span class="operator">*</span>data <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a></span>;
    ///   data<span class="operator">-</span><span class="operator">&gt;</span>setImageData(image);
    ///   clipboard<span class="operator">-</span><span class="operator">&gt;</span>setMimeData(data<span class="operator">,</span> mode);
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#image">image</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">setPixmap</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_image_1a(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_setImage1(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Sets the clipboard data to <i>src</i>. Ownership of the data is transferred to the clipboard. If you want to remove the data either call <a href="http://doc.qt.io/qt-5/qclipboard.html#clear">clear</a>() or call setMimeData() again with new data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::setMimeData(QMimeData* data, QClipboard::Mode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the clipboard data to <i>src</i>. Ownership of the data is transferred to the clipboard. If you want to remove the data either call <a href="http://doc.qt.io/qt-5/qclipboard.html#clear">clear</a>() or call setMimeData() again with new data.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the data is stored in the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the data is stored in the global mouse selection. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, the data is stored in the search string buffer.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qclipboard.html#setText">setText</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">setPixmap</a>() functions are simpler wrappers for setting text, image and pixmap data respectively.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mime_data_2a(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QMimeData>>,
        mode: crate::q_clipboard::Mode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_setMimeData(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QMimeData>>::cast_into(data)
                .as_mut_raw_ptr(),
            mode,
        )
    }

    /// <p>Sets the clipboard data to <i>src</i>. Ownership of the data is transferred to the clipboard. If you want to remove the data either call <a href="http://doc.qt.io/qt-5/qclipboard.html#clear">clear</a>() or call setMimeData() again with new data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::setMimeData(QMimeData* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the clipboard data to <i>src</i>. Ownership of the data is transferred to the clipboard. If you want to remove the data either call <a href="http://doc.qt.io/qt-5/qclipboard.html#clear">clear</a>() or call setMimeData() again with new data.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the data is stored in the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the data is stored in the global mouse selection. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, the data is stored in the search string buffer.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qclipboard.html#setText">setText</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">setPixmap</a>() functions are simpler wrappers for setting text, image and pixmap data respectively.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mime_data_1a(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QMimeData>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_setMimeData1(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QMimeData>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Copies <i>pixmap</i> into the clipboard. Note that this is slower than <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>() because it needs to convert the <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> first.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::setPixmap(const QPixmap& arg1, QClipboard::Mode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies <i>pixmap</i> into the clipboard. Note that this is slower than <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>() because it needs to convert the <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> first.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the pixmap is stored in the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the pixmap is stored in the global mouse selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">pixmap</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pixmap_2a(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        mode: crate::q_clipboard::Mode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_setPixmap(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg1).as_raw_ptr(),
            mode,
        )
    }

    /// <p>Copies <i>pixmap</i> into the clipboard. Note that this is slower than <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>() because it needs to convert the <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> first.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::setPixmap(const QPixmap& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#setPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies <i>pixmap</i> into the clipboard. Note that this is slower than <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>() because it needs to convert the <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> first.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the pixmap is stored in the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the pixmap is stored in the global mouse selection.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#pixmap">pixmap</a>(), <a href="http://doc.qt.io/qt-5/qclipboard.html#setImage">setImage</a>(), and <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pixmap_1a(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_setPixmap1(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Copies <i>text</i> into the clipboard as plain text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::setText(const QString& arg1, QClipboard::Mode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#setText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies <i>text</i> into the clipboard as plain text.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the text is stored in the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the text is stored in the global mouse selection. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, the text is stored in the search string buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#text">text</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_2a(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        mode: crate::q_clipboard::Mode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_setText(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
            mode,
        )
    }

    /// <p>Copies <i>text</i> into the clipboard as plain text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QClipboard::setText(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#setText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies <i>text</i> into the clipboard as plain text.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the text is stored in the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the text is stored in the global mouse selection. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, the text is stored in the search string buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#text">text</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_1a(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_setText1(
            self as *mut crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QClipboard_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the clipboard supports a separate search buffer; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QClipboard::supportsFindBuffer() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#supportsFindBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the clipboard supports a separate search buffer; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn supports_find_buffer(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_supportsFindBuffer(self as *const crate::QClipboard)
    }

    /// <p>Returns <code>true</code> if the clipboard supports mouse selection; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QClipboard::supportsSelection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#supportsSelection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the clipboard supports mouse selection; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn supports_selection(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QClipboard_supportsSelection(self as *const crate::QClipboard)
    }

    /// <p>Returns the clipboard text as plain text, or an empty string if the clipboard does not contain any text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QClipboard::text(QClipboard::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clipboard text as plain text, or an empty string if the clipboard does not contain any text.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the text is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the text is retrieved from the global mouse selection. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, the text is retrieved from the search string buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setText">setText</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_mode(
        &self,
        mode: crate::q_clipboard::Mode,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QClipboard_text(self as *const crate::QClipboard, mode);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QClipboard::text(QString& subtype, QClipboard::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#text-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the clipboard text in subtype <i>subtype</i>, or an empty string if the clipboard does not contain any text. If <i>subtype</i> is null, any subtype is acceptable, and <i>subtype</i> is set to the chosen subtype.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the text is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the text is retrieved from the global mouse selection.</p>
    /// <p>Common values for <i>subtype</i> are "plain" and "html".</p>
    /// <p>Note that calling this function repeatedly, for instance from a key event handler, may be slow. In such cases, you should use the <code>dataChanged()</code> signal instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setText">setText</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_q_string_mode(
        &self,
        subtype: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
        mode: crate::q_clipboard::Mode,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QClipboard_text1(
            self as *const crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(subtype)
                .as_mut_raw_ptr(),
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the clipboard text as plain text, or an empty string if the clipboard does not contain any text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QClipboard::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clipboard text as plain text, or an empty string if the clipboard does not contain any text.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the text is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the text is retrieved from the global mouse selection. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::FindBuffer</a>, the text is retrieved from the search string buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setText">setText</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QClipboard_text2(self as *const crate::QClipboard);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QClipboard::text(QString& subtype) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qclipboard.html#text-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the clipboard text in subtype <i>subtype</i>, or an empty string if the clipboard does not contain any text. If <i>subtype</i> is null, any subtype is acceptable, and <i>subtype</i> is set to the chosen subtype.</p>
    /// <p>The <i>mode</i> argument is used to control which part of the system clipboard is used. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Clipboard</a>, the text is retrieved from the global clipboard. If <i>mode</i> is <a href="http://doc.qt.io/qt-5/qclipboard.html#Mode-enum">QClipboard::Selection</a>, the text is retrieved from the global mouse selection.</p>
    /// <p>Common values for <i>subtype</i> are "plain" and "html".</p>
    /// <p>Note that calling this function repeatedly, for instance from a key event handler, may be slow. In such cases, you should use the <code>dataChanged()</code> signal instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qclipboard.html#setText">setText</a>() and <a href="http://doc.qt.io/qt-5/qclipboard.html#mimeData">mimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_q_string(
        &self,
        subtype: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QClipboard_text3(
            self as *const crate::QClipboard,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(subtype)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QClipboard::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QClipboard_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QClipboard::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QClipboard_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
///
/// C++ class: <span style='color: green;'>```QDesktopServices```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qdesktopservices.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
/// <p>Many desktop environments provide services that can be used by applications to perform common tasks, such as opening a web page, in a way that is both consistent and takes into account the user's application preferences.</p>
/// <p>This class contains functions that provide simple interfaces to these services that indicate whether they succeeded or failed.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">openUrl</a>() function is used to open files located at arbitrary URLs in external applications. For URLs that correspond to resources on the local filing system (where the URL scheme is "file"), a suitable application will be used to open the file; otherwise, a web browser will be used to fetch and display the file.</p>
/// <p>The user's desktop settings control whether certain executable file types are opened for browsing, or if they are executed instead. Some desktop environments are configured to prevent users from executing files obtained from non-local URLs, or to ask the user's permission before doing so.</p>
/// <a name="url-handlers"></a></div>
#[repr(C)]
pub struct QDesktopServices {
    _unused: u8,
}
impl QDesktopServices {
    /// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QDesktopServices& QDesktopServices::operator=(const QDesktopServices& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdesktopservices.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
    /// <p>Many desktop environments provide services that can be used by applications to perform common tasks, such as opening a web page, in a way that is both consistent and takes into account the user's application preferences.</p>
    /// <p>This class contains functions that provide simple interfaces to these services that indicate whether they succeeded or failed.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">openUrl</a>() function is used to open files located at arbitrary URLs in external applications. For URLs that correspond to resources on the local filing system (where the URL scheme is "file"), a suitable application will be used to open the file; otherwise, a web browser will be used to fetch and display the file.</p>
    /// <p>The user's desktop settings control whether certain executable file types are opened for browsing, or if they are executed instead. Some desktop environments are configured to prevent users from executing files obtained from non-local URLs, or to ask the user's permission before doing so.</p>
    /// <a name="url-handlers"></a></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDesktopServices>>,
    ) -> ::cpp_core::MutRef<crate::QDesktopServices> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDesktopServices_operator_(
            self as *mut crate::QDesktopServices,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDesktopServices>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDesktopServices::QDesktopServices()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdesktopservices.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
    /// <p>Many desktop environments provide services that can be used by applications to perform common tasks, such as opening a web page, in a way that is both consistent and takes into account the user's application preferences.</p>
    /// <p>This class contains functions that provide simple interfaces to these services that indicate whether they succeeded or failed.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">openUrl</a>() function is used to open files located at arbitrary URLs in external applications. For URLs that correspond to resources on the local filing system (where the URL scheme is "file"), a suitable application will be used to open the file; otherwise, a web browser will be used to fetch and display the file.</p>
    /// <p>The user's desktop settings control whether certain executable file types are opened for browsing, or if they are executed instead. Some desktop environments are configured to prevent users from executing files obtained from non-local URLs, or to ask the user's permission before doing so.</p>
    /// <a name="url-handlers"></a></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QDesktopServices> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDesktopServices_QDesktopServices();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDesktopServices::QDesktopServices(const QDesktopServices& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdesktopservices.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
    /// <p>Many desktop environments provide services that can be used by applications to perform common tasks, such as opening a web page, in a way that is both consistent and takes into account the user's application preferences.</p>
    /// <p>This class contains functions that provide simple interfaces to these services that indicate whether they succeeded or failed.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">openUrl</a>() function is used to open files located at arbitrary URLs in external applications. For URLs that correspond to resources on the local filing system (where the URL scheme is "file"), a suitable application will be used to open the file; otherwise, a web browser will be used to fetch and display the file.</p>
    /// <p>The user's desktop settings control whether certain executable file types are opened for browsing, or if they are executed instead. Some desktop environments are configured to prevent users from executing files obtained from non-local URLs, or to ask the user's permission before doing so.</p>
    /// <a name="url-handlers"></a></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QDesktopServices>>,
    ) -> ::cpp_core::CppBox<crate::QDesktopServices> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDesktopServices_QDesktopServices1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QDesktopServices>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Opens the given <i>url</i> in the appropriate Web browser for the user's desktop environment, and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QDesktopServices::openUrl(const QUrl& url)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Opens the given <i>url</i> in the appropriate Web browser for the user's desktop environment, and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    /// <p>If the URL is a reference to a local file (i.e., the URL scheme is "file") then it will be opened with a suitable application instead of a Web browser.</p>
    /// <p>The following example opens a file on the Windows file system residing on a path that contains spaces:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a></span><span class="operator">::</span>openUrl(<span class="type"><a href="http://doc.qt.io/qt-5/qurl.html">QUrl</a></span>(<span class="string">"file:///C:/Documents and Settings/All Users/Desktop"</span><span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qurl.html">QUrl</a></span><span class="operator">::</span>TolerantMode));
    ///
    /// </pre>
    /// <p>If a <code>mailto</code> URL is specified, the user's e-mail client will be used to open a composer window containing the options specified in the URL, similar to the way <code>mailto</code> links are handled by a Web browser.</p>
    /// <p>For example, the following URL contains a recipient (<code>user@foo.com</code>), a subject (<code>Test</code>), and a message body (<code>Just a test</code>):</p>
    /// <pre class="cpp">
    ///
    ///   mailto:user@foo<span class="operator">.</span>com<span class="operator">?</span>subject<span class="operator">=</span>Test<span class="operator">&amp;</span>body<span class="operator">=</span>Just a test
    ///
    /// </pre>
    /// <p><b>Warning:</b> Although many e-mail clients can send attachments and are Unicode-aware, the user may have configured their client without these features. Also, certain e-mail clients (e.g., Lotus Notes) have problems with long URLs.</p>
    /// <p><b>Warning:</b> A return value of <code>true</code> indicates that the application has successfully requested the operating system to open the URL in an external application. The external application may still fail to launch or fail to open the requested URL. This result will not be reported back to the application.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdesktopservices.html#setUrlHandler">setUrlHandler</a>().</p></div>
    #[inline(always)]
    pub unsafe fn open_url(
        url: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QDesktopServices_openUrl(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(url).as_raw_ptr(),
        )
    }

    /// <p>Sets the handler for the given <i>scheme</i> to be the handler <i>method</i> provided by the <i>receiver</i> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QDesktopServices::setUrlHandler(const QString& scheme, QObject* receiver, const char* method)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdesktopservices.html#setUrlHandler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the handler for the given <i>scheme</i> to be the handler <i>method</i> provided by the <i>receiver</i> object.</p>
    /// <p>This function provides a way to customize the behavior of <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">openUrl</a>(). If <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">openUrl</a>() is called with a URL with the specified <i>scheme</i> then the given <i>method</i> on the <i>receiver</i> object is called instead of <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> launching an external application.</p>
    /// <p>The provided method must be implemented as a slot that only accepts a single <a href="http://doc.qt.io/qt-5/qurl.html">QUrl</a> argument.</p>
    /// <p>If setUrlHandler() is used to set a new handler for a scheme which already has a handler, the existing handler is simply replaced with the new one. Since <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> does not take ownership of handlers, no objects are deleted when a handler is replaced.</p>
    /// <p>Note that the handler will always be called from within the same thread that calls <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">QDesktopServices::openUrl</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">openUrl</a>() and <a href="http://doc.qt.io/qt-5/qdesktopservices.html#unsetUrlHandler">unsetUrlHandler</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_url_handler(
        scheme: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        receiver: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        method: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDesktopServices_setUrlHandler(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(scheme)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(receiver)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(method)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes a previously set URL handler for the specified <i>scheme</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QDesktopServices::unsetUrlHandler(const QString& scheme)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdesktopservices.html#unsetUrlHandler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes a previously set URL handler for the specified <i>scheme</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdesktopservices.html#setUrlHandler">setUrlHandler</a>().</p></div>
    #[inline(always)]
    pub unsafe fn unset_url_handler(
        scheme: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDesktopServices_unsetUrlHandler(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(scheme)
                .as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> class provides support for MIME-based drag and drop data transfer.</p>
///
/// C++ class: <span style='color: green;'>```QDrag```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qdrag.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> class provides support for MIME-based drag and drop data transfer.</p>
/// <p>Drag and drop is an intuitive way for users to copy or move data around in an application, and is used in many desktop environments as a mechanism for copying data between applications. Drag and drop support in Qt is centered around the <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> class that handles most of the details of a drag and drop operation.</p>
/// <p>The data to be transferred by the drag and drop operation is contained in a <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> object. This is specified with the <a href="http://doc.qt.io/qt-5/qdrag.html#setMimeData">setMimeData</a>() function in the following way:</p>
/// <pre class="cpp">
///
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qdrag.html#QDrag">QDrag</a></span> <span class="operator">*</span>drag <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qdrag.html#QDrag">QDrag</a></span>(<span class="keyword">this</span>);
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a></span> <span class="operator">*</span>mimeData <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a></span>;
///
/// &#32;   &#32;     mimeData<span class="operator">-</span><span class="operator">&gt;</span>setText(commentEdit<span class="operator">-</span><span class="operator">&gt;</span>toPlainText());
/// &#32;   &#32;     drag<span class="operator">-</span><span class="operator">&gt;</span>setMimeData(mimeData);
///
/// </pre>
/// <p>Note that <a href="http://doc.qt.io/qt-5/qdrag.html#setMimeData">setMimeData</a>() assigns ownership of the <a href="http://doc.qt.io/qt-5/qmimedata.html">QMimeData</a> object to the <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> object. The <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> must be constructed on the heap with a parent <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> to ensure that Qt can clean up after the drag and drop operation has been completed.</p>
/// <p>A pixmap can be used to represent the data while the drag is in progress, and will move with the cursor to the drop target. This pixmap typically shows an icon that represents the MIME type of the data being transferred, but any pixmap can be set with <a href="http://doc.qt.io/qt-5/qdrag.html#setPixmap">setPixmap</a>(). The cursor's hot spot can be given a position relative to the top-left corner of the pixmap with the <a href="http://doc.qt.io/qt-5/qdrag.html#setHotSpot">setHotSpot</a>() function. The following code positions the pixmap so that the cursor's hot spot points to the center of its bottom edge:</p>
/// <pre class="cpp">
///
/// &#32;     drag<span class="operator">-</span><span class="operator">&gt;</span>setHotSpot(<span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span>(drag<span class="operator">-</span><span class="operator">&gt;</span>pixmap()<span class="operator">.</span>width()<span class="operator">/</span><span class="number">2</span><span class="operator">,</span>
/// &#32;   &#32;   &#32;   &#32;   &#32;   &#32;   &#32;     drag<span class="operator">-</span><span class="operator">&gt;</span>pixmap()<span class="operator">.</span>height()));
///
/// </pre>
/// <p><b>Note: </b>On X11, the pixmap may not be able to keep up with the mouse movements if the hot spot causes the pixmap to be displayed directly under the cursor.</p><p>The source and target widgets can be found with <a href="http://doc.qt.io/qt-5/qdrag.html#source">source</a>() and <a href="http://doc.qt.io/qt-5/qdrag.html#target">target</a>(). These functions are often used to determine whether drag and drop operations started and finished at the same widget, so that special behavior can be implemented.</p>
/// <p><a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> only deals with the drag and drop operation itself. It is up to the developer to decide when a drag operation begins, and how a <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> object should be constructed and used. For a given widget, it is often necessary to reimplement <a href="http://doc.qt.io/qt-5/qwidget.html#mousePressEvent">mousePressEvent()</a> to determine whether the user has pressed a mouse button, and reimplement <a href="http://doc.qt.io/qt-5/qwidget.html#mouseMoveEvent">mouseMoveEvent()</a> to check whether a <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> is required.</p></div>
#[repr(C)]
pub struct QDrag {
    _unused: u8,
}
impl QDrag {
    /// <p>This signal is emitted when the <i>action</i> associated with the drag changes.</p>
    ///
    /// Returns a built-in Qt signal `QDrag::actionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#actionChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the <i>action</i> associated with the drag changes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#targetChanged">targetChanged</a>().</p></div>
    #[inline(always)]
    pub fn action_changed(&self) -> ::qt_core::Signal<(::qt_core::DropAction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2actionChanged(Qt::DropAction)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the target of the drag and drop operation changes, with <i>newTarget</i> the new target.</p>
    ///
    /// Returns a built-in Qt signal `QDrag::targetChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#targetChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the target of the drag and drop operation changes, with <i>newTarget</i> the new target.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#target">target</a>() and <a href="http://doc.qt.io/qt-5/qdrag.html#actionChanged">actionChanged</a>().</p></div>
    #[inline(always)]
    pub fn target_changed(&self) -> ::qt_core::Signal<(*mut ::qt_core::QObject,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2targetChanged(QObject*)\0"),
            )
        }
    }

    /// <p>Cancels a drag operation initiated by Qt.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QDrag::cancel()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#cancel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Cancels a drag operation initiated by Qt.</p>
    /// <p><b>Note: </b>This is currently implemented on Windows and X11.</p><p>This function was introduced in  Qt 5.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cancel() {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_cancel()
    }

    /// <p>Returns the default proposed drop action for this drag operation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::DropAction QDrag::defaultAction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#defaultAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the default proposed drop action for this drag operation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>() and <a href="http://doc.qt.io/qt-5/qdrag.html#supportedActions">supportedActions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn default_action(&self) -> ::qt_core::DropAction {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_defaultAction(self as *const crate::QDrag)
    }

    /// <p>Returns the drag cursor for the <i>action</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QDrag::dragCursor(Qt::DropAction action) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#dragCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the drag cursor for the <i>action</i>.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#setDragCursor">setDragCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn drag_cursor(
        &self,
        action: ::qt_core::DropAction,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QDrag_dragCursor(self as *const crate::QDrag, action);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in <i>supportedActions</i>. The default proposed action will be selected among the allowed actions in the following order: Move, Copy and Link.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::DropAction QDrag::exec(QFlags<Qt::DropAction> supportedActions = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#exec">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in <i>supportedActions</i>. The default proposed action will be selected among the allowed actions in the following order: Move, Copy and Link.</p>
    /// <p><b>Note:</b> On Linux and <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, the drag and drop operation can take some time, but this function does not block the event loop. Other events are still delivered to the application while the operation is performed. On Windows, the Qt event loop is blocked during the operation.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#cancel">cancel</a>().</p></div>
    #[inline(always)]
    pub unsafe fn exec_1a(
        &mut self,
        supported_actions: ::qt_core::QFlags<::qt_core::DropAction>,
    ) -> ::qt_core::DropAction {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_exec(
            self as *mut crate::QDrag,
            supported_actions.to_int(),
        )
    }

    /// <p>Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in <i>supportedActions</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::DropAction QDrag::exec(QFlags<Qt::DropAction> supportedActions, Qt::DropAction defaultAction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#exec-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in <i>supportedActions</i>.</p>
    /// <p>The <i>defaultDropAction</i> determines which action will be proposed when the user performs a drag without using modifier keys.</p>
    /// <p><b>Note:</b> On Linux and <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, the drag and drop operation can take some time, but this function does not block the event loop. Other events are still delivered to the application while the operation is performed. On Windows, the Qt event loop is blocked during the operation. However, <a href="http://doc.qt.io/qt-5/qdrag.html#exec">QDrag::exec</a>() on Windows causes processEvents() to be called frequently to keep the GUI responsive. If any loops or operations are called while a drag operation is active, it will block the drag operation.</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn exec_2a(
        &mut self,
        supported_actions: ::qt_core::QFlags<::qt_core::DropAction>,
        default_action: ::qt_core::DropAction,
    ) -> ::qt_core::DropAction {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_exec1(
            self as *mut crate::QDrag,
            supported_actions.to_int(),
            default_action,
        )
    }

    /// <p>Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in <i>supportedActions</i>. The default proposed action will be selected among the allowed actions in the following order: Move, Copy and Link.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::DropAction QDrag::exec()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#exec">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in <i>supportedActions</i>. The default proposed action will be selected among the allowed actions in the following order: Move, Copy and Link.</p>
    /// <p><b>Note:</b> On Linux and <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, the drag and drop operation can take some time, but this function does not block the event loop. Other events are still delivered to the application while the operation is performed. On Windows, the Qt event loop is blocked during the operation.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#cancel">cancel</a>().</p></div>
    #[inline(always)]
    pub unsafe fn exec_0a(&mut self) -> ::qt_core::DropAction {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_exec2(self as *mut crate::QDrag)
    }

    /// <p>Returns the position of the hot spot relative to the top-left corner of the cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QDrag::hotSpot() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#hotSpot">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of the hot spot relative to the top-left corner of the cursor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#setHotSpot">setHotSpot</a>().</p></div>
    #[inline(always)]
    pub unsafe fn hot_spot(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_hotSpot(self as *const crate::QDrag);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QDrag::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_metaObject(self as *const crate::QDrag);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the MIME data that is encapsulated by the drag object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMimeData* QDrag::mimeData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#mimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the MIME data that is encapsulated by the drag object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#setMimeData">setMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mime_data(&self) -> ::cpp_core::MutPtr<::qt_core::QMimeData> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_mimeData(self as *const crate::QDrag);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Constructs a new drag object for the widget specified by <i>dragSource</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDrag::QDrag(QObject* dragSource)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#QDrag">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new drag object for the widget specified by <i>dragSource</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        drag_source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QDrag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_QDrag(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(drag_source)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the pixmap used to represent the data in a drag and drop operation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QDrag::pixmap() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#pixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixmap used to represent the data in a drag and drop operation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#setPixmap">setPixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixmap(&self) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_pixmap(self as *const crate::QDrag);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QDrag::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_qt_metacall(
            self as *mut crate::QDrag,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QDrag::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_qt_metacast(
            self as *mut crate::QDrag,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the drag <i>cursor</i> for the <i>action</i>. This allows you to override the default native cursors. To revert to using the native cursor for <i>action</i> pass in a null <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> as <i>cursor</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDrag::setDragCursor(const QPixmap& cursor, Qt::DropAction action)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#setDragCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the drag <i>cursor</i> for the <i>action</i>. This allows you to override the default native cursors. To revert to using the native cursor for <i>action</i> pass in a null <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a> as <i>cursor</i>.</p>
    /// <p>The <i>action</i> can only be CopyAction, MoveAction or LinkAction. All other values of DropAction are ignored.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#dragCursor">dragCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_drag_cursor(
        &mut self,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        action: ::qt_core::DropAction,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_setDragCursor(
            self as *mut crate::QDrag,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(cursor).as_raw_ptr(),
            action,
        )
    }

    /// <p>Sets the position of the hot spot relative to the top-left corner of the pixmap used to the point specified by <i>hotspot</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDrag::setHotSpot(const QPoint& hotspot)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#setHotSpot">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the position of the hot spot relative to the top-left corner of the pixmap used to the point specified by <i>hotspot</i>.</p>
    /// <p><b>Note:</b> on X11, the pixmap may not be able to keep up with the mouse movements if the hot spot causes the pixmap to be displayed directly under the cursor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#hotSpot">hotSpot</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_hot_spot(
        &mut self,
        hotspot: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_setHotSpot(
            self as *mut crate::QDrag,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(hotspot)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the data to be sent to the given MIME <i>data</i>. Ownership of the data is transferred to the <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDrag::setMimeData(QMimeData* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#setMimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the data to be sent to the given MIME <i>data</i>. Ownership of the data is transferred to the <a href="http://doc.qt.io/qt-5/qdrag.html">QDrag</a> object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#mimeData">mimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mime_data(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QMimeData>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_setMimeData(
            self as *mut crate::QDrag,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QMimeData>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets <i>pixmap</i> as the pixmap used to represent the data in a drag and drop operation. You can only set a pixmap before the drag is started.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDrag::setPixmap(const QPixmap& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#setPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <i>pixmap</i> as the pixmap used to represent the data in a drag and drop operation. You can only set a pixmap before the drag is started.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#pixmap">pixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pixmap(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_setPixmap(
            self as *mut crate::QDrag,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the source of the drag object. This is the widget where the drag and drop operation originated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QObject* QDrag::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#source">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the source of the drag object. This is the widget where the drag and drop operation originated.</p></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_source(self as *const crate::QDrag);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p><b>Note:</b> It is recommended to use <a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>() instead of this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::DropAction QDrag::start(QFlags<Qt::DropAction> supportedActions = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag-obsolete.html#start">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Note:</b> It is recommended to use <a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>() instead of this function.</p>
    /// <p>Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in <i>request</i>. <a href="http://doc.qt.io/qt-5/qt.html#DropAction-enum">Qt::CopyAction</a> is always allowed.</p>
    /// <p><b>Note:</b> Although the drag and drop operation can take some time, this function does not block the event loop. Other events are still delivered to the application while the operation is performed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>().</p></div>
    #[inline(always)]
    pub unsafe fn start_1a(
        &mut self,
        supported_actions: ::qt_core::QFlags<::qt_core::DropAction>,
    ) -> ::qt_core::DropAction {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_start(
            self as *mut crate::QDrag,
            supported_actions.to_int(),
        )
    }

    /// <p><b>Note:</b> It is recommended to use <a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>() instead of this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::DropAction QDrag::start()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag-obsolete.html#start">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Note:</b> It is recommended to use <a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>() instead of this function.</p>
    /// <p>Starts the drag and drop operation and returns a value indicating the requested drop action when it is completed. The drop actions that the user can choose from are specified in <i>request</i>. <a href="http://doc.qt.io/qt-5/qt.html#DropAction-enum">Qt::CopyAction</a> is always allowed.</p>
    /// <p><b>Note:</b> Although the drag and drop operation can take some time, this function does not block the event loop. Other events are still delivered to the application while the operation is performed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>().</p></div>
    #[inline(always)]
    pub unsafe fn start_0a(&mut self) -> ::qt_core::DropAction {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_start1(self as *mut crate::QDrag)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the set of possible drop actions for this drag operation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::DropAction> QDrag::supportedActions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#supportedActions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the set of possible drop actions for this drag operation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdrag.html#exec">exec</a>() and <a href="http://doc.qt.io/qt-5/qdrag.html#defaultAction">defaultAction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supported_actions(&self) -> ::qt_core::QFlags<::qt_core::DropAction> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QDrag_supportedActions(self as *const crate::QDrag);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the target of the drag and drop operation. This is the widget where the drag object was dropped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QObject* QDrag::target() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#target">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the target of the drag and drop operation. This is the widget where the drag object was dropped.</p></div>
    #[inline(always)]
    pub unsafe fn target(&self) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_target(self as *const crate::QDrag);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QDrag::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QDrag::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDrag_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> class provides general information about fonts.</p>
///
/// C++ class: <span style='color: green;'>```QFontInfo```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfontinfo.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> class provides general information about fonts.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> class provides the same access functions as <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a>, e.g. <a href="http://doc.qt.io/qt-5/qfontinfo.html#family">family</a>(), <a href="http://doc.qt.io/qt-5/qfontinfo.html#pointSize">pointSize</a>(), <a href="http://doc.qt.io/qt-5/qfontinfo.html#italic">italic</a>(), <a href="http://doc.qt.io/qt-5/qfontinfo.html#weight">weight</a>(), <a href="http://doc.qt.io/qt-5/qfontinfo.html#fixedPitch">fixedPitch</a>(), <a href="http://doc.qt.io/qt-5/qfontinfo.html#styleHint">styleHint</a>() etc. But whilst the <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> access functions return the values that were set, a <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> object returns the values that apply to the font that will actually be used to draw the text.</p>
/// <p>For example, when the program asks for a 25pt Courier font on a machine that has a non-scalable 24pt Courier font, <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> will (normally) use the 24pt Courier for rendering. In this case, <a href="http://doc.qt.io/qt-5/qfont.html#pointSize">QFont::pointSize</a>() returns 25 and <a href="http://doc.qt.io/qt-5/qfontinfo.html#pointSize">QFontInfo::pointSize</a>() returns 24.</p>
/// <p>There are three ways to create a <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> object.</p>
/// <ol class="1" type="1"><li>Calling the <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> constructor with a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> creates a font info object for a screen-compatible font, i.e. the font cannot be a printer font. If the font is changed later, the font info object is <i>not</i> updated.<p>(Note: If you use a printer font the values returned may be inaccurate. Printer fonts are not always accessible so the nearest screen font is used if a printer font is supplied.)</p>
/// </li>
/// <li><a href="http://doc.qt.io/qt-5/qwidget.html#fontInfo">QWidget::fontInfo</a>() returns the font info for a widget's font. This is equivalent to calling <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a>(widget-&gt;<a href="http://doc.qt.io/qt-5/stylesheet-reference.html#font">font</a>()). If the widget's font is changed later, the font info object is <i>not</i> updated.</li>
/// <li><a href="http://doc.qt.io/qt-5/qpainter.html#fontInfo">QPainter::fontInfo</a>() returns the font info for a painter's current font. If the painter's font is changed later, the font info object is <i>not</i> updated.</li>
/// </ol></div>
#[repr(C)]
pub struct QFontInfo {
    _unused: u8,
}
impl QFontInfo {
    /// <p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qfontinfo.html#weight">weight</a>() would return a value greater than <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Normal</a>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontInfo::bold() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#bold">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qfontinfo.html#weight">weight</a>() would return a value greater than <a href="http://doc.qt.io/qt-5/qfont.html#Weight-enum">QFont::Normal</a>; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontinfo.html#weight">weight</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#bold">QFont::bold</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bold(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_bold(self as *const crate::QFontInfo)
    }

    /// <p>Assigns the font info in <i>fi</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontInfo& QFontInfo::operator=(const QFontInfo& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the font info in <i>fi</i>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontInfo>>,
    ) -> ::cpp_core::MutRef<crate::QFontInfo> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontInfo_operator_(
            self as *mut crate::QFontInfo,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontInfo>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the matched window system font is exactly the same as the one specified by the font; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontInfo::exactMatch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#exactMatch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the matched window system font is exactly the same as the one specified by the font; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#exactMatch">QFont::exactMatch</a>().</p></div>
    #[inline(always)]
    pub unsafe fn exact_match(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_exactMatch(self as *const crate::QFontInfo)
    }

    /// <p>Returns the family name of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFontInfo::family() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#family">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the family name of the matched window system font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#family">QFont::family</a>().</p></div>
    #[inline(always)]
    pub unsafe fn family(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFontInfo_family(self as *const crate::QFontInfo);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the fixed pitch value of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontInfo::fixedPitch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#fixedPitch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the fixed pitch value of the matched window system font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#fixedPitch">QFont::fixedPitch</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fixed_pitch(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_fixedPitch(self as *const crate::QFontInfo)
    }

    /// <p>Returns the italic value of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontInfo::italic() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#italic">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the italic value of the matched window system font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#italic">QFont::italic</a>().</p></div>
    #[inline(always)]
    pub unsafe fn italic(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_italic(self as *const crate::QFontInfo)
    }

    /// <p>Constructs a font info object for <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontInfo::QFontInfo(const QFont& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#QFontInfo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font info object for <i>font</i>.</p>
    /// <p>The font must be screen-compatible, i.e. a font you use when drawing text in <a href="http://doc.qt.io/qt-5/qwidget.html">widgets</a> or <a href="http://doc.qt.io/qt-5/qpixmap.html">pixmaps</a>, not <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> or QPrinter.</p>
    /// <p>The font info object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#fontInfo">QPainter::fontInfo</a>() to get the font info when painting. This will give correct results also when painting on paint device that is not screen-compatible.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::CppBox<crate::QFontInfo> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontInfo_QFontInfo(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>fi</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontInfo::QFontInfo(const QFontInfo& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#QFontInfo-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>fi</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontInfo>>,
    ) -> ::cpp_core::CppBox<crate::QFontInfo> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontInfo_QFontInfo1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontInfo>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QFontInfo::overline() const```</span>.
    #[inline(always)]
    pub unsafe fn overline(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_overline(self as *const crate::QFontInfo)
    }

    /// <p>Returns the pixel size of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontInfo::pixelSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#pixelSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixel size of the matched window system font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#pointSize">QFont::pointSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixel_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_pixelSize(self as *const crate::QFontInfo)
    }

    /// <p>Returns the point size of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontInfo::pointSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#pointSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the point size of the matched window system font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontinfo.html#pointSizeF">pointSizeF</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#pointSize">QFont::pointSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn point_size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_pointSize(self as *const crate::QFontInfo)
    }

    /// <p>Returns the point size of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontInfo::pointSizeF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#pointSizeF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the point size of the matched window system font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#pointSizeF">QFont::pointSizeF</a>().</p></div>
    #[inline(always)]
    pub unsafe fn point_size_f(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_pointSizeF(self as *const crate::QFontInfo)
    }

    /// <p>Returns <code>true</code> if the font is a raw mode font; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontInfo::rawMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo-obsolete.html#rawMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font is a raw mode font; otherwise returns false.</p>
    /// <p>If it is a raw mode font, all other functions in <a href="http://doc.qt.io/qt-5/qfontinfo.html">QFontInfo</a> will return the same values set in the <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a>, regardless of the font actually used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont-obsolete.html#rawMode">QFont::rawMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn raw_mode(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_rawMode(self as *const crate::QFontInfo)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QFontInfo::strikeOut() const```</span>.
    #[inline(always)]
    pub unsafe fn strike_out(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_strikeOut(self as *const crate::QFontInfo)
    }

    /// <p>Returns the style value of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::Style QFontInfo::style() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#style">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the style value of the matched window system font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#style">QFont::style</a>().</p></div>
    #[inline(always)]
    pub unsafe fn style(&self) -> crate::q_font::Style {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_style(self as *const crate::QFontInfo)
    }

    /// <p>Returns the style of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont::StyleHint QFontInfo::styleHint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#styleHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the style of the matched window system font.</p>
    /// <p>Currently only returns the style hint set in <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#styleHint">QFont::styleHint</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#StyleHint-enum">QFont::StyleHint</a>.</p></div>
    #[inline(always)]
    pub unsafe fn style_hint(&self) -> crate::q_font::StyleHint {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_styleHint(self as *const crate::QFontInfo)
    }

    /// <p>Returns the style name of the matched window system font on systems that support it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFontInfo::styleName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#styleName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the style name of the matched window system font on systems that support it.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#styleName">QFont::styleName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn style_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QFontInfo_styleName(self as *const crate::QFontInfo);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this font info instance with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFontInfo::swap(QFontInfo& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this font info instance with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontInfo>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_swap(
            self as *mut crate::QFontInfo,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontInfo>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QFontInfo::underline() const```</span>.
    #[inline(always)]
    pub unsafe fn underline(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_underline(self as *const crate::QFontInfo)
    }

    /// <p>Returns the weight of the matched window system font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontInfo::weight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#weight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the weight of the matched window system font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#weight">QFont::weight</a>() and <a href="http://doc.qt.io/qt-5/qfontinfo.html#bold">bold</a>().</p></div>
    #[inline(always)]
    pub unsafe fn weight(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_weight(self as *const crate::QFontInfo)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a> class provides font metrics information.</p>
///
/// C++ class: <span style='color: green;'>```QFontMetrics```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfontmetrics.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a> class provides font metrics information.</p>
/// <p><a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a> functions calculate the size of characters and strings for a given font. There are three ways you can create a <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a> object:</p>
/// <ol class="1" type="1"><li>Calling the <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a> constructor with a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> creates a font metrics object for a screen-compatible font, i.e. the font cannot be a printer font. If the font is changed later, the font metrics object is <i>not</i> updated.<p>(Note: If you use a printer font the values returned may be inaccurate. Printer fonts are not always accessible so the nearest screen font is used if a printer font is supplied.)</p>
/// </li>
/// <li><a href="http://doc.qt.io/qt-5/qwidget.html#fontMetrics">QWidget::fontMetrics</a>() returns the font metrics for a widget's font. This is equivalent to <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a>(widget-&gt;<a href="http://doc.qt.io/qt-5/stylesheet-reference.html#font">font</a>()). If the widget's font is changed later, the font metrics object is <i>not</i> updated.</li>
/// <li><a href="http://doc.qt.io/qt-5/qpainter.html#fontMetrics">QPainter::fontMetrics</a>() returns the font metrics for a painter's current font. If the painter's font is changed later, the font metrics object is <i>not</i> updated.</li>
/// </ol>
/// <p>Once created, the object provides functions to access the individual metrics of the font, its characters, and for strings rendered in the font.</p>
/// <p>There are several functions that operate on the font: <a href="http://doc.qt.io/qt-5/qfontmetrics.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#descent">descent</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#height">height</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leading">leading</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineSpacing">lineSpacing</a>() return the basic size properties of the font. The <a href="http://doc.qt.io/qt-5/qfontmetrics.html#underlinePos">underlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#overlinePos">overlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#strikeOutPos">strikeOutPos</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineWidth">lineWidth</a>() functions, return the properties of the line that underlines, overlines or strikes out the characters. These functions are all fast.</p>
/// <p>There are also some functions that operate on the set of glyphs in the font: <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minLeftBearing">minLeftBearing</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minRightBearing">minRightBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#maxWidth">maxWidth</a>(). These are by necessity slow, and we recommend avoiding them if possible.</p>
/// <p>For each character, you can get its <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leftBearing">leftBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#rightBearing">rightBearing</a>() and find out whether it is in the font using <a href="http://doc.qt.io/qt-5/qfontmetrics.html#inFont">inFont</a>(). You can also treat the character as a string, and use the string functions on it.</p>
/// <p>The string functions include <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>(), to return the width of a string in pixels (or points, for a printer), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>(), to return a rectangle large enough to contain the rendered string, and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#size">size</a>(), to return the size of that rectangle.</p>
/// <p>Example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> font(<span class="string">"times"</span><span class="operator">,</span> <span class="number">24</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfontmetrics.html#QFontMetrics">QFontMetrics</a></span> fm(font);
///   <span class="type">int</span> pixelsWide <span class="operator">=</span> fm<span class="operator">.</span>width(<span class="string">"What's the width of this text?"</span>);
///   <span class="type">int</span> pixelsHigh <span class="operator">=</span> fm<span class="operator">.</span>height();
///
/// </pre></div>
#[repr(C)]
pub struct QFontMetrics {
    _unused: u8,
}
impl QFontMetrics {
    /// <p>Returns the ascent of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::ascent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#ascent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the ascent of the font.</p>
    /// <p>The ascent of a font is the distance from the baseline to the highest position characters extend to. In practice, some font designers break this rule, e.g. when they put more than one accent on top of a character, or to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#descent">descent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ascent(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_ascent(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the average width of glyphs in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::averageCharWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#averageCharWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the average width of glyphs in the font.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn average_char_width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_averageCharWidth(
            self as *const crate::QFontMetrics,
        )
    }

    /// <p>Returns the rectangle that is covered by ink if character <i>ch</i> were to be drawn at the origin of the coordinate system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::boundingRect(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rectangle that is covered by ink if character <i>ch</i> were to be drawn at the origin of the coordinate system.</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0) (e.g., for italicized fonts), and that the text output may cover <i>all</i> pixels in the bounding rectangle. For a space character the rectangle will usually be empty.</p>
    /// <p>Note that the rectangle usually extends both above and below the base line.</p>
    /// <p><b>Warning:</b> The width of the returned rectangle is not the advance width of the character. Use boundingRect(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> &amp;) or <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_char(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_boundingRect(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the bounding rectangle of the characters in the string specified by <i>text</i>. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::boundingRect(const QString& text) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of the characters in the string specified by <i>text</i>. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the width of the returned rectangle might be different than what the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>() method returns.</p>
    /// <p>If you want to know the advance width of the string (to lay out a set of strings next to each other), use <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>() instead.</p>
    /// <p>Newline characters are processed as normal characters, <i>not</i> as linebreaks.</p>
    /// <p>The height of the bounding rectangle is at least as large as the value returned by <a href="http://doc.qt.io/qt-5/qfontmetrics.html#height">height</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#height">height</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">QPainter::boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#tightBoundingRect">tightBoundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_string(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_boundingRect1(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::boundingRect(const QRect& r, int flags, const QString& text, int tabstops = …, int* tabarray = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle of the characters in the string specified by <i>text</i>, which is the set of pixels the text would cover if drawn at (0, 0). The drawing, and hence the bounding rectangle, is constrained to the rectangle <i>rect</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> aligns to the left border, except for Arabic and Hebrew where it aligns to the right.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a> aligns to the right border, except for Arabic and Hebrew where it aligns to the left.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a> produces justified text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a> aligns horizontally centered.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a> aligns to the top border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a> aligns to the bottom border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a> aligns vertically centered</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a> (== <code>Qt::AlignHCenter | Qt::AlignVCenter</code>)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters in the text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#Orientation-enum">Qt::Horizontal</a> alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> and vertical alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a>.</p>
    /// <p>If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, then: if <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the text output may cover <i>all</i> pixels in the bounding rectangle.</p>
    /// <p>Newline characters are processed as linebreaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p>The bounding rectangle returned by this function is somewhat larger than that calculated by the simpler <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>() function. This function uses the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minLeftBearing">maximum left</a> and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minRightBearing">right</a> font bearings as is necessary for multi-line text to align correctly. Also, fontHeight() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineSpacing">lineSpacing</a>() are used to calculate the height, rather than individual character heights.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">QPainter::boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::Alignment</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_int_q_string_int_int(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
        tabarray: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_boundingRect2(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            tabstops,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(tabarray)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::boundingRect(int x, int y, int w, int h, int flags, const QString& text, int tabstops = …, int* tabarray = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle for the given <i>text</i> within the rectangle specified by the <i>x</i> and <i>y</i> coordinates, <i>width</i>, and <i>height</i>.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i> and <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise, if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_5_int_q_string_int_int(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
        tabarray: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_boundingRect3(
            self as *const crate::QFontMetrics,
            x,
            y,
            w,
            h,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            tabstops,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(tabarray)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::boundingRect(const QRect& r, int flags, const QString& text, int tabstops = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle of the characters in the string specified by <i>text</i>, which is the set of pixels the text would cover if drawn at (0, 0). The drawing, and hence the bounding rectangle, is constrained to the rectangle <i>rect</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> aligns to the left border, except for Arabic and Hebrew where it aligns to the right.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a> aligns to the right border, except for Arabic and Hebrew where it aligns to the left.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a> produces justified text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a> aligns horizontally centered.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a> aligns to the top border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a> aligns to the bottom border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a> aligns vertically centered</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a> (== <code>Qt::AlignHCenter | Qt::AlignVCenter</code>)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters in the text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#Orientation-enum">Qt::Horizontal</a> alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> and vertical alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a>.</p>
    /// <p>If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, then: if <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the text output may cover <i>all</i> pixels in the bounding rectangle.</p>
    /// <p>Newline characters are processed as linebreaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p>The bounding rectangle returned by this function is somewhat larger than that calculated by the simpler <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>() function. This function uses the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minLeftBearing">maximum left</a> and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minRightBearing">right</a> font bearings as is necessary for multi-line text to align correctly. Also, fontHeight() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineSpacing">lineSpacing</a>() are used to calculate the height, rather than individual character heights.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">QPainter::boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::Alignment</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_int_q_string_int(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_boundingRect4(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            tabstops,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::boundingRect(const QRect& r, int flags, const QString& text) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle of the characters in the string specified by <i>text</i>, which is the set of pixels the text would cover if drawn at (0, 0). The drawing, and hence the bounding rectangle, is constrained to the rectangle <i>rect</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> aligns to the left border, except for Arabic and Hebrew where it aligns to the right.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a> aligns to the right border, except for Arabic and Hebrew where it aligns to the left.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a> produces justified text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a> aligns horizontally centered.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a> aligns to the top border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a> aligns to the bottom border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a> aligns vertically centered</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a> (== <code>Qt::AlignHCenter | Qt::AlignVCenter</code>)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters in the text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#Orientation-enum">Qt::Horizontal</a> alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> and vertical alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a>.</p>
    /// <p>If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, then: if <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the text output may cover <i>all</i> pixels in the bounding rectangle.</p>
    /// <p>Newline characters are processed as linebreaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p>The bounding rectangle returned by this function is somewhat larger than that calculated by the simpler <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>() function. This function uses the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minLeftBearing">maximum left</a> and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minRightBearing">right</a> font bearings as is necessary for multi-line text to align correctly. Also, fontHeight() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineSpacing">lineSpacing</a>() are used to calculate the height, rather than individual character heights.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">QPainter::boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::Alignment</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_int_q_string(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_boundingRect5(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::boundingRect(int x, int y, int w, int h, int flags, const QString& text, int tabstops = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle for the given <i>text</i> within the rectangle specified by the <i>x</i> and <i>y</i> coordinates, <i>width</i>, and <i>height</i>.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i> and <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise, if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_5_int_q_string_int(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_boundingRect6(
            self as *const crate::QFontMetrics,
            x,
            y,
            w,
            h,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            tabstops,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::boundingRect(int x, int y, int w, int h, int flags, const QString& text) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle for the given <i>text</i> within the rectangle specified by the <i>x</i> and <i>y</i> coordinates, <i>width</i>, and <i>height</i>.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i> and <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise, if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_5_int_q_string(
        &self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_boundingRect7(
            self as *const crate::QFontMetrics,
            x,
            y,
            w,
            h,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the cap height of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::capHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#capHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cap height of the font.</p>
    /// <p>The cap height of a font is the height of a capital letter above the baseline. It specifically is the height of capital letters that are flat - such as H or I - as opposed to round letters such as O, or pointed letters like A, both of which may display overshoot.</p>
    /// <p>This function was introduced in  Qt 5.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#ascent">ascent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cap_height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_capHeight(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the width of the character at position <i>pos</i> in the string <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::charWidth(const QString& str, int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics-obsolete.html#charWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the character at position <i>pos</i> in the string <i>text</i>.</p>
    /// <p>The whole string is needed, as the glyph drawn may change depending on the context (the letter before and after the current one) for some languages (e.g. Arabic).</p>
    /// <p>This function also takes non spacing marks and ligatures into account.</p></div>
    #[inline(always)]
    pub unsafe fn char_width(
        &self,
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pos: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_charWidth(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
            pos,
        )
    }

    /// <p>Assigns the font metrics <i>fm</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontMetrics& QFontMetrics::operator=(const QFontMetrics& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the font metrics <i>fm</i>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontMetrics>>,
    ) -> ::cpp_core::MutRef<crate::QFontMetrics> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_operator_(
            self as *mut crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontMetrics>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the descent of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::descent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#descent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the descent of the font.</p>
    /// <p>The descent is the distance from the base line to the lowest point characters extend to. In practice, some font designers break this rule, e.g. to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#ascent">ascent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn descent(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_descent(self as *const crate::QFontMetrics)
    }

    /// <p>If the string <i>text</i> is wider than <i>width</i>, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFontMetrics::elidedText(const QString& text, Qt::TextElideMode mode, int width, int flags = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#elidedText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the string <i>text</i> is wider than <i>width</i>, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.</p>
    /// <p>The <i>mode</i> parameter specifies whether the text is elided on the left (e.g., "...tech"), in the middle (e.g., "Tr...ch"), or on the right (e.g., "Trol...").</p>
    /// <p>The <i>width</i> is specified in pixels, not characters.</p>
    /// <p>The <i>flags</i> argument is optional and currently only supports <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> as value.</p>
    /// <p>The elide mark follows the <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">layoutdirection</a>. For example, it will be on the right side of the text for right-to-left layouts if the <i>mode</i> is <code>Qt::ElideLeft</code>, and on the left side of the text if the <i>mode</i> is <code>Qt::ElideRight</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn elided_text_4a(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        mode: ::qt_core::TextElideMode,
        width: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_elidedText(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            mode,
            width,
            flags,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If the string <i>text</i> is wider than <i>width</i>, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFontMetrics::elidedText(const QString& text, Qt::TextElideMode mode, int width) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#elidedText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the string <i>text</i> is wider than <i>width</i>, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.</p>
    /// <p>The <i>mode</i> parameter specifies whether the text is elided on the left (e.g., "...tech"), in the middle (e.g., "Tr...ch"), or on the right (e.g., "Trol...").</p>
    /// <p>The <i>width</i> is specified in pixels, not characters.</p>
    /// <p>The <i>flags</i> argument is optional and currently only supports <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> as value.</p>
    /// <p>The elide mark follows the <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">layoutdirection</a>. For example, it will be on the right side of the text for right-to-left layouts if the <i>mode</i> is <code>Qt::ElideLeft</code>, and on the left side of the text if the <i>mode</i> is <code>Qt::ElideRight</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn elided_text_3a(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        mode: ::qt_core::TextElideMode,
        width: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_elidedText1(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            mode,
            width,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the height of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the font.</p>
    /// <p>This is always equal to <a href="http://doc.qt.io/qt-5/qfontmetrics.html#ascent">ascent</a>()+<a href="http://doc.qt.io/qt-5/qfontmetrics.html#descent">descent</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#leading">leading</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineSpacing">lineSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_height(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the horizontal advance in pixels of the first <i>len</i> characters of <i>text</i>. If <i>len</i> is negative (the default), the entire string is used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::horizontalAdvance(const QString& arg1, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#horizontalAdvance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal advance in pixels of the first <i>len</i> characters of <i>text</i>. If <i>len</i> is negative (the default), the entire string is used.</p>
    /// <p>This is the distance appropriate for drawing a subsequent character after <i>text</i>.</p>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn horizontal_advance_q_string_int(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        len: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_horizontalAdvance(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
            len,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::horizontalAdvance(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#horizontalAdvance-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/bearings.png" alt="Bearings"></p><p>Returns the horizontal advance of character <i>ch</i> in pixels. This is a distance appropriate for drawing a subsequent character after <i>ch</i>.</p>
    /// <p>Some of the metrics are described in the image. The central dark rectangles cover the logical <a href="http://doc.qt.io/qt-5/qfontmetrics.html#horizontalAdvance">horizontalAdvance</a>() of each character. The outer pale rectangles cover the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leftBearing">leftBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#rightBearing">rightBearing</a>() of each character. Notice that the bearings of "f" in this particular font are both negative, while the bearings of "o" are both positive.</p>
    /// <p><b>Warning:</b> This function will produce incorrect results for Arabic characters or non-spacing marks in the middle of a string, as the glyph shaping and positioning of marks that happens when processing strings cannot be taken into account. When implementing an interactive text control, use <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> instead.</p>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn horizontal_advance_q_char(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_horizontalAdvance1(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the horizontal advance in pixels of the first <i>len</i> characters of <i>text</i>. If <i>len</i> is negative (the default), the entire string is used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::horizontalAdvance(const QString& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#horizontalAdvance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal advance in pixels of the first <i>len</i> characters of <i>text</i>. If <i>len</i> is negative (the default), the entire string is used.</p>
    /// <p>This is the distance appropriate for drawing a subsequent character after <i>text</i>.</p>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn horizontal_advance_q_string(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_horizontalAdvance2(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if character <i>ch</i> is a valid character in the font; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontMetrics::inFont(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#inFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if character <i>ch</i> is a valid character in the font; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn in_font(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_inFont(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the character <i>ucs4</i> encoded in UCS-4/UTF-32 is a valid character in the font; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontMetrics::inFontUcs4(unsigned int ucs4) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#inFontUcs4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the character <i>ucs4</i> encoded in UCS-4/UTF-32 is a valid character in the font; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn in_font_ucs4(&self, ucs4: ::std::os::raw::c_uint) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_inFontUcs4(
            self as *const crate::QFontMetrics,
            ucs4,
        )
    }

    /// <p>Returns the leading of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::leading() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leading">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the leading of the font.</p>
    /// <p>This is the natural inter-line spacing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#height">height</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineSpacing">lineSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn leading(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_leading(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the left bearing of character <i>ch</i> in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::leftBearing(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leftBearing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the left bearing of character <i>ch</i> in the font.</p>
    /// <p>The left bearing is the right-ward distance of the left-most pixel of the character from the logical origin of the character. This value is negative if the pixels of the character extend to the left of the logical origin.</p>
    /// <p>See width(<a href="http://doc.qt.io/qt-5/qchar.html">QChar</a>) for a graphical description of this metric.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#rightBearing">rightBearing</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minLeftBearing">minLeftBearing</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn left_bearing(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_leftBearing(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the distance from one base line to the next.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::lineSpacing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from one base line to the next.</p>
    /// <p>This value is always equal to <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leading">leading</a>()+<a href="http://doc.qt.io/qt-5/qfontmetrics.html#height">height</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#height">height</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leading">leading</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_spacing(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_lineSpacing(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the width of the underline and strikeout lines, adjusted for the point size of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::lineWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the underline and strikeout lines, adjusted for the point size of the font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#underlinePos">underlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#overlinePos">overlinePos</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#strikeOutPos">strikeOutPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_lineWidth(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the width of the widest character in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::maxWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#maxWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the widest character in the font.</p></div>
    #[inline(always)]
    pub unsafe fn max_width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_maxWidth(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the minimum left bearing of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::minLeftBearing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minLeftBearing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum left bearing of the font.</p>
    /// <p>This is the smallest <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leftBearing">leftBearing</a>(char) of all characters in the font.</p>
    /// <p>Note that this function can be very slow if the font is large.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#minRightBearing">minRightBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leftBearing">leftBearing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn min_left_bearing(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_minLeftBearing(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the minimum right bearing of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::minRightBearing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minRightBearing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum right bearing of the font.</p>
    /// <p>This is the smallest <a href="http://doc.qt.io/qt-5/qfontmetrics.html#rightBearing">rightBearing</a>(char) of all characters in the font.</p>
    /// <p>Note that this function can be very slow if the font is large.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#minLeftBearing">minLeftBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#rightBearing">rightBearing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn min_right_bearing(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_minRightBearing(
            self as *const crate::QFontMetrics,
        )
    }

    /// <p>Constructs a font metrics object for <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontMetrics::QFontMetrics(const QFont& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#QFontMetrics">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font metrics object for <i>font</i>.</p>
    /// <p>The font metrics will be compatible with the paintdevice used to create <i>font</i>.</p>
    /// <p>The font metrics object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qfontmetrics.html">QFontMetrics</a>(const <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> &amp;, <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> *) to get the font metrics that are compatible with a certain paint device.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::CppBox<crate::QFontMetrics> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_QFontMetrics(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font metrics object for <i>font</i> and <i>paintdevice</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontMetrics::QFontMetrics(const QFont& arg1, QPaintDevice* pd)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#QFontMetrics-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font metrics object for <i>font</i> and <i>paintdevice</i>.</p>
    /// <p>The font metrics will be compatible with the paintdevice passed. If the <i>paintdevice</i> is 0, the metrics will be screen-compatible, ie. the metrics you get if you use the font for drawing text on a <a href="http://doc.qt.io/qt-5/qwidget.html">widgets</a> or <a href="http://doc.qt.io/qt-5/qpixmap.html">pixmaps</a>, not on a <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> or QPrinter.</p>
    /// <p>The font metrics object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        pd: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) -> ::cpp_core::CppBox<crate::QFontMetrics> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_QFontMetrics1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(pd)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>fm</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontMetrics::QFontMetrics(const QFontMetrics& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#QFontMetrics-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>fm</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontMetrics>>,
    ) -> ::cpp_core::CppBox<crate::QFontMetrics> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_QFontMetrics2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontMetrics>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the distance from the base line to where an overline should be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::overlinePos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#overlinePos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from the base line to where an overline should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#underlinePos">underlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#strikeOutPos">strikeOutPos</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineWidth">lineWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn overline_pos(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_overlinePos(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the right bearing of character <i>ch</i> in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::rightBearing(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#rightBearing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the right bearing of character <i>ch</i> in the font.</p>
    /// <p>The right bearing is the left-ward distance of the right-most pixel of the character from the logical origin of a subsequent character. This value is negative if the pixels of the character extend to the right of the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>() of the character.</p>
    /// <p>See <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>() for a graphical description of this metric.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#leftBearing">leftBearing</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#minRightBearing">minRightBearing</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn right_bearing(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_rightBearing(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the size in pixels of <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QFontMetrics::size(int flags, const QString& str, int tabstops = …, int* tabarray = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size in pixels of <i>text</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, then: if <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p>
    /// <p>Newline characters are processed as linebreaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size_4a(
        &self,
        flags: ::std::os::raw::c_int,
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
        tabarray: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_size(
            self as *const crate::QFontMetrics,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
            tabstops,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(tabarray)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size in pixels of <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QFontMetrics::size(int flags, const QString& str, int tabstops = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size in pixels of <i>text</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, then: if <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p>
    /// <p>Newline characters are processed as linebreaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size_3a(
        &self,
        flags: ::std::os::raw::c_int,
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_size1(
            self as *const crate::QFontMetrics,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
            tabstops,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size in pixels of <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QFontMetrics::size(int flags, const QString& str) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size in pixels of <i>text</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, then: if <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs; otherwise if <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</p>
    /// <p>Newline characters are processed as linebreaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size_2a(
        &self,
        flags: ::std::os::raw::c_int,
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_size2(
            self as *const crate::QFontMetrics,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the distance from the base line to where the strikeout line should be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::strikeOutPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#strikeOutPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from the base line to where the strikeout line should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#underlinePos">underlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#overlinePos">overlinePos</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineWidth">lineWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn strike_out_pos(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_strikeOutPos(self as *const crate::QFontMetrics)
    }

    /// <p>Swaps this font metrics instance with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFontMetrics::swap(QFontMetrics& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this font metrics instance with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontMetrics>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_swap(
            self as *mut crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontMetrics>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns a tight bounding rectangle around the characters in the string specified by <i>text</i>. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QFontMetrics::tightBoundingRect(const QString& text) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#tightBoundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a tight bounding rectangle around the characters in the string specified by <i>text</i>. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the width of the returned rectangle might be different than what the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>() method returns.</p>
    /// <p>If you want to know the advance width of the string (to lay out a set of strings next to each other), use <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>() instead.</p>
    /// <p>Newline characters are processed as normal characters, <i>not</i> as linebreaks.</p>
    /// <p><b>Warning:</b> Calling this method is very slow on Windows.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tight_bounding_rect(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_tightBoundingRect(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the distance from the base line to where an underscore should be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::underlinePos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#underlinePos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from the base line to where an underscore should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#overlinePos">overlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetrics.html#strikeOutPos">strikeOutPos</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#lineWidth">lineWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn underline_pos(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_underlinePos(self as *const crate::QFontMetrics)
    }

    /// <p>Returns the width in pixels of the first <i>len</i> characters of <i>text</i>. If <i>len</i> is negative (the default), the entire string is used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::width(const QString& arg1, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width in pixels of the first <i>len</i> characters of <i>text</i>. If <i>len</i> is negative (the default), the entire string is used.</p>
    /// <p>Note that this value is <i>not</i> equal to <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().width(); <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>() returns a rectangle describing the pixels this string will cover whereas width() returns the distance to where the next string should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width_q_string_int(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        len: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_width(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
            len,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::width(const QString& arg1, int len, int flags) const```</span>.
    #[inline(always)]
    pub unsafe fn width_q_string2_int(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        len: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_width1(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
            len,
            flags,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::width(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/bearings.png" alt="Bearings"></p><p>Returns the logical width of character <i>ch</i> in pixels. This is a distance appropriate for drawing a subsequent character after <i>ch</i>.</p>
    /// <p>Some of the metrics are described in the image to the right. The central dark rectangles cover the logical <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">width</a>() of each character. The outer pale rectangles cover the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#leftBearing">leftBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetrics.html#rightBearing">rightBearing</a>() of each character. Notice that the bearings of "f" in this particular font are both negative, while the bearings of "o" are both positive.</p>
    /// <p><b>Warning:</b> This function will produce incorrect results for Arabic characters or non-spacing marks in the middle of a string, as the glyph shaping and positioning of marks that happens when processing strings cannot be taken into account. When implementing an interactive text control, use <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width_q_char(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_width2(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the width in pixels of the first <i>len</i> characters of <i>text</i>. If <i>len</i> is negative (the default), the entire string is used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::width(const QString& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width in pixels of the first <i>len</i> characters of <i>text</i>. If <i>len</i> is negative (the default), the entire string is used.</p>
    /// <p>Note that this value is <i>not</i> equal to <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().width(); <a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>() returns a rectangle describing the pixels this string will cover whereas width() returns the distance to where the next string should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width_q_string(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_width3(
            self as *const crate::QFontMetrics,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the 'x' height of the font. This is often but not always the same as the height of the character 'x'.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QFontMetrics::xHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#xHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 'x' height of the font. This is often but not always the same as the height of the character 'x'.</p></div>
    #[inline(always)]
    pub unsafe fn x_height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_xHeight(self as *const crate::QFontMetrics)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qfontmetricsf.html">QFontMetricsF</a> class provides font metrics information.</p>
///
/// C++ class: <span style='color: green;'>```QFontMetricsF```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfontmetricsf.html">QFontMetricsF</a> class provides font metrics information.</p>
/// <p><a href="http://doc.qt.io/qt-5/qfontmetricsf.html">QFontMetricsF</a> functions calculate the size of characters and strings for a given font. You can construct a <a href="http://doc.qt.io/qt-5/qfontmetricsf.html">QFontMetricsF</a> object with an existing <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> to obtain metrics for that font. If the font is changed later, the font metrics object is <i>not</i> updated.</p>
/// <p>Once created, the object provides functions to access the individual metrics of the font, its characters, and for strings rendered in the font.</p>
/// <p>There are several functions that operate on the font: <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#ascent">ascent</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#descent">descent</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#height">height</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leading">leading</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineSpacing">lineSpacing</a>() return the basic size properties of the font. The <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#underlinePos">underlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#overlinePos">overlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#strikeOutPos">strikeOutPos</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineWidth">lineWidth</a>() functions, return the properties of the line that underlines, overlines or strikes out the characters. These functions are all fast.</p>
/// <p>There are also some functions that operate on the set of glyphs in the font: <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minLeftBearing">minLeftBearing</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minRightBearing">minRightBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#maxWidth">maxWidth</a>(). These are by necessity slow, and we recommend avoiding them if possible.</p>
/// <p>For each character, you can get its <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leftBearing">leftBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#rightBearing">rightBearing</a>() and find out whether it is in the font using <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#inFont">inFont</a>(). You can also treat the character as a string, and use the string functions on it.</p>
/// <p>The string functions include <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>(), to return the width of a string in pixels (or points, for a printer), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>(), to return a rectangle large enough to contain the rendered string, and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#size">size</a>(), to return the size of that rectangle.</p>
/// <p>Example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> font(<span class="string">"times"</span><span class="operator">,</span> <span class="number">24</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#QFontMetricsF">QFontMetricsF</a></span> fm(font);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span> pixelsWide <span class="operator">=</span> fm<span class="operator">.</span>width(<span class="string">"What's the width of this text?"</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span> pixelsHigh <span class="operator">=</span> fm<span class="operator">.</span>height();
///
/// </pre></div>
#[repr(C)]
pub struct QFontMetricsF {
    _unused: u8,
}
impl QFontMetricsF {
    /// <p>Returns the ascent of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::ascent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#ascent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the ascent of the font.</p>
    /// <p>The ascent of a font is the distance from the baseline to the highest position characters extend to. In practice, some font designers break this rule, e.g. when they put more than one accent on top of a character, or to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#descent">descent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ascent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_ascent(self as *const crate::QFontMetricsF)
    }

    /// <p>Returns the average width of glyphs in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::averageCharWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#averageCharWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the average width of glyphs in the font.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn average_char_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_averageCharWidth(
            self as *const crate::QFontMetricsF,
        )
    }

    /// <p>Returns the bounding rectangle of the characters in the string specified by <i>text</i>. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QFontMetricsF::boundingRect(const QString& string) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of the characters in the string specified by <i>text</i>. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the width of the returned rectangle might be different than what the <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>() method returns.</p>
    /// <p>If you want to know the advance width of the string (to lay out a set of strings next to each other), use <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>() instead.</p>
    /// <p>Newline characters are processed as normal characters, <i>not</i> as linebreaks.</p>
    /// <p>The height of the bounding rectangle is at least as large as the value returned <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#height">height</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">QPainter::boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_string(
        &self,
        string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_boundingRect(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(string)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the bounding rectangle of the character <i>ch</i> relative to the left-most point on the base line.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QFontMetricsF::boundingRect(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of the character <i>ch</i> relative to the left-most point on the base line.</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the text output may cover <i>all</i> pixels in the bounding rectangle.</p>
    /// <p>Note that the rectangle usually extends both above and below the base line.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_char(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_boundingRect1(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QFontMetricsF::boundingRect(const QRectF& r, int flags, const QString& string, int tabstops = …, int* tabarray = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle of the characters in the given <i>text</i>. This is the set of pixels the text would cover if drawn when constrained to the bounding rectangle specified by <i>rect</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> aligns to the left border, except for Arabic and Hebrew where it aligns to the right.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a> aligns to the right border, except for Arabic and Hebrew where it aligns to the left.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a> produces justified text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a> aligns horizontally centered.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a> aligns to the top border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a> aligns to the bottom border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a> aligns vertically centered</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a> (== <code>Qt::AlignHCenter | Qt::AlignVCenter</code>)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters in the text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#Orientation-enum">Qt::Horizontal</a> alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> and vertical alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a>.</p>
    /// <p>If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.</p>
    /// <p>These flags are defined in <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a>.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, the following behavior is used to interpret tab characters in the text:</p>
    /// <ul>
    /// <li>If <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.</li>
    /// <li>If <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</li>
    /// </ul>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts.</p>
    /// <p>Newline characters are processed as line breaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p>The bounding rectangle returned by this function is somewhat larger than that calculated by the simpler <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>() function. This function uses the <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minLeftBearing">maximum left</a> and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minRightBearing">right</a> font bearings as is necessary for multi-line text to align correctly. Also, fontHeight() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineSpacing">lineSpacing</a>() are used to calculate the height, rather than individual character heights.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">QPainter::boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::Alignment</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_f_int_q_string_int_int(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::std::os::raw::c_int,
        string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
        tabarray: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_boundingRect2(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(string)
                .as_raw_ptr(),
            tabstops,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(tabarray)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QFontMetricsF::boundingRect(const QRectF& r, int flags, const QString& string, int tabstops = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle of the characters in the given <i>text</i>. This is the set of pixels the text would cover if drawn when constrained to the bounding rectangle specified by <i>rect</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> aligns to the left border, except for Arabic and Hebrew where it aligns to the right.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a> aligns to the right border, except for Arabic and Hebrew where it aligns to the left.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a> produces justified text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a> aligns horizontally centered.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a> aligns to the top border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a> aligns to the bottom border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a> aligns vertically centered</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a> (== <code>Qt::AlignHCenter | Qt::AlignVCenter</code>)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters in the text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#Orientation-enum">Qt::Horizontal</a> alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> and vertical alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a>.</p>
    /// <p>If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.</p>
    /// <p>These flags are defined in <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a>.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, the following behavior is used to interpret tab characters in the text:</p>
    /// <ul>
    /// <li>If <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.</li>
    /// <li>If <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</li>
    /// </ul>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts.</p>
    /// <p>Newline characters are processed as line breaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p>The bounding rectangle returned by this function is somewhat larger than that calculated by the simpler <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>() function. This function uses the <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minLeftBearing">maximum left</a> and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minRightBearing">right</a> font bearings as is necessary for multi-line text to align correctly. Also, fontHeight() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineSpacing">lineSpacing</a>() are used to calculate the height, rather than individual character heights.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">QPainter::boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::Alignment</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_f_int_q_string_int(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::std::os::raw::c_int,
        string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_boundingRect3(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(string)
                .as_raw_ptr(),
            tabstops,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QFontMetricsF::boundingRect(const QRectF& r, int flags, const QString& string) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle of the characters in the given <i>text</i>. This is the set of pixels the text would cover if drawn when constrained to the bounding rectangle specified by <i>rect</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> aligns to the left border, except for Arabic and Hebrew where it aligns to the right.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a> aligns to the right border, except for Arabic and Hebrew where it aligns to the left.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a> produces justified text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a> aligns horizontally centered.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a> aligns to the top border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a> aligns to the bottom border.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a> aligns vertically centered</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a> (== <code>Qt::AlignHCenter | Qt::AlignVCenter</code>)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters in the text.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#Orientation-enum">Qt::Horizontal</a> alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a> and vertical alignment defaults to <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a>.</p>
    /// <p>If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.</p>
    /// <p>These flags are defined in <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a>.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, the following behavior is used to interpret tab characters in the text:</p>
    /// <ul>
    /// <li>If <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.</li>
    /// <li>If <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</li>
    /// </ul>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts.</p>
    /// <p>Newline characters are processed as line breaks.</p>
    /// <p>Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p>The bounding rectangle returned by this function is somewhat larger than that calculated by the simpler <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>() function. This function uses the <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minLeftBearing">maximum left</a> and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minRightBearing">right</a> font bearings as is necessary for multi-line text to align correctly. Also, fontHeight() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineSpacing">lineSpacing</a>() are used to calculate the height, rather than individual character heights.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">QPainter::boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::Alignment</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_f_int_q_string(
        &self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::std::os::raw::c_int,
        string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_boundingRect4(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(string)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the cap height of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::capHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#capHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cap height of the font.</p>
    /// <p>The cap height of a font is the height of a capital letter above the baseline. It specifically is the height of capital letters that are flat - such as H or I - as opposed to round letters such as O, or pointed letters like A, both of which may display overshoot.</p>
    /// <p>This function was introduced in  Qt 5.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#ascent">ascent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cap_height(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_capHeight(self as *const crate::QFontMetricsF)
    }

    /// <p>Assigns the font metrics <i>fm</i> to this font metrics object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontMetricsF& QFontMetricsF::operator=(const QFontMetricsF& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the font metrics <i>fm</i> to this font metrics object.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from_q_font_metrics_f(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontMetricsF>>,
    ) -> ::cpp_core::MutRef<crate::QFontMetricsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_operator_(
            self as *mut crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontMetricsF>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>other</i> to this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontMetricsF& QFontMetricsF::operator=(const QFontMetrics& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this object.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from_q_font_metrics(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontMetrics>>,
    ) -> ::cpp_core::MutRef<crate::QFontMetricsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_operator_1(
            self as *mut crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontMetrics>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the descent of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::descent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#descent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the descent of the font.</p>
    /// <p>The descent is the distance from the base line to the lowest point characters extend to. (Note that this is different from X, which adds 1 pixel.) In practice, some font designers break this rule, e.g. to accommodate an unusual character in an exotic language, so it is possible (though rare) that this value will be too small.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#ascent">ascent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn descent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_descent(self as *const crate::QFontMetricsF)
    }

    /// <p>If the string <i>text</i> is wider than <i>width</i>, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFontMetricsF::elidedText(const QString& text, Qt::TextElideMode mode, double width, int flags = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#elidedText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the string <i>text</i> is wider than <i>width</i>, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.</p>
    /// <p>The <i>mode</i> parameter specifies whether the text is elided on the left (for example, "...tech"), in the middle (for example, "Tr...ch"), or on the right (for example, "Trol...").</p>
    /// <p>The <i>width</i> is specified in pixels, not characters.</p>
    /// <p>The <i>flags</i> argument is optional and currently only supports <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> as value.</p>
    /// <p>The elide mark follows the <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">layoutdirection</a>. For example, it will be on the right side of the text for right-to-left layouts if the <i>mode</i> is <code>Qt::ElideLeft</code>, and on the left side of the text if the <i>mode</i> is <code>Qt::ElideRight</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn elided_text_4a(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        mode: ::qt_core::TextElideMode,
        width: ::std::os::raw::c_double,
        flags: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_elidedText(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            mode,
            width,
            flags,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If the string <i>text</i> is wider than <i>width</i>, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QFontMetricsF::elidedText(const QString& text, Qt::TextElideMode mode, double width) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#elidedText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the string <i>text</i> is wider than <i>width</i>, returns an elided version of the string (i.e., a string with "..." in it). Otherwise, returns the original string.</p>
    /// <p>The <i>mode</i> parameter specifies whether the text is elided on the left (for example, "...tech"), in the middle (for example, "Tr...ch"), or on the right (for example, "Trol...").</p>
    /// <p>The <i>width</i> is specified in pixels, not characters.</p>
    /// <p>The <i>flags</i> argument is optional and currently only supports <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> as value.</p>
    /// <p>The elide mark follows the <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">layoutdirection</a>. For example, it will be on the right side of the text for right-to-left layouts if the <i>mode</i> is <code>Qt::ElideLeft</code>, and on the left side of the text if the <i>mode</i> is <code>Qt::ElideRight</code>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn elided_text_3a(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        mode: ::qt_core::TextElideMode,
        width: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_elidedText1(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            mode,
            width,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the height of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the font.</p>
    /// <p>This is always equal to <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#ascent">ascent</a>()+<a href="http://doc.qt.io/qt-5/qfontmetricsf.html#descent">descent</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leading">leading</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineSpacing">lineSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_height(self as *const crate::QFontMetricsF)
    }

    /// <p>Returns the horizontal advance in pixels of the first <i>length</i> characters of <i>text</i>. If <i>length</i> is negative (the default), the entire string is used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::horizontalAdvance(const QString& string, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#horizontalAdvance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal advance in pixels of the first <i>length</i> characters of <i>text</i>. If <i>length</i> is negative (the default), the entire string is used.</p>
    /// <p>The advance is the distance appropriate for drawing a subsequent character after <i>text</i>.</p>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn horizontal_advance_q_string_int(
        &self,
        string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        length: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_horizontalAdvance(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(string)
                .as_raw_ptr(),
            length,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::horizontalAdvance(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#horizontalAdvance-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/bearings.png" alt="Bearings"></p><p>Returns the horizontal advance of character <i>ch</i> in pixels. This is a distance appropriate for drawing a subsequent character after <i>ch</i>.</p>
    /// <p>Some of the metrics are described in the image to the right. The central dark rectangles cover the logical width() of each character. The outer pale rectangles cover the <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leftBearing">leftBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#rightBearing">rightBearing</a>() of each character. Notice that the bearings of "f" in this particular font are both negative, while the bearings of "o" are both positive.</p>
    /// <p><b>Warning:</b> This function will produce incorrect results for Arabic characters or non-spacing marks in the middle of a string, as the glyph shaping and positioning of marks that happens when processing strings cannot be taken into account. When implementing an interactive text control, use <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> instead.</p>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn horizontal_advance_q_char(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_horizontalAdvance1(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the horizontal advance in pixels of the first <i>length</i> characters of <i>text</i>. If <i>length</i> is negative (the default), the entire string is used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::horizontalAdvance(const QString& string) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#horizontalAdvance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal advance in pixels of the first <i>length</i> characters of <i>text</i>. If <i>length</i> is negative (the default), the entire string is used.</p>
    /// <p>The advance is the distance appropriate for drawing a subsequent character after <i>text</i>.</p>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn horizontal_advance_q_string(
        &self,
        string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_horizontalAdvance2(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(string)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if character <i>ch</i> is a valid character in the font; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontMetricsF::inFont(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#inFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if character <i>ch</i> is a valid character in the font; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn in_font(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_inFont(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the character given by <i>ch</i>, encoded in UCS-4/UTF-32, is a valid character in the font; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontMetricsF::inFontUcs4(unsigned int ucs4) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#inFontUcs4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the character given by <i>ch</i>, encoded in UCS-4/UTF-32, is a valid character in the font; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn in_font_ucs4(&self, ucs4: ::std::os::raw::c_uint) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_inFontUcs4(
            self as *const crate::QFontMetricsF,
            ucs4,
        )
    }

    /// <p>Returns the leading of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::leading() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leading">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the leading of the font.</p>
    /// <p>This is the natural inter-line spacing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#height">height</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineSpacing">lineSpacing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn leading(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_leading(self as *const crate::QFontMetricsF)
    }

    /// <p>Returns the left bearing of character <i>ch</i> in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::leftBearing(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leftBearing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the left bearing of character <i>ch</i> in the font.</p>
    /// <p>The left bearing is the right-ward distance of the left-most pixel of the character from the logical origin of the character. This value is negative if the pixels of the character extend to the left of the logical origin.</p>
    /// <p>See width(<a href="http://doc.qt.io/qt-5/qchar.html">QChar</a>) for a graphical description of this metric.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#rightBearing">rightBearing</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minLeftBearing">minLeftBearing</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn left_bearing(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_leftBearing(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the distance from one base line to the next.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::lineSpacing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineSpacing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from one base line to the next.</p>
    /// <p>This value is always equal to <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leading">leading</a>()+<a href="http://doc.qt.io/qt-5/qfontmetricsf.html#height">height</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#height">height</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leading">leading</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_spacing(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_lineSpacing(self as *const crate::QFontMetricsF)
    }

    /// <p>Returns the width of the underline and strikeout lines, adjusted for the point size of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::lineWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the underline and strikeout lines, adjusted for the point size of the font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#underlinePos">underlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#overlinePos">overlinePos</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#strikeOutPos">strikeOutPos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_lineWidth(self as *const crate::QFontMetricsF)
    }

    /// <p>Returns the width of the widest character in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::maxWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#maxWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the widest character in the font.</p></div>
    #[inline(always)]
    pub unsafe fn max_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_maxWidth(self as *const crate::QFontMetricsF)
    }

    /// <p>Returns the minimum left bearing of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::minLeftBearing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minLeftBearing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum left bearing of the font.</p>
    /// <p>This is the smallest <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leftBearing">leftBearing</a>(char) of all characters in the font.</p>
    /// <p>Note that this function can be very slow if the font is large.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minRightBearing">minRightBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leftBearing">leftBearing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn min_left_bearing(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_minLeftBearing(
            self as *const crate::QFontMetricsF,
        )
    }

    /// <p>Returns the minimum right bearing of the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::minRightBearing() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minRightBearing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum right bearing of the font.</p>
    /// <p>This is the smallest <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#rightBearing">rightBearing</a>(char) of all characters in the font.</p>
    /// <p>Note that this function can be very slow if the font is large.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minLeftBearing">minLeftBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#rightBearing">rightBearing</a>().</p></div>
    #[inline(always)]
    pub unsafe fn min_right_bearing(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_minRightBearing(
            self as *const crate::QFontMetricsF,
        )
    }

    /// <p>Constructs a font metrics object for <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontMetricsF::QFontMetricsF(const QFont& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#QFontMetricsF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font metrics object for <i>font</i>.</p>
    /// <p>The font metrics will be compatible with the paintdevice used to create <i>font</i>.</p>
    /// <p>The font metrics object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qfontmetricsf.html">QFontMetricsF</a>(const <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> &amp;, <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> *) to get the font metrics that are compatible with a certain paint device.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_font(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) -> ::cpp_core::CppBox<crate::QFontMetricsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_QFontMetricsF(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font metrics object for <i>font</i> and <i>paintdevice</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontMetricsF::QFontMetricsF(const QFont& arg1, QPaintDevice* pd)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#QFontMetricsF-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font metrics object for <i>font</i> and <i>paintdevice</i>.</p>
    /// <p>The font metrics will be compatible with the paintdevice passed. If the <i>paintdevice</i> is 0, the metrics will be screen-compatible, ie. the metrics you get if you use the font for drawing text on a <a href="http://doc.qt.io/qt-5/qwidget.html">widgets</a> or <a href="http://doc.qt.io/qt-5/qpixmap.html">pixmaps</a>, not on a <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> or QPrinter.</p>
    /// <p>The font metrics object holds the information for the font that is passed in the constructor at the time it is created, and is not updated if the font's attributes are changed later.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_font_q_paint_device(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
        pd: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) -> ::cpp_core::CppBox<crate::QFontMetricsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_QFontMetricsF1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(pd)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a font metrics object with floating point precision from the given <i>fontMetrics</i> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontMetricsF::QFontMetricsF(const QFontMetrics& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#QFontMetricsF-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a font metrics object with floating point precision from the given <i>fontMetrics</i> object.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_font_metrics(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontMetrics>>,
    ) -> ::cpp_core::CppBox<crate::QFontMetricsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_QFontMetricsF2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontMetrics>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>fm</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QFontMetricsF::QFontMetricsF(const QFontMetricsF& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#QFontMetricsF-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>fm</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFontMetricsF>>,
    ) -> ::cpp_core::CppBox<crate::QFontMetricsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_QFontMetricsF3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFontMetricsF>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the distance from the base line to where an overline should be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::overlinePos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#overlinePos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from the base line to where an overline should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#underlinePos">underlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#strikeOutPos">strikeOutPos</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineWidth">lineWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn overline_pos(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_overlinePos(self as *const crate::QFontMetricsF)
    }

    /// <p>Returns the right bearing of character <i>ch</i> in the font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::rightBearing(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#rightBearing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the right bearing of character <i>ch</i> in the font.</p>
    /// <p>The right bearing is the left-ward distance of the right-most pixel of the character from the logical origin of a subsequent character. This value is negative if the pixels of the character extend to the right of the <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>() of the character.</p>
    /// <p>See <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>() for a graphical description of this metric.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leftBearing">leftBearing</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#minRightBearing">minRightBearing</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn right_bearing(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_rightBearing(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the size in pixels of the characters in the given <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QFontMetricsF::size(int flags, const QString& str, int tabstops = …, int* tabarray = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size in pixels of the characters in the given <i>text</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p>These flags are defined in the <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a> enum.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, the following behavior is used to interpret tab characters in the text:</p>
    /// <ul>
    /// <li>If <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.</li>
    /// <li>If <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</li>
    /// </ul>
    /// <p>Newline characters are processed as line breaks.</p>
    /// <p>Note: Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size_4a(
        &self,
        flags: ::std::os::raw::c_int,
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
        tabarray: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_size(
            self as *const crate::QFontMetricsF,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
            tabstops,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(tabarray)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size in pixels of the characters in the given <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QFontMetricsF::size(int flags, const QString& str, int tabstops = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size in pixels of the characters in the given <i>text</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p>These flags are defined in the <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a> enum.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, the following behavior is used to interpret tab characters in the text:</p>
    /// <ul>
    /// <li>If <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.</li>
    /// <li>If <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</li>
    /// </ul>
    /// <p>Newline characters are processed as line breaks.</p>
    /// <p>Note: Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size_3a(
        &self,
        flags: ::std::os::raw::c_int,
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tabstops: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_size1(
            self as *const crate::QFontMetricsF,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
            tabstops,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size in pixels of the characters in the given <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QFontMetricsF::size(int flags, const QString& str) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size in pixels of the characters in the given <i>text</i>.</p>
    /// <p>The <i>flags</i> argument is the bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a> ignores newline characters.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> expands tabs (see below)</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a> interprets "&amp;x" as <u>x</u>; i.e., underlined.</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a> breaks the text to fit the rectangle.</li>
    /// </ul>
    /// <p>These flags are defined in the <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a> enum.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a> is set in <i>flags</i>, the following behavior is used to interpret tab characters in the text:</p>
    /// <ul>
    /// <li>If <i>tabArray</i> is non-null, it specifies a 0-terminated sequence of pixel-positions for tabs in the text.</li>
    /// <li>If <i>tabStops</i> is non-zero, it is used as the tab spacing (in pixels).</li>
    /// </ul>
    /// <p>Newline characters are processed as line breaks.</p>
    /// <p>Note: Despite the different actual character heights, the heights of the bounding rectangles of "Yes" and "yes" are the same.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size_2a(
        &self,
        flags: ::std::os::raw::c_int,
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_size2(
            self as *const crate::QFontMetricsF,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the distance from the base line to where the strikeout line should be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::strikeOutPos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#strikeOutPos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from the base line to where the strikeout line should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#underlinePos">underlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#overlinePos">overlinePos</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineWidth">lineWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn strike_out_pos(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_strikeOutPos(self as *const crate::QFontMetricsF)
    }

    /// <p>Swaps this font metrics instance with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QFontMetricsF::swap(QFontMetricsF& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this font metrics instance with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontMetricsF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_swap(
            self as *mut crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontMetricsF>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns a tight bounding rectangle around the characters in the string specified by <i>text</i>. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QFontMetricsF::tightBoundingRect(const QString& text) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#tightBoundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a tight bounding rectangle around the characters in the string specified by <i>text</i>. The bounding rectangle always covers at least the set of pixels the text would cover if drawn at (0, 0).</p>
    /// <p>Note that the bounding rectangle may extend to the left of (0, 0), e.g. for italicized fonts, and that the width of the returned rectangle might be different than what the <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>() method returns.</p>
    /// <p>If you want to know the advance width of the string (to lay out a set of strings next to each other), use <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>() instead.</p>
    /// <p>Newline characters are processed as normal characters, <i>not</i> as linebreaks.</p>
    /// <p><b>Warning:</b> Calling this method is very slow on Windows.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tight_bounding_rect(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_tightBoundingRect(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the distance from the base line to where an underscore should be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::underlinePos() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#underlinePos">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from the base line to where an underscore should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#overlinePos">overlinePos</a>(), <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#strikeOutPos">strikeOutPos</a>(), and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#lineWidth">lineWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn underline_pos(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_underlinePos(self as *const crate::QFontMetricsF)
    }

    /// <p>Returns the width in pixels of the characters in the given <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::width(const QString& string) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width in pixels of the characters in the given <i>text</i>.</p>
    /// <p>Note that this value is <i>not</i> equal to the width returned by <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().width() because <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>() returns a rectangle describing the pixels this string will cover whereas width() returns the distance to where the next string should be drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width_q_string(
        &self,
        string: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_width(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(string)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::width(QChar arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/bearings.png" alt="Bearings"></p><p>Returns the logical width of character <i>ch</i> in pixels. This is a distance appropriate for drawing a subsequent character after <i>ch</i>.</p>
    /// <p>Some of the metrics are described in the image to the right. The central dark rectangles cover the logical <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#width">width</a>() of each character. The outer pale rectangles cover the <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#leftBearing">leftBearing</a>() and <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#rightBearing">rightBearing</a>() of each character. Notice that the bearings of "f" in this particular font are both negative, while the bearings of "o" are both positive.</p>
    /// <p><b>Warning:</b> This function will produce incorrect results for Arabic characters or non-spacing marks in the middle of a string, as the glyph shaping and positioning of marks that happens when processing strings cannot be taken into account. When implementing an interactive text control, use <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetricsf.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width_q_char(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QChar>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_width1(
            self as *const crate::QFontMetricsF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QChar>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the 'x' height of the font. This is often but not always the same as the height of the character 'x'.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QFontMetricsF::xHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#xHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 'x' height of the font. This is often but not always the same as the height of the character 'x'.</p></div>
    #[inline(always)]
    pub unsafe fn x_height(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_xHeight(self as *const crate::QFontMetricsF)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qgenericplugin.html">QGenericPlugin</a> class is an abstract base class for plugins.</p>
///
/// C++ class: <span style='color: green;'>```QGenericPlugin```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qgenericplugin.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgenericplugin.html">QGenericPlugin</a> class is an abstract base class for plugins.</p>
/// <p>A mouse plugin can be created by subclassing <a href="http://doc.qt.io/qt-5/qgenericplugin.html">QGenericPlugin</a> and reimplementing the pure virtual <a href="http://doc.qt.io/qt-5/qgenericplugin.html#create">create</a>() function. By exporting the derived class using the <a href="http://doc.qt.io/qt-5/qtplugin.html#Q_PLUGIN_METADATA">Q_PLUGIN_METADATA</a>() macro, The default implementation of the <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class will automatically detect the plugin and load the driver into the server application at run-time. See <a href="http://doc.qt.io/qt-5/plugins-howto.html">How to Create Qt Plugins</a> for details.</p>
/// <p>The json metadata file should contain a list of keys supported by this plugin.</p></div>
#[repr(C)]
pub struct QGenericPlugin {
    _unused: u8,
}
impl QGenericPlugin {
    /// <p>Implement this function to create a driver matching the type specified by the given <i>key</i> and <i>specification</i> parameters. Note that keys are case-insensitive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QObject* QGenericPlugin::create(const QString& name, const QString& spec)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgenericplugin.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Implement this function to create a driver matching the type specified by the given <i>key</i> and <i>specification</i> parameters. Note that keys are case-insensitive.</p></div>
    #[inline(always)]
    pub unsafe fn create(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        spec: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPlugin_create(
            self as *mut crate::QGenericPlugin,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(spec)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QGenericPlugin::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPlugin_metaObject(
            self as *const crate::QGenericPlugin,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QGenericPlugin::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QGenericPlugin_qt_metacall(
            self as *mut crate::QGenericPlugin,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QGenericPlugin::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPlugin_qt_metacast(
            self as *mut crate::QGenericPlugin,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPlugin_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QGenericPlugin::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPlugin_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QGenericPlugin::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPlugin_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p>
///
/// C++ class: <span style='color: green;'>```QGenericPluginFactory```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p></div>
#[repr(C)]
pub struct QGenericPluginFactory {
    _unused: u8,
}
impl QGenericPluginFactory {
    /// <p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGenericPluginFactory& QGenericPluginFactory::operator=(const QGenericPluginFactory& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGenericPluginFactory>>,
    ) -> ::cpp_core::MutRef<crate::QGenericPluginFactory> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPluginFactory_operator_(
            self as *mut crate::QGenericPluginFactory,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGenericPluginFactory>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates the driver specified by <i>key</i>, using the given <i>specification</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QObject* QGenericPluginFactory::create(const QString& arg1, const QString& arg2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates the driver specified by <i>key</i>, using the given <i>specification</i>.</p>
    /// <p>Note that the keys are case-insensitive.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html#keys">keys</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPluginFactory_create(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg2)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the list of valid keys, i.e. the available mouse drivers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QGenericPluginFactory::keys()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html#keys">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of valid keys, i.e. the available mouse drivers.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn keys() -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPluginFactory_keys();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGenericPluginFactory::QGenericPluginFactory()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QGenericPluginFactory> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPluginFactory_QGenericPluginFactory();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGenericPluginFactory::QGenericPluginFactory(const QGenericPluginFactory& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGenericPluginFactory>>,
    ) -> ::cpp_core::CppBox<crate::QGenericPluginFactory> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGenericPluginFactory_QGenericPluginFactory1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGenericPluginFactory>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_input_method {
    //! C++ type: <span style='color: green;'>```QInputMethod```</span>

    /// <p>Indicates the kind of action performed by the user.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QInputMethod::Action```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#Action-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Indicates the kind of action performed by the user.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html#invokeAction">invokeAction</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Action(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Action {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Action(value)
        }
    }

    impl From<Action> for ::std::os::raw::c_int {
        fn from(value: Action) -> Self {
            value.0
        }
    }

    impl Action {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Action {
        /// A normal click/tap (C++ enum variant: <span style='color: green;'>```Click = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Click: crate::q_input_method::Action = crate::q_input_method::Action(0);
        /// A context menu click/tap (e.g. right-button or tap-and-hold) (C++ enum variant: <span style='color: green;'>```ContextMenu = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ContextMenu: crate::q_input_method::Action = crate::q_input_method::Action(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qinputmethod.html">QInputMethod</a> class provides access to the active text input method.</p>
///
/// C++ class: <span style='color: green;'>```QInputMethod```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qinputmethod.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qinputmethod.html">QInputMethod</a> class provides access to the active text input method.</p>
/// <p><a href="http://doc.qt.io/qt-5/qinputmethod.html">QInputMethod</a> is used by the text editors for integrating to the platform text input methods and more commonly by application views for querying various text input method-related information like virtual keyboard visibility and keyboard dimensions.</p>
/// <p>Qt Quick also provides access to <a href="http://doc.qt.io/qt-5/qinputmethod.html">QInputMethod</a> in QML through <a href="http://doc.qt.io/qt-5/qml-qtqml-qt.html">Qt global object</a> as <code>Qt.inputMethod</code> property.</p></div>
#[repr(C)]
pub struct QInputMethod {
    _unused: u8,
}
impl QInputMethod {
    /// <p>Requests virtual keyboard to open. If the platform doesn't provide virtual keyboard the visibility remains false.</p>
    ///
    /// Returns a built-in Qt slot `QInputMethod::show` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#show">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests virtual keyboard to open. If the platform doesn't provide virtual keyboard the visibility remains false.</p>
    /// <p>Normally applications should not need to call this function, keyboard should automatically open when the text editor gains focus.</p></div>
    #[inline(always)]
    pub fn slot_show(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1show()\0"),
            )
        }
    }

    /// <p>Requests virtual keyboard to close.</p>
    ///
    /// Returns a built-in Qt slot `QInputMethod::hide` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#hide">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests virtual keyboard to close.</p>
    /// <p>Normally applications should not need to call this function, keyboard should automatically close when the text editor loses focus, for example when the parent view is closed.</p></div>
    #[inline(always)]
    pub fn slot_hide(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1hide()\0"),
            )
        }
    }

    /// <p>Called by the input item to inform the platform input methods when there has been state changes in editor's input method query attributes. When calling the function <i>queries</i> parameter has to be used to tell what has changes, which input method can use to make queries for attributes it's interested with <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a>.</p>
    ///
    /// Returns a built-in Qt slot `QInputMethod::update` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#update">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Called by the input item to inform the platform input methods when there has been state changes in editor's input method query attributes. When calling the function <i>queries</i> parameter has to be used to tell what has changes, which input method can use to make queries for attributes it's interested with <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a>.</p>
    /// <p>In particular calling update whenever the cursor position changes is important as that often causes other query attributes like surrounding text and text selection to change as well. The attributes that often change together with cursor position have been grouped in <a href="http://doc.qt.io/qt-5/qt.html#InputMethodQuery-enum">Qt::ImQueryInput</a> value for convenience.</p></div>
    #[inline(always)]
    pub fn slot_update(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1update(QFlags< Qt::InputMethodQuery >)\0",
                ),
            )
        }
    }

    /// <p>Resets the input method state. For example, a text editor normally calls this method before inserting a text to make widget ready to accept a text.</p>
    ///
    /// Returns a built-in Qt slot `QInputMethod::reset` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#reset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resets the input method state. For example, a text editor normally calls this method before inserting a text to make widget ready to accept a text.</p>
    /// <p>Input method resets automatically when the focused editor changes.</p></div>
    #[inline(always)]
    pub fn slot_reset(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1reset()\0"),
            )
        }
    }

    /// <p>Commits the word user is currently composing to the editor. The function is mostly needed by the input methods with text prediction features and by the methods where the script used for typing characters is different from the script that actually gets appended to the editor. Any kind of action that interrupts the text composing needs to flush the composing state by calling the commit() function, for example when the cursor is moved elsewhere.</p>
    ///
    /// Returns a built-in Qt slot `QInputMethod::commit` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#commit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Commits the word user is currently composing to the editor. The function is mostly needed by the input methods with text prediction features and by the methods where the script used for typing characters is different from the script that actually gets appended to the editor. Any kind of action that interrupts the text composing needs to flush the composing state by calling the commit() function, for example when the cursor is moved elsewhere.</p></div>
    #[inline(always)]
    pub fn slot_commit(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1commit()\0"),
            )
        }
    }

    /// <p>Called by the input item when the word currently being composed is tapped by the user, as indicated by the action <i>a</i> and the given <i>cursorPosition</i>. Input methods often use this information to offer more word suggestions to the user.</p>
    ///
    /// Returns a built-in Qt slot `QInputMethod::invokeAction` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#invokeAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Called by the input item when the word currently being composed is tapped by the user, as indicated by the action <i>a</i> and the given <i>cursorPosition</i>. Input methods often use this information to offer more word suggestions to the user.</p></div>
    #[inline(always)]
    pub fn slot_invoke_action(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_input_method::Action, ::std::os::raw::c_int)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1invokeAction(QInputMethod::Action,int)\0",
                ),
            )
        }
    }

    /// <p>Input item's cursor rectangle in window coordinates.</p>
    ///
    /// Returns a built-in Qt signal `QInputMethod::cursorRectangleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#cursorRectangle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Input item's cursor rectangle in window coordinates.</p>
    /// <p>Cursor rectangle is often used by various text editing controls like text prediction popups for following the text being typed.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>cursorRectangle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cursorRectangleChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn cursor_rectangle_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2cursorRectangleChanged()\0"),
            )
        }
    }

    /// <p>Input item's anchor rectangle in window coordinates.</p>
    ///
    /// Returns a built-in Qt signal `QInputMethod::anchorRectangleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#anchorRectangle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Input item's anchor rectangle in window coordinates.</p>
    /// <p>Anchor rectangle is often used by various text editing controls like text prediction popups for following the text selection.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>anchorRectangle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>anchorRectangleChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn anchor_rectangle_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2anchorRectangleChanged()\0"),
            )
        }
    }

    /// <p>Virtual keyboard's geometry in window coordinates.</p>
    ///
    /// Returns a built-in Qt signal `QInputMethod::keyboardRectangleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#keyboardRectangle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Virtual keyboard's geometry in window coordinates.</p>
    /// <p>This might be an empty rectangle if it is not possible to know the geometry of the keyboard. This is the case for a floating keyboard on android.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardRectangle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardRectangleChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn keyboard_rectangle_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2keyboardRectangleChanged()\0"),
            )
        }
    }

    /// <p>Input item's clipped rectangle in window coordinates.</p>
    ///
    /// Returns a built-in Qt signal `QInputMethod::inputItemClipRectangleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#inputItemClipRectangle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Input item's clipped rectangle in window coordinates.</p>
    /// <p>The clipped input rectangle is often used by various input methods to determine how much screen real estate is available for the input method (e.g. Virtual Keyboard).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>inputItemClipRectangle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>inputItemClipRectangleChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn input_item_clip_rectangle_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2inputItemClipRectangleChanged()\0",
                ),
            )
        }
    }

    /// <p>Virtual keyboard's visibility on the screen</p>
    ///
    /// Returns a built-in Qt signal `QInputMethod::visibleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#visible-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Virtual keyboard's visibility on the screen</p>
    /// <p>Input method visibility remains false for devices with no virtual keyboards.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isVisible</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibleChanged</b></span>()</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html#show">show</a>() and <a href="http://doc.qt.io/qt-5/qinputmethod.html#hide">hide</a>().</p></div>
    #[inline(always)]
    pub fn visible_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2visibleChanged()\0"),
            )
        }
    }

    /// <p>True when the virtual keyboard is being opened or closed.</p>
    ///
    /// Returns a built-in Qt signal `QInputMethod::animatingChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#animating-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>True when the virtual keyboard is being opened or closed.</p>
    /// <p>Animating is false when keyboard is fully open or closed. When <code>animating</code> is <code>true</code> and <code>visibility</code> is <code>true</code> keyboard is being opened. When <code>animating</code> is <code>true</code> and <code>visibility</code> is false keyboard is being closed.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isAnimating</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>animatingChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn animating_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2animatingChanged()\0"),
            )
        }
    }

    /// <p>Current input locale.</p>
    ///
    /// Returns a built-in Qt signal `QInputMethod::localeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#locale-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Current input locale.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QLocale </td><td class="memItemRight bottomAlign"><span class="name"><b>locale</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>localeChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn locale_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2localeChanged()\0"),
            )
        }
    }

    /// <p>Current input direction.</p>
    ///
    /// Returns a built-in Qt signal `QInputMethod::inputDirectionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#inputDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Current input direction.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::LayoutDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>inputDirection</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>inputDirectionChanged</b></span>(Qt::LayoutDirection <i>newDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn input_direction_changed(&self) -> ::qt_core::Signal<(::qt_core::LayoutDirection,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2inputDirectionChanged(Qt::LayoutDirection)\0",
                ),
            )
        }
    }

    /// <p>Input item's anchor rectangle in window coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QInputMethod::anchorRectangle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#anchorRectangle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Input item's anchor rectangle in window coordinates.</p>
    /// <p>Anchor rectangle is often used by various text editing controls like text prediction popups for following the text selection.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>anchorRectangle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>anchorRectangleChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn anchor_rectangle(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_anchorRectangle(
            self as *const crate::QInputMethod,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Commits the word user is currently composing to the editor. The function is mostly needed by the input methods with text prediction features and by the methods where the script used for typing characters is different from the script that actually gets appended to the editor. Any kind of action that interrupts the text composing needs to flush the composing state by calling the commit() function, for example when the cursor is moved elsewhere.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QInputMethod::commit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#commit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Commits the word user is currently composing to the editor. The function is mostly needed by the input methods with text prediction features and by the methods where the script used for typing characters is different from the script that actually gets appended to the editor. Any kind of action that interrupts the text composing needs to flush the composing state by calling the commit() function, for example when the cursor is moved elsewhere.</p></div>
    #[inline(always)]
    pub unsafe fn commit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_commit(self as *mut crate::QInputMethod)
    }

    /// <p>Input item's cursor rectangle in window coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QInputMethod::cursorRectangle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#cursorRectangle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Input item's cursor rectangle in window coordinates.</p>
    /// <p>Cursor rectangle is often used by various text editing controls like text prediction popups for following the text being typed.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>cursorRectangle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cursorRectangleChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn cursor_rectangle(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_cursorRectangle(
            self as *const crate::QInputMethod,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Requests virtual keyboard to close.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QInputMethod::hide()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#hide">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests virtual keyboard to close.</p>
    /// <p>Normally applications should not need to call this function, keyboard should automatically close when the text editor loses focus, for example when the parent view is closed.</p></div>
    #[inline(always)]
    pub unsafe fn hide(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_hide(self as *mut crate::QInputMethod)
    }

    /// <p>Current input direction.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::LayoutDirection QInputMethod::inputDirection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#inputDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Current input direction.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::LayoutDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>inputDirection</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>inputDirectionChanged</b></span>(Qt::LayoutDirection <i>newDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn input_direction(&self) -> ::qt_core::LayoutDirection {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_inputDirection(self as *const crate::QInputMethod)
    }

    /// <p>Input item's clipped rectangle in window coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QInputMethod::inputItemClipRectangle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#inputItemClipRectangle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Input item's clipped rectangle in window coordinates.</p>
    /// <p>The clipped input rectangle is often used by various input methods to determine how much screen real estate is available for the input method (e.g. Virtual Keyboard).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>inputItemClipRectangle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>inputItemClipRectangleChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn input_item_clip_rectangle(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_inputItemClipRectangle(
            self as *const crate::QInputMethod,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the input item's geometry in input item coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QInputMethod::inputItemRectangle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#inputItemRectangle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the input item's geometry in input item coordinates.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html#setInputItemRectangle">setInputItemRectangle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn input_item_rectangle(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_inputItemRectangle(
            self as *const crate::QInputMethod,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the transformation from input item coordinates to the window coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QInputMethod::inputItemTransform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#inputItemTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transformation from input item coordinates to the window coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html#setInputItemTransform">setInputItemTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn input_item_transform(&self) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_inputItemTransform(
            self as *const crate::QInputMethod,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Called by the input item when the word currently being composed is tapped by the user, as indicated by the action <i>a</i> and the given <i>cursorPosition</i>. Input methods often use this information to offer more word suggestions to the user.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QInputMethod::invokeAction(QInputMethod::Action a, int cursorPosition)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#invokeAction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Called by the input item when the word currently being composed is tapped by the user, as indicated by the action <i>a</i> and the given <i>cursorPosition</i>. Input methods often use this information to offer more word suggestions to the user.</p></div>
    #[inline(always)]
    pub unsafe fn invoke_action(
        &mut self,
        a: crate::q_input_method::Action,
        cursor_position: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_invokeAction(
            self as *mut crate::QInputMethod,
            a,
            cursor_position,
        )
    }

    /// <p>True when the virtual keyboard is being opened or closed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QInputMethod::isAnimating() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#animating-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>True when the virtual keyboard is being opened or closed.</p>
    /// <p>Animating is false when keyboard is fully open or closed. When <code>animating</code> is <code>true</code> and <code>visibility</code> is <code>true</code> keyboard is being opened. When <code>animating</code> is <code>true</code> and <code>visibility</code> is false keyboard is being closed.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isAnimating</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>animatingChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_animating(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_isAnimating(self as *const crate::QInputMethod)
    }

    /// <p>Virtual keyboard's visibility on the screen</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QInputMethod::isVisible() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#visible-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Virtual keyboard's visibility on the screen</p>
    /// <p>Input method visibility remains false for devices with no virtual keyboards.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isVisible</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>visibleChanged</b></span>()</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html#show">show</a>() and <a href="http://doc.qt.io/qt-5/qinputmethod.html#hide">hide</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_visible(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_isVisible(self as *const crate::QInputMethod)
    }

    /// <p>Virtual keyboard's geometry in window coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QInputMethod::keyboardRectangle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#keyboardRectangle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Virtual keyboard's geometry in window coordinates.</p>
    /// <p>This might be an empty rectangle if it is not possible to know the geometry of the keyboard. This is the case for a floating keyboard on android.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardRectangle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardRectangleChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn keyboard_rectangle(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_keyboardRectangle(
            self as *const crate::QInputMethod,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Current input locale.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLocale QInputMethod::locale() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#locale-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Current input locale.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QLocale </td><td class="memItemRight bottomAlign"><span class="name"><b>locale</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>localeChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn locale(&self) -> ::cpp_core::CppBox<::qt_core::QLocale> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QInputMethod_locale(self as *const crate::QInputMethod);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QInputMethod::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_metaObject(
            self as *const crate::QInputMethod,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QInputMethod::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_qt_metacall(
            self as *mut crate::QInputMethod,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QInputMethod::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_qt_metacast(
            self as *mut crate::QInputMethod,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Send <i>query</i> to the current focus object with parameters <i>argument</i> and return the result.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QVariant QInputMethod::queryFocusObject(Qt::InputMethodQuery query, QVariant argument)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#queryFocusObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Send <i>query</i> to the current focus object with parameters <i>argument</i> and return the result.</p></div>
    #[inline(always)]
    pub unsafe fn query_focus_object(
        query: ::qt_core::InputMethodQuery,
        argument: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_queryFocusObject(
            query,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(argument)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Resets the input method state. For example, a text editor normally calls this method before inserting a text to make widget ready to accept a text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QInputMethod::reset()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#reset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resets the input method state. For example, a text editor normally calls this method before inserting a text to make widget ready to accept a text.</p>
    /// <p>Input method resets automatically when the focused editor changes.</p></div>
    #[inline(always)]
    pub unsafe fn reset(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_reset(self as *mut crate::QInputMethod)
    }

    /// <p>Sets the input item's geometry to be <i>rect</i>, in input item coordinates. This needs to be updated by the focused window like QQuickCanvas whenever item is moved inside the scene, or focus is changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QInputMethod::setInputItemRectangle(const QRectF& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#setInputItemRectangle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the input item's geometry to be <i>rect</i>, in input item coordinates. This needs to be updated by the focused window like QQuickCanvas whenever item is moved inside the scene, or focus is changed.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html#inputItemRectangle">inputItemRectangle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_input_item_rectangle(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_setInputItemRectangle(
            self as *mut crate::QInputMethod,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the transformation from input item coordinates to window coordinates to be <i>transform</i>. Item transform needs to be updated by the focused window like QQuickCanvas whenever item is moved inside the scene.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QInputMethod::setInputItemTransform(const QTransform& transform)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#setInputItemTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the transformation from input item coordinates to window coordinates to be <i>transform</i>. Item transform needs to be updated by the focused window like QQuickCanvas whenever item is moved inside the scene.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html#inputItemTransform">inputItemTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_input_item_transform(
        &mut self,
        transform: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_setInputItemTransform(
            self as *mut crate::QInputMethod,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(transform)
                .as_raw_ptr(),
        )
    }

    /// <p>Controls the keyboard visibility. Equivalent to calling <a href="http://doc.qt.io/qt-5/qinputmethod.html#show">show</a>() (if <i>visible</i> is <code>true</code>) or <a href="http://doc.qt.io/qt-5/qinputmethod.html#hide">hide</a>() (if <i>visible</i> is <code>false</code>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QInputMethod::setVisible(bool visible)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#setVisible">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Controls the keyboard visibility. Equivalent to calling <a href="http://doc.qt.io/qt-5/qinputmethod.html#show">show</a>() (if <i>visible</i> is <code>true</code>) or <a href="http://doc.qt.io/qt-5/qinputmethod.html#hide">hide</a>() (if <i>visible</i> is <code>false</code>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html#visible-prop">isVisible</a>(), <a href="http://doc.qt.io/qt-5/qinputmethod.html#show">show</a>(), and <a href="http://doc.qt.io/qt-5/qinputmethod.html#hide">hide</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_visible(&mut self, visible: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_setVisible(
            self as *mut crate::QInputMethod,
            visible,
        )
    }

    /// <p>Requests virtual keyboard to open. If the platform doesn't provide virtual keyboard the visibility remains false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QInputMethod::show()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#show">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests virtual keyboard to open. If the platform doesn't provide virtual keyboard the visibility remains false.</p>
    /// <p>Normally applications should not need to call this function, keyboard should automatically open when the text editor gains focus.</p></div>
    #[inline(always)]
    pub unsafe fn show(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_show(self as *mut crate::QInputMethod)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QInputMethod::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QInputMethod::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QInputMethod_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Called by the input item to inform the platform input methods when there has been state changes in editor's input method query attributes. When calling the function <i>queries</i> parameter has to be used to tell what has changes, which input method can use to make queries for attributes it's interested with <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QInputMethod::update(QFlags<Qt::InputMethodQuery> queries)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethod.html#update">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Called by the input item to inform the platform input methods when there has been state changes in editor's input method query attributes. When calling the function <i>queries</i> parameter has to be used to tell what has changes, which input method can use to make queries for attributes it's interested with <a href="http://doc.qt.io/qt-5/qinputmethodqueryevent.html">QInputMethodQueryEvent</a>.</p>
    /// <p>In particular calling update whenever the cursor position changes is important as that often causes other query attributes like surrounding text and text selection to change as well. The attributes that often change together with cursor position have been grouped in <a href="http://doc.qt.io/qt-5/qt.html#InputMethodQuery-enum">Qt::ImQueryInput</a> value for convenience.</p></div>
    #[inline(always)]
    pub unsafe fn update(&mut self, queries: ::qt_core::QFlags<::qt_core::InputMethodQuery>) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethod_update(
            self as *mut crate::QInputMethod,
            queries.to_int(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> class manages the GUI application's control flow and main settings.</p>
///
/// C++ class: <span style='color: green;'>```QGuiApplication```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qguiapplication.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> class manages the GUI application's control flow and main settings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> contains the main event loop, where all events from the window system and other sources are processed and dispatched. It also handles the application's initialization and finalization, and provides session management. In addition, <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> handles most of the system-wide and application-wide settings.</p>
/// <p>For any GUI application using Qt, there is precisely <b>one</b> <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> object no matter whether the application has 0, 1, 2 or more windows at any given time. For non-GUI Qt applications, use <a href="http://doc.qt.io/qt-5/qcoreapplication.html">QCoreApplication</a> instead, as it does not depend on the Qt GUI module. For <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> based Qt applications, use <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> instead, as it provides some functionality needed for creating <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> instances.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> object is accessible through the <a href="http://doc.qt.io/qt-5/qcoreapplication.html#instance">instance</a>() function, which returns a pointer equivalent to the global <a href="http://doc.qt.io/qt-5/qapplication.html#qApp">qApp</a> pointer.</p>
/// <p><a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a>'s main areas of responsibility are:</p>
/// <ul>
/// <li>It initializes the application with the user's desktop settings, such as <a href="http://doc.qt.io/qt-5/qguiapplication.html#palette">palette</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#font">font</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#styleHints">styleHints</a>(). It keeps track of these properties in case the user changes the desktop globally, for example, through some kind of control panel.</li>
/// <li>It performs event handling, meaning that it receives events from the underlying window system and dispatches them to the relevant widgets. You can send your own events to windows by using <a href="http://doc.qt.io/qt-5/qcoreapplication.html#sendEvent">sendEvent</a>() and <a href="http://doc.qt.io/qt-5/qcoreapplication.html#postEvent">postEvent</a>().</li>
/// <li>It parses common command line arguments and sets its internal state accordingly. See the <a href="http://doc.qt.io/qt-5/qguiapplication.html#QGuiApplication">constructor documentation</a> below for more details.</li>
/// <li>It provides localization of strings that are visible to the user via translate().</li>
/// <li>It provides some magical objects like the <a href="http://doc.qt.io/qt-5/qguiapplication.html#clipboard">clipboard</a>().</li>
/// <li>It knows about the application's windows. You can ask which window is at a certain position using <a href="http://doc.qt.io/qt-5/qguiapplication.html#topLevelAt">topLevelAt</a>(), get a list of <a href="http://doc.qt.io/qt-5/qguiapplication.html#topLevelWindows">topLevelWindows</a>(), etc.</li>
/// <li>It manages the application's mouse cursor handling, see <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>()</li>
/// <li>It provides support for sophisticated <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session management</a>. This makes it possible for applications to terminate gracefully when the user logs out, to cancel a shutdown process if termination isn't possible and even to preserve the entire application's state for a future session. See <a href="http://doc.qt.io/qt-5/qguiapplication.html#isSessionRestored">isSessionRestored</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">sessionId</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>() for details.</li>
/// </ul>
/// <p>Since the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> object does so much initialization, it <i>must</i> be created before any other objects related to the user interface are created. <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> also deals with common command line arguments. Hence, it is usually a good idea to create it <i>before</i> any interpretation or modification of <code>argv</code> is done in the application itself.</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th colspan="2">Groups of functions</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td>System settings</td><td><a href="http://doc.qt.io/qt-5/qguiapplication.html#desktopSettingsAware">desktopSettingsAware</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#setDesktopSettingsAware">setDesktopSettingsAware</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#styleHints">styleHints</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#palette">palette</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#setPalette">setPalette</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#font">font</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#setFont">setFont</a>().</td></tr>
/// <tr valign="top" class="even"><td>Event handling</td><td><a href="http://doc.qt.io/qt-5/qguiapplication.html#exec">exec</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#processEvents">processEvents</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exit">exit</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#quit">quit</a>(). <a href="http://doc.qt.io/qt-5/qcoreapplication.html#sendEvent">sendEvent</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#postEvent">postEvent</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#sendPostedEvents">sendPostedEvents</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#removePostedEvents">removePostedEvents</a>(), hasPendingEvents(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#notify">notify</a>().</td></tr>
/// <tr valign="top" class="odd"><td>Windows</td><td><a href="http://doc.qt.io/qt-5/qguiapplication.html#allWindows">allWindows</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#topLevelWindows">topLevelWindows</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#focusWindow">focusWindow</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#clipboard">clipboard</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#topLevelAt">topLevelAt</a>().</td></tr>
/// <tr valign="top" class="even"><td>Advanced cursor handling</td><td><a href="http://doc.qt.io/qt-5/qguiapplication.html#overrideCursor">overrideCursor</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#restoreOverrideCursor">restoreOverrideCursor</a>().</td></tr>
/// <tr valign="top" class="odd"><td>Session management</td><td><a href="http://doc.qt.io/qt-5/qguiapplication.html#isSessionRestored">isSessionRestored</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">sessionId</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>().</td></tr>
/// <tr valign="top" class="even"><td>Miscellaneous</td><td><a href="http://doc.qt.io/qt-5/qcoreapplication.html#startingUp">startingUp</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#closingDown">closingDown</a>().</td></tr>
/// </tbody></table></div></div>
#[repr(C)]
pub struct QGuiApplication {
    _unused: u8,
}
impl QGuiApplication {
    /// <p>This signal is emitted when application fonts are loaded or removed.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::fontDatabaseChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#fontDatabaseChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when application fonts are loaded or removed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFont">QFontDatabase::addApplicationFont</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#addApplicationFontFromData">QFontDatabase::addApplicationFontFromData</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeAllApplicationFonts">QFontDatabase::removeAllApplicationFonts</a>(), and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#removeApplicationFont">QFontDatabase::removeApplicationFont</a>().</p></div>
    #[inline(always)]
    pub fn font_database_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2fontDatabaseChanged()\0"),
            )
        }
    }

    /// <p>This signal is emitted whenever a new screen <i>screen</i> has been added to the system.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::screenAdded` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#screenAdded">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever a new screen <i>screen</i> has been added to the system.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#screens">screens</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#primaryScreen-prop">primaryScreen</a>, and <a href="http://doc.qt.io/qt-5/qguiapplication.html#screenRemoved">screenRemoved</a>().</p></div>
    #[inline(always)]
    pub fn screen_added(&self) -> ::qt_core::Signal<(*mut crate::QScreen,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2screenAdded(QScreen*)\0"),
            )
        }
    }

    /// <p>This signal is emitted whenever a <i>screen</i> is removed from the system. It provides an opportunity to manage the windows on the screen before Qt falls back to moving them to the primary screen.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::screenRemoved` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#screenRemoved">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever a <i>screen</i> is removed from the system. It provides an opportunity to manage the windows on the screen before Qt falls back to moving them to the primary screen.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#screens">screens</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#screenAdded">screenAdded</a>(), <a href="http://doc.qt.io/qt-5/qobject.html#destroyed">QObject::destroyed</a>(), and <a href="http://doc.qt.io/qt-5/qwindow.html#setScreen">QWindow::setScreen</a>().</p></div>
    #[inline(always)]
    pub fn screen_removed(&self) -> ::qt_core::Signal<(*mut crate::QScreen,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2screenRemoved(QScreen*)\0"),
            )
        }
    }

    /// <p>This property holds the primary (or default) screen of the application.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::primaryScreenChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#primaryScreen-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the primary (or default) screen of the application.</p>
    /// <p>This will be the screen where QWindows are initially shown, unless otherwise specified.</p>
    /// <p>The primaryScreenChanged signal was introduced in Qt 5.6.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QScreen *</td><td class="memItemRight bottomAlign"><span class="name"><b>primaryScreen</b></span>()</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primaryScreenChanged</b></span>(QScreen *<i>screen</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#screens">screens</a>().</p></div>
    #[inline(always)]
    pub fn primary_screen_changed(&self) -> ::qt_core::Signal<(*mut crate::QScreen,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2primaryScreenChanged(QScreen*)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted from <a href="http://doc.qt.io/qt-5/qguiapplication.html#exec">exec</a>() when the last visible primary window (i.e. window with no parent) is closed.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::lastWindowClosed` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#lastWindowClosed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted from <a href="http://doc.qt.io/qt-5/qguiapplication.html#exec">exec</a>() when the last visible primary window (i.e. window with no parent) is closed.</p>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> quits after this signal is emitted. This feature can be turned off by setting <a href="http://doc.qt.io/qt-5/qguiapplication.html#quitOnLastWindowClosed-prop">quitOnLastWindowClosed</a> to <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#close">QWindow::close</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#isTopLevel">QWindow::isTopLevel</a>().</p></div>
    #[inline(always)]
    pub fn last_window_closed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2lastWindowClosed()\0"),
            )
        }
    }

    /// <p>This signal is emitted when final receiver of events tied to focus is changed. <i>focusObject</i> is the new receiver.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::focusObjectChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#focusObjectChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when final receiver of events tied to focus is changed. <i>focusObject</i> is the new receiver.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#focusObject">focusObject</a>().</p></div>
    #[inline(always)]
    pub fn focus_object_changed(&self) -> ::qt_core::Signal<(*mut ::qt_core::QObject,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2focusObjectChanged(QObject*)\0"),
            )
        }
    }

    /// <p>This signal is emitted when the focused window changes. <i>focusWindow</i> is the new focused window.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::focusWindowChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#focusWindowChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the focused window changes. <i>focusWindow</i> is the new focused window.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#focusWindow">focusWindow</a>().</p></div>
    #[inline(always)]
    pub fn focus_window_changed(&self) -> ::qt_core::Signal<(*mut crate::QWindow,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2focusWindowChanged(QWindow*)\0"),
            )
        }
    }

    /// <p>This signal is emitted when the <i>state</i> of the application changes.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::applicationStateChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#applicationStateChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the <i>state</i> of the application changes.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#applicationState">applicationState</a>().</p></div>
    #[inline(always)]
    pub fn application_state_changed(&self) -> ::qt_core::Signal<(::qt_core::ApplicationState,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2applicationStateChanged(Qt::ApplicationState)\0",
                ),
            )
        }
    }

    /// <p>This property holds the default layout direction for this application</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::layoutDirectionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#layoutDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the default layout direction for this application</p>
    /// <p>On system start-up, the default layout direction depends on the application's language.</p>
    /// <p>The notifier signal was introduced in Qt 5.4.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::LayoutDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>layoutDirection</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayoutDirection</b></span>(Qt::LayoutDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layoutDirectionChanged</b></span>(Qt::LayoutDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwidget.html#layoutDirection-prop">QWidget::layoutDirection</a>, <a href="http://doc.qt.io/qt-5/qguiapplication.html#isLeftToRight">isLeftToRight</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#isRightToLeft">isRightToLeft</a>().</p></div>
    #[inline(always)]
    pub fn layout_direction_changed(&self) -> ::qt_core::Signal<(::qt_core::LayoutDirection,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2layoutDirectionChanged(Qt::LayoutDirection)\0",
                ),
            )
        }
    }

    /// <p>This signal deals with <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session management</a>. It is emitted when the <a href="http://doc.qt.io/qt-5/qsessionmanager.html">QSessionManager</a> wants the application to commit all its data.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::commitDataRequest` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal deals with <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session management</a>. It is emitted when the <a href="http://doc.qt.io/qt-5/qsessionmanager.html">QSessionManager</a> wants the application to commit all its data.</p>
    /// <p>Usually this means saving all open files, after getting permission from the user. Furthermore you may want to provide a means by which the user can cancel the shutdown.</p>
    /// <p>You should not exit the application within this signal. Instead, the session manager may or may not do this afterwards, depending on the context.</p>
    /// <p><b>Warning:</b> Within this signal, no user interaction is possible, <i>unless</i> you ask the <i>manager</i> for explicit permission. See <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">QSessionManager::allowsInteraction</a>() and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsErrorInteraction">QSessionManager::allowsErrorInteraction</a>() for details and example usage.</p>
    /// <p><b>Note: </b>You should use <a href="http://doc.qt.io/qt-5/qt.html#ConnectionType-enum">Qt::DirectConnection</a> when connecting to this signal.</p><p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setFallbackSessionManagementEnabled">setFallbackSessionManagementEnabled</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#isSessionRestored">isSessionRestored</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">sessionId</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>(), and <a href="http://doc.qt.io/qt-5/ipc.html#session-management">Session Management</a>.</p></div>
    #[inline(always)]
    pub fn commit_data_request(&self) -> ::qt_core::Signal<(*mut crate::QSessionManager,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2commitDataRequest(QSessionManager&)\0",
                ),
            )
        }
    }

    /// <p>This signal deals with <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session management</a>. It is invoked when the <a href="http://doc.qt.io/qt-5/qsessionmanager.html">session manager</a> wants the application to preserve its state for a future session.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::saveStateRequest` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal deals with <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session management</a>. It is invoked when the <a href="http://doc.qt.io/qt-5/qsessionmanager.html">session manager</a> wants the application to preserve its state for a future session.</p>
    /// <p>For example, a text editor would create a temporary file that includes the current contents of its edit buffers, the location of the cursor and other aspects of the current editing session.</p>
    /// <p>You should never exit the application within this signal. Instead, the session manager may or may not do this afterwards, depending on the context. Futhermore, most session managers will very likely request a saved state immediately after the application has been started. This permits the session manager to learn about the application's restart policy.</p>
    /// <p><b>Warning:</b> Within this signal, no user interaction is possible, <i>unless</i> you ask the <i>manager</i> for explicit permission. See <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">QSessionManager::allowsInteraction</a>() and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsErrorInteraction">QSessionManager::allowsErrorInteraction</a>() for details.</p>
    /// <p><b>Note: </b>You should use <a href="http://doc.qt.io/qt-5/qt.html#ConnectionType-enum">Qt::DirectConnection</a> when connecting to this signal.</p><p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#isSessionRestored">isSessionRestored</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">sessionId</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>(), and <a href="http://doc.qt.io/qt-5/ipc.html#session-management">Session Management</a>.</p></div>
    #[inline(always)]
    pub fn save_state_request(&self) -> ::qt_core::Signal<(*mut crate::QSessionManager,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2saveStateRequest(QSessionManager&)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the <i>palette</i> of the application changes.</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::paletteChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#paletteChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the <i>palette</i> of the application changes.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#palette">palette</a>().</p></div>
    #[inline(always)]
    pub fn palette_changed(&self) -> ::qt_core::Signal<(*const crate::QPalette,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2paletteChanged(const QPalette&)\0",
                ),
            )
        }
    }

    /// <p>This property holds the user-visible name of this application</p>
    ///
    /// Returns a built-in Qt signal `QGuiApplication::applicationDisplayNameChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#applicationDisplayName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the user-visible name of this application</p>
    /// <p>This name is shown to the user, for instance in window titles. It can be translated, if necessary.</p>
    /// <p>If not set, the application display name defaults to the application name.</p>
    /// <p>This property was introduced in  Qt 5.0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>applicationDisplayName</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setApplicationDisplayName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>applicationDisplayNameChanged</b></span>()</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcoreapplication.html#applicationName-prop">applicationName</a>.</p></div>
    #[inline(always)]
    pub fn application_display_name_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2applicationDisplayNameChanged()\0",
                ),
            )
        }
    }

    /// <p>Returns a list of all the windows in the application.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QWindow*> QGuiApplication::allWindows()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#allWindows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of all the windows in the application.</p>
    /// <p>The list is empty if there are no windows.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#topLevelWindows">topLevelWindows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn all_windows() -> ::cpp_core::CppBox<crate::QListOfQWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_allWindows();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the user-visible name of this application</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QGuiApplication::applicationDisplayName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#applicationDisplayName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the user-visible name of this application</p>
    /// <p>This name is shown to the user, for instance in window titles. It can be translated, if necessary.</p>
    /// <p>If not set, the application display name defaults to the application name.</p>
    /// <p>This property was introduced in  Qt 5.0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>applicationDisplayName</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setApplicationDisplayName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>applicationDisplayNameChanged</b></span>()</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcoreapplication.html#applicationName-prop">applicationName</a>.</p></div>
    #[inline(always)]
    pub unsafe fn application_display_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_applicationDisplayName();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current state of the application.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static Qt::ApplicationState QGuiApplication::applicationState()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#applicationState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current state of the application.</p>
    /// <p>You can react to application state changes to perform actions such as stopping/resuming CPU-intensive tasks, freeing/loading resources or saving/restoring application data.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn application_state() -> ::qt_core::ApplicationState {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_applicationState()
    }

    /// <p>Changes the currently active application override cursor to <i>cursor</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::changeOverrideCursor(const QCursor& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#changeOverrideCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Changes the currently active application override cursor to <i>cursor</i>.</p>
    /// <p>This function has no effect if <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>() was not called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#overrideCursor">overrideCursor</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#restoreOverrideCursor">restoreOverrideCursor</a>(), and <a href="http://doc.qt.io/qt-5/qwidget.html#cursor-prop">QWidget::setCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn change_override_cursor(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_changeOverrideCursor(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QCursor>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Returns the object for interacting with the clipboard.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QClipboard* QGuiApplication::clipboard()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#clipboard">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the object for interacting with the clipboard.</p></div>
    #[inline(always)]
    pub unsafe fn clipboard() -> ::cpp_core::MutPtr<crate::QClipboard> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_clipboard();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This property holds the base name of the desktop entry for this application</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QGuiApplication::desktopFileName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#desktopFileName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the base name of the desktop entry for this application</p>
    /// <p>This is the file name, without the full path, of the desktop entry that represents this application according to the freedesktop desktop entry specification.</p>
    /// <p>This property gives a precise indication of what desktop entry represents the application and it is needed by the windowing system to retrieve such information without resorting to imprecise heuristics.</p>
    /// <p>The latest version of the freedesktop desktop entry specification can be obtained <a href="http://standards.freedesktop.org/desktop-entry-spec/latest/">here</a>.</p>
    /// <p>This property was introduced in  Qt 5.7.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>desktopFileName</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDesktopFileName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn desktop_file_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_desktopFileName();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if Qt is set to use the system's standard colors, fonts, etc.; otherwise returns <code>false</code>. The default is <code>true</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QGuiApplication::desktopSettingsAware()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#desktopSettingsAware">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if Qt is set to use the system's standard colors, fonts, etc.; otherwise returns <code>false</code>. The default is <code>true</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setDesktopSettingsAware">setDesktopSettingsAware</a>().</p></div>
    #[inline(always)]
    pub unsafe fn desktop_settings_aware() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_desktopSettingsAware()
    }

    /// <p>Returns the highest screen device pixel ratio found on the system. This is the ratio between physical pixels and device-independent pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QGuiApplication::devicePixelRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#devicePixelRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the highest screen device pixel ratio found on the system. This is the ratio between physical pixels and device-independent pixels.</p>
    /// <p>Use this function only when you don't know which window you are targeting. If you do know the target window, use <a href="http://doc.qt.io/qt-5/qwindow.html#devicePixelRatio">QWindow::devicePixelRatio</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#devicePixelRatio">QWindow::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device_pixel_ratio(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_devicePixelRatio(
            self as *const crate::QGuiApplication,
        )
    }

    /// <p>Enters the main event loop and waits until <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exit">exit</a>() is called, and then returns the value that was set to <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exit">exit</a>() (which is 0 if <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exit">exit</a>() is called via <a href="http://doc.qt.io/qt-5/qcoreapplication.html#quit">quit</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static int QGuiApplication::exec()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#exec">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enters the main event loop and waits until <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exit">exit</a>() is called, and then returns the value that was set to <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exit">exit</a>() (which is 0 if <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exit">exit</a>() is called via <a href="http://doc.qt.io/qt-5/qcoreapplication.html#quit">quit</a>()).</p>
    /// <p>It is necessary to call this function to start event handling. The main event loop receives events from the window system and dispatches these to the application widgets.</p>
    /// <p>Generally, no user interaction can take place before calling exec().</p>
    /// <p>To make your application perform idle processing, e.g., executing a special function whenever there are no pending events, use a <a href="http://doc.qt.io/qt-5/qtimer.html">QTimer</a> with 0 timeout. More advanced idle processing schemes can be achieved using <a href="http://doc.qt.io/qt-5/qcoreapplication.html#processEvents">processEvents</a>().</p>
    /// <p>We recommend that you connect clean-up code to the <a href="http://doc.qt.io/qt-5/qcoreapplication.html#aboutToQuit">aboutToQuit()</a> signal, instead of putting it in your application's <code>main()</code> function. This is because, on some platforms, the <a href="http://doc.qt.io/qt-5/qapplication.html#exec">QApplication::exec</a>() call may not return.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#quitOnLastWindowClosed-prop">quitOnLastWindowClosed</a>, <a href="http://doc.qt.io/qt-5/qcoreapplication.html#quit">quit</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exit">exit</a>(), <a href="http://doc.qt.io/qt-5/qcoreapplication.html#processEvents">processEvents</a>(), and <a href="http://doc.qt.io/qt-5/qcoreapplication.html#exec">QCoreApplication::exec</a>().</p></div>
    #[inline(always)]
    pub unsafe fn exec() -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_exec()
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> in currently active window that will be final receiver of events tied to focus, such as key events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QObject* QGuiApplication::focusObject()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#focusObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> in currently active window that will be final receiver of events tied to focus, such as key events.</p></div>
    #[inline(always)]
    pub unsafe fn focus_object() -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_focusObject();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> that receives events tied to focus, such as key events.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QWindow* QGuiApplication::focusWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#focusWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> that receives events tied to focus, such as key events.</p></div>
    #[inline(always)]
    pub unsafe fn focus_window() -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_focusWindow();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the default application font.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QFont QGuiApplication::font()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#font">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the default application font.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font() -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_font();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This signal is emitted when the <i>font</i> of the application changes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QGuiApplication::fontChanged(const QFont& font)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#fontChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the <i>font</i> of the application changes.</p>
    /// <p>This function was introduced in  Qt 5.11.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#font">font</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn font_changed(
        &mut self,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_fontChanged(
            self as *mut crate::QGuiApplication,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        )
    }

    /// <p>returns the input method.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QInputMethod* QGuiApplication::inputMethod()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#inputMethod">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>returns the input method.</p>
    /// <p>The input method returns properties about the state and position of the virtual keyboard. It also provides information about the position of the current focused input element.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qinputmethod.html">QInputMethod</a>.</p></div>
    #[inline(always)]
    pub unsafe fn input_method() -> ::cpp_core::MutPtr<crate::QInputMethod> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_inputMethod();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns whether <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> will use fallback session management.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QGuiApplication::isFallbackSessionManagementEnabled()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#isFallbackSessionManagementEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> will use fallback session management.</p>
    /// <p>The default is <code>true</code>.</p>
    /// <p>If this is <code>true</code> and the session manager allows user interaction, <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> will try to close toplevel windows after <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>() has been emitted. If a window cannot be closed, session shutdown will be canceled and the application will keep running.</p>
    /// <p>Fallback session management only benefits applications that have an "are you sure you want to close this window?" feature or other logic that prevents closing a toplevel window depending on certain conditions, and that do nothing to explicitly implement session management. In applications that <i>do</i> implement session management using the proper session management API, fallback session management interferes and may break session management logic.</p>
    /// <p><b>Warning:</b> If all windows <i>are</i> closed due to fallback session management and <a href="http://doc.qt.io/qt-5/qguiapplication.html#quitOnLastWindowClosed-prop">quitOnLastWindowClosed</a>() is <code>true</code>, the application will quit before it is explicitly instructed to quit through the platform's session management protocol. That violation of protocol may prevent the platform session manager from saving application state.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setFallbackSessionManagementEnabled">setFallbackSessionManagementEnabled</a>(), <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">QSessionManager::allowsInteraction</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>(), and <a href="http://doc.qt.io/qt-5/ipc.html#session-management">Session Management</a>.</p></div>
    #[inline(always)]
    pub unsafe fn is_fallback_session_management_enabled() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_isFallbackSessionManagementEnabled()
    }

    /// <p>Returns <code>true</code> if the application's layout direction is <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::LeftToRight</a>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QGuiApplication::isLeftToRight()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#isLeftToRight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the application's layout direction is <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::LeftToRight</a>; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#layoutDirection-prop">layoutDirection</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#isRightToLeft">isRightToLeft</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_left_to_right() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_isLeftToRight()
    }

    /// <p>Returns <code>true</code> if the application's layout direction is <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::RightToLeft</a>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QGuiApplication::isRightToLeft()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#isRightToLeft">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the application's layout direction is <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::RightToLeft</a>; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#layoutDirection-prop">layoutDirection</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#isLeftToRight">isLeftToRight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_right_to_left() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_isRightToLeft()
    }

    /// <p>Returns <code>true</code> if the application is currently saving the <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session</a>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGuiApplication::isSavingSession() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#isSavingSession">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the application is currently saving the <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session</a>; otherwise returns <code>false</code>.</p>
    /// <p>This is <code>true</code> when <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>() are emitted, but also when the windows are closed afterwards by session management.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">sessionId</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_saving_session(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_isSavingSession(
            self as *const crate::QGuiApplication,
        )
    }

    /// <p>Returns <code>true</code> if the application has been restored from an earlier <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session</a>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGuiApplication::isSessionRestored() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#isSessionRestored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the application has been restored from an earlier <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session</a>; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">sessionId</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_session_restored(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_isSessionRestored(
            self as *const crate::QGuiApplication,
        )
    }

    /// <p>Returns the current state of the modifier keys on the keyboard. The current state is updated sychronously as the event queue is emptied of events that will spontaneously change the keyboard state (<a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a> events).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QFlags<Qt::KeyboardModifier> QGuiApplication::keyboardModifiers()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current state of the modifier keys on the keyboard. The current state is updated sychronously as the event queue is emptied of events that will spontaneously change the keyboard state (<a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyPress</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::KeyRelease</a> events).</p>
    /// <p>It should be noted this may not reflect the actual keys held on the input device at the time of calling but rather the modifiers as last reported in one of the above events. If no keys are being held <a href="http://doc.qt.io/qt-5/qt.html#KeyboardModifier-enum">Qt::NoModifier</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#mouseButtons">mouseButtons</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#queryKeyboardModifiers">queryKeyboardModifiers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn keyboard_modifiers() -> ::qt_core::QFlags<::qt_core::KeyboardModifier> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_keyboardModifiers();
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>This property holds the default layout direction for this application</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static Qt::LayoutDirection QGuiApplication::layoutDirection()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#layoutDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the default layout direction for this application</p>
    /// <p>On system start-up, the default layout direction depends on the application's language.</p>
    /// <p>The notifier signal was introduced in Qt 5.4.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::LayoutDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>layoutDirection</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayoutDirection</b></span>(Qt::LayoutDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layoutDirectionChanged</b></span>(Qt::LayoutDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwidget.html#layoutDirection-prop">QWidget::layoutDirection</a>, <a href="http://doc.qt.io/qt-5/qguiapplication.html#isLeftToRight">isLeftToRight</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#isRightToLeft">isRightToLeft</a>().</p></div>
    #[inline(always)]
    pub unsafe fn layout_direction() -> ::qt_core::LayoutDirection {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_layoutDirection()
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QGuiApplication::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_metaObject(
            self as *const crate::QGuiApplication,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the most recently shown modal window. If no modal windows are visible, this function returns zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QWindow* QGuiApplication::modalWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#modalWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the most recently shown modal window. If no modal windows are visible, this function returns zero.</p>
    /// <p>A modal window is a window which has its <a href="http://doc.qt.io/qt-5/qwindow.html#modality-prop">modality</a> property set to <a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::WindowModal</a> or <a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::ApplicationModal</a>. A modal window must be closed before the user can continue with other parts of the program.</p>
    /// <p>Modal window are organized in a stack. This function returns the modal window at the top of the stack.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#WindowModality-enum">Qt::WindowModality</a> and <a href="http://doc.qt.io/qt-5/qwindow.html#modality-prop">QWindow::setModality</a>().</p></div>
    #[inline(always)]
    pub unsafe fn modal_window() -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_modalWindow();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the current state of the buttons on the mouse. The current state is updated syncronously as the event queue is emptied of events that will spontaneously change the mouse state (<a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonPress</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonRelease</a> events).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QFlags<Qt::MouseButton> QGuiApplication::mouseButtons()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#mouseButtons">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current state of the buttons on the mouse. The current state is updated syncronously as the event queue is emptied of events that will spontaneously change the mouse state (<a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonPress</a> and <a href="http://doc.qt.io/qt-5/qevent.html#Type-enum">QEvent::MouseButtonRelease</a> events).</p>
    /// <p>It should be noted this may not reflect the actual buttons held on the input device at the time of calling but rather the mouse buttons as last reported in one of the above events. If no mouse buttons are being held <a href="http://doc.qt.io/qt-5/qt.html#MouseButton-enum">Qt::NoButton</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers">keyboardModifiers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mouse_buttons() -> ::qt_core::QFlags<::qt_core::MouseButton> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_mouseButtons();
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Initializes the window system and constructs an application object with <i>argc</i> command line arguments in <i>argv</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGuiApplication::QGuiApplication(int& argc, char** argv, int arg3 = …)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qguiapplication.html#QGuiApplication">C++ documentation</a> for <span style='color: green;'>```QGuiApplication::QGuiApplication(int &argc, char **argv)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Initializes the window system and constructs an application object with <i>argc</i> command line arguments in <i>argv</i>.</p>
    /// <p><b>Warning:</b> The data referred to by <i>argc</i> and <i>argv</i> must stay valid for the entire lifetime of the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> object. In addition, <i>argc</i> must be greater than zero and <i>argv</i> must contain at least one valid character string.</p>
    /// <p>The global <code>qApp</code> pointer refers to this application object. Only one application object should be created.</p>
    /// <p>This application object must be constructed before any <a href="http://doc.qt.io/qt-5/qpaintdevice.html">paint devices</a> (including pixmaps, bitmaps etc.).</p>
    /// <p><b>Note: </b><i>argc</i> and <i>argv</i> might be changed as Qt removes command line arguments that it recognizes.</p><a name="supported-command-line-options"></a>
    /// <h4>Supported Command Line Options</h4>
    /// <p>All Qt programs automatically support a set of command-line options that allow modifying the way Qt will interact with the windowing system. Some of the options are also accessible via environment variables, which are the preferred form if the application can launch GUI sub-processes or other applications (environment variables will be inherited by child processes). When in doubt, use the environment variables.</p>
    /// <p>The options currently supported are the following:</p>
    /// <ul>
    /// <li><code>-platform</code> <i><a href="http://doc.qt.io/qt-5/qguiapplication.html#platformName-prop">platformName</a>[:options]</i>, specifies the <a href="http://doc.qt.io/qt-5/qt5-intro.html#qt-platform-abstraction">Qt Platform Abstraction</a> (QPA) plugin.<p>Overridden by the <code>QT_QPA_PLATFORM</code> environment variable.</p>
    /// </li>
    /// <li><code>-platformpluginpath</code> <i>path</i>, specifies the path to platform plugins.<p>Overridden by the <code>QT_QPA_PLATFORM_PLUGIN_PATH</code> environment variable.</p>
    /// </li>
    /// <li><code>-platformtheme</code> <i>platformTheme</i>, specifies the platform theme.<p>Overridden by the <code>QT_QPA_PLATFORMTHEME</code> environment variable.</p>
    /// </li>
    /// <li><code>-plugin</code> <i>plugin</i>, specifies additional plugins to load. The argument may appear multiple times.<p>Overridden by the <code>QT_QPA_GENERIC_PLUGINS</code> environment variable.</p>
    /// </li>
    /// <li><code>-qmljsdebugger=</code>, activates the QML/JS debugger with a specified port. The value must be of format <code>port:1234</code><i>[,block]</i>, where <i>block</i> is optional and will make the application wait until a debugger connects to it.</li>
    /// <li><code>-qwindowgeometry</code> <i>geometry</i>, specifies window geometry for the main window using the X11-syntax. For example: <code>-qwindowgeometry 100x100+50+50</code></li>
    /// <li><code>-qwindowicon</code>, sets the default window icon</li>
    /// <li><code>-qwindowtitle</code>, sets the title of the first window</li>
    /// <li><code>-reverse</code>, sets the application's layout direction to <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::RightToLeft</a>. This option is intended to aid debugging and should not be used in production. The default value is automatically detected from the user's locale (see also <a href="http://doc.qt.io/qt-5/qlocale.html#textDirection">QLocale::textDirection</a>()).</li>
    /// <li><code>-session</code> <i>session</i>, restores the application from an earlier <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session</a>.</li>
    /// </ul>
    /// <p>The following standard command line options are available for X11:</p>
    /// <ul>
    /// <li><code>-display</code> <i>hostname:screen_number</i>, switches displays on X11.<p>Overrides the <code>DISPLAY</code> environment variable.</p>
    /// </li>
    /// <li><code>-geometry</code> <i>geometry</i>, same as <code>-qwindowgeometry</code>.</li>
    /// </ul>
    /// <a name="platform-specific-arguments"></a>
    /// <h4>Platform-Specific Arguments</h4>
    /// <p>You can specify platform-specific arguments for the <code>-platform</code> option. Place them after the platform plugin name following a colon as a comma-separated list. For example, <code>-platform windows:dialogs=xp,fontengine=freetype</code>.</p>
    /// <p>The following parameters are available for <code>-platform windows</code>:</p>
    /// <ul>
    /// <li><code>dialogs=[xp|none]</code>, <code>xp</code> uses XP-style native dialogs and <code>none</code> disables them.</li>
    /// <li><code>fontengine=freetype</code>, uses the <a href="http://doc.qt.io/qt-5/qtgui-attribution-freetype.html#freetype">FreeType</a> font engine.</li>
    /// </ul>
    /// <p>For more information about the platform-specific arguments available for embedded Linux platforms, see <a href="http://doc.qt.io/qt-5/embedded-linux.html">Qt for Embedded Linux</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcoreapplication.html#arguments">arguments</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#platformName-prop">QGuiApplication::platformName</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        argc: impl ::cpp_core::CastInto<::cpp_core::MutRef<::std::os::raw::c_int>>,
        argv: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::os::raw::c_char>>,
        arg3: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QGuiApplication> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_QGuiApplication(
            ::cpp_core::CastInto::<::cpp_core::MutRef<::std::os::raw::c_int>>::cast_into(argc)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::os::raw::c_char>>::cast_into(
                argv,
            )
            .as_mut_raw_ptr(),
            arg3,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Initializes the window system and constructs an application object with <i>argc</i> command line arguments in <i>argv</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QGuiApplication::QGuiApplication(int& argc, char** argv)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qguiapplication.html#QGuiApplication">C++ documentation</a> for <span style='color: green;'>```QGuiApplication::QGuiApplication(int &argc, char **argv)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Initializes the window system and constructs an application object with <i>argc</i> command line arguments in <i>argv</i>.</p>
    /// <p><b>Warning:</b> The data referred to by <i>argc</i> and <i>argv</i> must stay valid for the entire lifetime of the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> object. In addition, <i>argc</i> must be greater than zero and <i>argv</i> must contain at least one valid character string.</p>
    /// <p>The global <code>qApp</code> pointer refers to this application object. Only one application object should be created.</p>
    /// <p>This application object must be constructed before any <a href="http://doc.qt.io/qt-5/qpaintdevice.html">paint devices</a> (including pixmaps, bitmaps etc.).</p>
    /// <p><b>Note: </b><i>argc</i> and <i>argv</i> might be changed as Qt removes command line arguments that it recognizes.</p><a name="supported-command-line-options"></a>
    /// <h4>Supported Command Line Options</h4>
    /// <p>All Qt programs automatically support a set of command-line options that allow modifying the way Qt will interact with the windowing system. Some of the options are also accessible via environment variables, which are the preferred form if the application can launch GUI sub-processes or other applications (environment variables will be inherited by child processes). When in doubt, use the environment variables.</p>
    /// <p>The options currently supported are the following:</p>
    /// <ul>
    /// <li><code>-platform</code> <i><a href="http://doc.qt.io/qt-5/qguiapplication.html#platformName-prop">platformName</a>[:options]</i>, specifies the <a href="http://doc.qt.io/qt-5/qt5-intro.html#qt-platform-abstraction">Qt Platform Abstraction</a> (QPA) plugin.<p>Overridden by the <code>QT_QPA_PLATFORM</code> environment variable.</p>
    /// </li>
    /// <li><code>-platformpluginpath</code> <i>path</i>, specifies the path to platform plugins.<p>Overridden by the <code>QT_QPA_PLATFORM_PLUGIN_PATH</code> environment variable.</p>
    /// </li>
    /// <li><code>-platformtheme</code> <i>platformTheme</i>, specifies the platform theme.<p>Overridden by the <code>QT_QPA_PLATFORMTHEME</code> environment variable.</p>
    /// </li>
    /// <li><code>-plugin</code> <i>plugin</i>, specifies additional plugins to load. The argument may appear multiple times.<p>Overridden by the <code>QT_QPA_GENERIC_PLUGINS</code> environment variable.</p>
    /// </li>
    /// <li><code>-qmljsdebugger=</code>, activates the QML/JS debugger with a specified port. The value must be of format <code>port:1234</code><i>[,block]</i>, where <i>block</i> is optional and will make the application wait until a debugger connects to it.</li>
    /// <li><code>-qwindowgeometry</code> <i>geometry</i>, specifies window geometry for the main window using the X11-syntax. For example: <code>-qwindowgeometry 100x100+50+50</code></li>
    /// <li><code>-qwindowicon</code>, sets the default window icon</li>
    /// <li><code>-qwindowtitle</code>, sets the title of the first window</li>
    /// <li><code>-reverse</code>, sets the application's layout direction to <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::RightToLeft</a>. This option is intended to aid debugging and should not be used in production. The default value is automatically detected from the user's locale (see also <a href="http://doc.qt.io/qt-5/qlocale.html#textDirection">QLocale::textDirection</a>()).</li>
    /// <li><code>-session</code> <i>session</i>, restores the application from an earlier <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session</a>.</li>
    /// </ul>
    /// <p>The following standard command line options are available for X11:</p>
    /// <ul>
    /// <li><code>-display</code> <i>hostname:screen_number</i>, switches displays on X11.<p>Overrides the <code>DISPLAY</code> environment variable.</p>
    /// </li>
    /// <li><code>-geometry</code> <i>geometry</i>, same as <code>-qwindowgeometry</code>.</li>
    /// </ul>
    /// <a name="platform-specific-arguments"></a>
    /// <h4>Platform-Specific Arguments</h4>
    /// <p>You can specify platform-specific arguments for the <code>-platform</code> option. Place them after the platform plugin name following a colon as a comma-separated list. For example, <code>-platform windows:dialogs=xp,fontengine=freetype</code>.</p>
    /// <p>The following parameters are available for <code>-platform windows</code>:</p>
    /// <ul>
    /// <li><code>dialogs=[xp|none]</code>, <code>xp</code> uses XP-style native dialogs and <code>none</code> disables them.</li>
    /// <li><code>fontengine=freetype</code>, uses the <a href="http://doc.qt.io/qt-5/qtgui-attribution-freetype.html#freetype">FreeType</a> font engine.</li>
    /// </ul>
    /// <p>For more information about the platform-specific arguments available for embedded Linux platforms, see <a href="http://doc.qt.io/qt-5/embedded-linux.html">Qt for Embedded Linux</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcoreapplication.html#arguments">arguments</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#platformName-prop">QGuiApplication::platformName</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        argc: impl ::cpp_core::CastInto<::cpp_core::MutRef<::std::os::raw::c_int>>,
        argv: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QGuiApplication> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_QGuiApplication2(
            ::cpp_core::CastInto::<::cpp_core::MutRef<::std::os::raw::c_int>>::cast_into(argc)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::os::raw::c_char>>::cast_into(
                argv,
            )
            .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qcoreapplication.html#notify">QCoreApplication::notify</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QGuiApplication::notify(QObject* arg1, QEvent* arg2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#notify">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qcoreapplication.html#notify">QCoreApplication::notify</a>().</p></div>
    #[inline(always)]
    pub unsafe fn notify(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QEvent>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_notify(
            self as *mut crate::QGuiApplication,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(arg1)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QEvent>>::cast_into(arg2)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the active application override cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QCursor* QGuiApplication::overrideCursor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#overrideCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the active application override cursor.</p>
    /// <p>This function returns 0 if no application cursor has been defined (i.e. the internal cursor stack is empty).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#restoreOverrideCursor">restoreOverrideCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn override_cursor() -> ::cpp_core::MutPtr<crate::QCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_overrideCursor();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the default application palette.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPalette QGuiApplication::palette()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#palette">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the default application palette.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setPalette">setPalette</a>().</p></div>
    #[inline(always)]
    pub unsafe fn palette() -> ::cpp_core::CppBox<crate::QPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_palette();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a function pointer from the platformplugin matching <i>function</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void (*FN_PTR)() QGuiApplication::platformFunction(const QByteArray& function)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#platformFunction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a function pointer from the platformplugin matching <i>function</i></p></div>
    #[inline(always)]
    pub unsafe fn platform_function(
        function: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::std::option::Option<extern "C" fn()> {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_platformFunction(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(function)
                .as_raw_ptr(),
        )
    }

    /// <p>This property holds the name of the underlying platform plugin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QGuiApplication::platformName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#platformName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the name of the underlying platform plugin.</p>
    /// <p>The QPA platform plugins are located in <code>qtbase\src\plugins\platforms</code>. At the time of writing, the following platform plugin names are supported:</p>
    /// <ul>
    /// <li><code>android</code></li>
    /// <li><code>cocoa</code> is a platform plugin for <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>.</li>
    /// <li><code>directfb</code></li>
    /// <li><code>eglfs</code> is a platform plugin for running Qt5 applications on top of EGL and OpenGL ES 2.0 without an actual windowing system (like X11 or Wayland). For more information, see <a href="http://doc.qt.io/qt-5/vxworks.html#eglfs">EGLFS</a>.</li>
    /// <li><code>ios</code> (also used for tvOS)</li>
    /// <li><code>kms</code> is an experimental platform plugin using kernel modesetting and <a href="http://dri.freedesktop.org/wiki/DRM">DRM</a> (Direct Rendering Manager).</li>
    /// <li><code>linuxfb</code> writes directly to the framebuffer. For more information, see <a href="http://doc.qt.io/qt-5/embedded-linux.html#linuxfb">LinuxFB</a>.</li>
    /// <li><code>minimal</code> is provided as an examples for developers who want to write their own platform plugins. However, you can use the plugin to run GUI applications in environments without a GUI, such as servers.</li>
    /// <li><code>minimalegl</code> is an example plugin.</li>
    /// <li><code>offscreen</code></li>
    /// <li><code>openwfd</code></li>
    /// <li><code>qnx</code></li>
    /// <li><code>windows</code></li>
    /// <li><code>xcb</code> is the X11 plugin used on regular desktop Linux platforms.</li>
    /// </ul>
    /// <p>For more information about the platform plugins for embedded Linux devices, see <a href="http://doc.qt.io/qt-5/embedded-linux.html">Qt for Embedded Linux</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>platformName</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn platform_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_platformName();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the primary (or default) screen of the application.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QScreen* QGuiApplication::primaryScreen()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#primaryScreen-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the primary (or default) screen of the application.</p>
    /// <p>This will be the screen where QWindows are initially shown, unless otherwise specified.</p>
    /// <p>The primaryScreenChanged signal was introduced in Qt 5.6.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QScreen *</td><td class="memItemRight bottomAlign"><span class="name"><b>primaryScreen</b></span>()</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primaryScreenChanged</b></span>(QScreen *<i>screen</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#screens">screens</a>().</p></div>
    #[inline(always)]
    pub unsafe fn primary_screen() -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_primaryScreen();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QGuiApplication::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_qt_metacall(
            self as *mut crate::QGuiApplication,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QGuiApplication::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_qt_metacast(
            self as *mut crate::QGuiApplication,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Queries and returns the state of the modifier keys on the keyboard. Unlike <a href="http://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers">keyboardModifiers</a>, this method returns the actual keys held on the input device at the time of calling the method.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QFlags<Qt::KeyboardModifier> QGuiApplication::queryKeyboardModifiers()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#queryKeyboardModifiers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Queries and returns the state of the modifier keys on the keyboard. Unlike <a href="http://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers">keyboardModifiers</a>, this method returns the actual keys held on the input device at the time of calling the method.</p>
    /// <p>It does not rely on the keypress events having been received by this process, which makes it possible to check the modifiers while moving a window, for instance. Note that in most cases, you should use <a href="http://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers">keyboardModifiers</a>(), which is faster and more accurate since it contains the state of the modifiers as they were when the currently processed event was received.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers">keyboardModifiers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn query_keyboard_modifiers() -> ::qt_core::QFlags<::qt_core::KeyboardModifier> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_queryKeyboardModifiers();
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>This property holds whether the application implicitly quits when the last window is closed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QGuiApplication::quitOnLastWindowClosed()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#quitOnLastWindowClosed-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the application implicitly quits when the last window is closed.</p>
    /// <p>The default is <code>true</code>.</p>
    /// <p>If this property is <code>true</code>, the applications quits when the last visible primary window (i.e. window with no parent) is closed.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>quitOnLastWindowClosed</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuitOnLastWindowClosed</b></span>(bool <i>quit</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcoreapplication.html#quit">quit</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#close">QWindow::close</a>().</p></div>
    #[inline(always)]
    pub unsafe fn quit_on_last_window_closed() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_quitOnLastWindowClosed()
    }

    /// <p>Undoes the last <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::restoreOverrideCursor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#restoreOverrideCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Undoes the last <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>().</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>() has been called twice, calling restoreOverrideCursor() will activate the first cursor set. Calling this function a second time restores the original widgets' cursors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">setOverrideCursor</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#overrideCursor">overrideCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn restore_override_cursor() {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_restoreOverrideCursor()
    }

    /// <p>Returns the screen at <i>point</i>, or <code>nullptr</code> if outside of any screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QScreen* QGuiApplication::screenAt(const QPoint& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#screenAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the screen at <i>point</i>, or <code>nullptr</code> if outside of any screen.</p>
    /// <p>The <i>point</i> is in relation to the virtualGeometry() of each set of virtual siblings. If the point maps to more than one set of virtual siblings the first match is returned.</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn screen_at(
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_screenAt(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a list of all the screens associated with the windowing system the application is connected to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QScreen*> QGuiApplication::screens()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#screens">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of all the screens associated with the windowing system the application is connected to.</p></div>
    #[inline(always)]
    pub unsafe fn screens() -> ::cpp_core::CppBox<crate::QListOfQScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_screens();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session's</a> identifier.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QGuiApplication::sessionId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session's</a> identifier.</p>
    /// <p>If the application has been restored from an earlier session, this identifier is the same as it was in that previous session. The session identifier is guaranteed to be unique both for different applications and for different instances of the same application.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#isSessionRestored">isSessionRestored</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionKey">sessionKey</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>().</p></div>
    #[inline(always)]
    pub unsafe fn session_id(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_sessionId(
            self as *const crate::QGuiApplication,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the session key in the current <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QGuiApplication::sessionKey() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the session key in the current <a href="http://doc.qt.io/qt-5/ipc.html#session-management">session</a>.</p>
    /// <p>If the application has been restored from an earlier session, this key is the same as it was when the previous session ended.</p>
    /// <p>The session key changes every time the session is saved. If the shutdown process is cancelled, another session key will be used when shutting down again.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#isSessionRestored">isSessionRestored</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">sessionId</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">commitDataRequest</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">saveStateRequest</a>().</p></div>
    #[inline(always)]
    pub unsafe fn session_key(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_sessionKey(
            self as *const crate::QGuiApplication,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the user-visible name of this application</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setApplicationDisplayName(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#applicationDisplayName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the user-visible name of this application</p>
    /// <p>This name is shown to the user, for instance in window titles. It can be translated, if necessary.</p>
    /// <p>If not set, the application display name defaults to the application name.</p>
    /// <p>This property was introduced in  Qt 5.0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>applicationDisplayName</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setApplicationDisplayName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>applicationDisplayNameChanged</b></span>()</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcoreapplication.html#applicationName-prop">applicationName</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_application_display_name(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setApplicationDisplayName(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This property holds the base name of the desktop entry for this application</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setDesktopFileName(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#desktopFileName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the base name of the desktop entry for this application</p>
    /// <p>This is the file name, without the full path, of the desktop entry that represents this application according to the freedesktop desktop entry specification.</p>
    /// <p>This property gives a precise indication of what desktop entry represents the application and it is needed by the windowing system to retrieve such information without resorting to imprecise heuristics.</p>
    /// <p>The latest version of the freedesktop desktop entry specification can be obtained <a href="http://standards.freedesktop.org/desktop-entry-spec/latest/">here</a>.</p>
    /// <p>This property was introduced in  Qt 5.7.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>desktopFileName</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDesktopFileName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_desktop_file_name(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setDesktopFileName(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets whether Qt should use the system's standard colors, fonts, etc., to <i>on</i>. By default, this is <code>true</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setDesktopSettingsAware(bool on)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#setDesktopSettingsAware">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether Qt should use the system's standard colors, fonts, etc., to <i>on</i>. By default, this is <code>true</code>.</p>
    /// <p>This function must be called before creating the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> object, like this:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">int</span> main(<span class="type">int</span> argc<span class="operator">,</span> <span class="type">char</span> <span class="operator">*</span>argv<span class="operator">[</span><span class="operator">]</span>)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a></span><span class="operator">::</span>setDesktopSettingsAware(<span class="keyword">false</span>);
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a></span> app(argc<span class="operator">,</span> argv);
    /// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    /// &#32;     <span class="keyword">return</span> app<span class="operator">.</span>exec();
    ///   }
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#desktopSettingsAware">desktopSettingsAware</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_desktop_settings_aware(on: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setDesktopSettingsAware(on)
    }

    /// <p>Sets whether <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> will use fallback session management to <i>enabled</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setFallbackSessionManagementEnabled(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#setFallbackSessionManagementEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> will use fallback session management to <i>enabled</i>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#isFallbackSessionManagementEnabled">isFallbackSessionManagementEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_fallback_session_management_enabled(arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setFallbackSessionManagementEnabled(arg1)
    }

    /// <p>Changes the default application font to <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setFont(const QFont& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#setFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Changes the default application font to <i>font</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font(arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setFont(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>This property holds the default layout direction for this application</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setLayoutDirection(Qt::LayoutDirection direction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#layoutDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the default layout direction for this application</p>
    /// <p>On system start-up, the default layout direction depends on the application's language.</p>
    /// <p>The notifier signal was introduced in Qt 5.4.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::LayoutDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>layoutDirection</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayoutDirection</b></span>(Qt::LayoutDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layoutDirectionChanged</b></span>(Qt::LayoutDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwidget.html#layoutDirection-prop">QWidget::layoutDirection</a>, <a href="http://doc.qt.io/qt-5/qguiapplication.html#isLeftToRight">isLeftToRight</a>(), and <a href="http://doc.qt.io/qt-5/qguiapplication.html#isRightToLeft">isRightToLeft</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_layout_direction(direction: ::qt_core::LayoutDirection) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setLayoutDirection(direction)
    }

    /// <p>Sets the application override cursor to <i>cursor</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setOverrideCursor(const QCursor& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#setOverrideCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the application override cursor to <i>cursor</i>.</p>
    /// <p>Application override cursors are intended for showing the user that the application is in a special state, for example during an operation that might take some time.</p>
    /// <p>This cursor will be displayed in all the application's widgets until <a href="http://doc.qt.io/qt-5/qguiapplication.html#restoreOverrideCursor">restoreOverrideCursor</a>() or another setOverrideCursor() is called.</p>
    /// <p>Application cursors are stored on an internal stack. setOverrideCursor() pushes the cursor onto the stack, and <a href="http://doc.qt.io/qt-5/qguiapplication.html#restoreOverrideCursor">restoreOverrideCursor</a>() pops the active cursor off the stack. <a href="http://doc.qt.io/qt-5/qguiapplication.html#changeOverrideCursor">changeOverrideCursor</a>() changes the curently active application override cursor.</p>
    /// <p>Every setOverrideCursor() must eventually be followed by a corresponding <a href="http://doc.qt.io/qt-5/qguiapplication.html#restoreOverrideCursor">restoreOverrideCursor</a>(), otherwise the stack will never be emptied.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a></span><span class="operator">::</span>setOverrideCursor(<span class="type"><a href="http://doc.qt.io/qt-5/qcursor.html">QCursor</a></span>(<span class="type">Qt</span><span class="operator">::</span>WaitCursor));
    ///   calculateHugeMandelbrot();              <span class="comment">// lunch time...</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a></span><span class="operator">::</span>restoreOverrideCursor();
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#overrideCursor">overrideCursor</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#restoreOverrideCursor">restoreOverrideCursor</a>(), <a href="http://doc.qt.io/qt-5/qguiapplication.html#changeOverrideCursor">changeOverrideCursor</a>(), and <a href="http://doc.qt.io/qt-5/qwidget.html#cursor-prop">QWidget::setCursor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_override_cursor(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setOverrideCursor(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QCursor>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Changes the default application palette to <i>pal</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setPalette(const QPalette& pal)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#setPalette">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Changes the default application palette to <i>pal</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#palette">palette</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_palette(pal: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPalette>>) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setPalette(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPalette>>::cast_into(pal).as_raw_ptr(),
        )
    }

    /// <p>This property holds whether the application implicitly quits when the last window is closed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setQuitOnLastWindowClosed(bool quit)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#quitOnLastWindowClosed-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the application implicitly quits when the last window is closed.</p>
    /// <p>The default is <code>true</code>.</p>
    /// <p>If this property is <code>true</code>, the applications quits when the last visible primary window (i.e. window with no parent) is closed.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>quitOnLastWindowClosed</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuitOnLastWindowClosed</b></span>(bool <i>quit</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcoreapplication.html#quit">quit</a>() and <a href="http://doc.qt.io/qt-5/qwindow.html#close">QWindow::close</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_quit_on_last_window_closed(quit: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setQuitOnLastWindowClosed(quit)
    }

    /// <p>This property holds the default window icon</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::setWindowIcon(const QIcon& icon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#windowIcon-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the default window icon</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QIcon </td><td class="memItemRight bottomAlign"><span class="name"><b>windowIcon</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWindowIcon</b></span>(const QIcon &amp;<i>icon</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setIcon">QWindow::setIcon</a>() and <a href="http://doc.qt.io/qt-5/appicon.html">Setting the Application Icon</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_window_icon(icon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIcon>>) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_setWindowIcon(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIcon>>::cast_into(icon).as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the application's style hints.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStyleHints* QGuiApplication::styleHints()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#styleHints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the application's style hints.</p>
    /// <p>The style hints encapsulate a set of platform dependent properties such as double click intervals, full width selection and others.</p>
    /// <p>The hints can be used to integrate tighter with the underlying platform.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstylehints.html">QStyleHints</a>.</p></div>
    #[inline(always)]
    pub unsafe fn style_hints() -> ::cpp_core::MutPtr<crate::QStyleHints> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_styleHints();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Function that can be used to sync Qt state with the Window Systems state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QGuiApplication::sync()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#sync">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Function that can be used to sync Qt state with the Window Systems state.</p>
    /// <p>This function will first empty Qts events by calling <a href="http://doc.qt.io/qt-5/qcoreapplication.html#processEvents">QCoreApplication::processEvents</a>(), then the platform plugin will sync up with the windowsystem, and finally Qts events will be delived by another call to <a href="http://doc.qt.io/qt-5/qcoreapplication.html#processEvents">QCoreApplication::processEvents</a>();</p>
    /// <p>This function is timeconsuming and its use is discouraged.</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn sync() {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_sync()
    }

    /// <p>Returns the top level window at the given position <i>pos</i>, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QWindow* QGuiApplication::topLevelAt(const QPoint& pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#topLevelAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the top level window at the given position <i>pos</i>, if any.</p></div>
    #[inline(always)]
    pub unsafe fn top_level_at(
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_topLevelAt(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(pos).as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a list of the top-level windows in the application.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QWindow*> QGuiApplication::topLevelWindows()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#topLevelWindows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of the top-level windows in the application.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#allWindows">allWindows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn top_level_windows() -> ::cpp_core::CppBox<crate::QListOfQWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_topLevelWindows();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QGuiApplication::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QGuiApplication::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the default window icon</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QIcon QGuiApplication::windowIcon()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#windowIcon-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the default window icon</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QIcon </td><td class="memItemRight bottomAlign"><span class="name"><b>windowIcon</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWindowIcon</b></span>(const QIcon &amp;<i>icon</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#setIcon">QWindow::setIcon</a>() and <a href="http://doc.qt.io/qt-5/appicon.html">Setting the Application Icon</a>.</p></div>
    #[inline(always)]
    pub unsafe fn window_icon() -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_windowIcon();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_icon_engine {
    //! C++ type: <span style='color: green;'>```QIconEngine```</span>

    /// <p>These enum values are used for <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() to allow additional queries to icon engine without breaking binary compatibility.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QIconEngine::IconEngineHook```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>These enum values are used for <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() to allow additional queries to icon engine without breaking binary compatibility.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct IconEngineHook(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for IconEngineHook {
        fn from(value: ::std::os::raw::c_int) -> Self {
            IconEngineHook(value)
        }
    }

    impl From<IconEngineHook> for ::std::os::raw::c_int {
        fn from(value: IconEngineHook) -> Self {
            value.0
        }
    }

    impl IconEngineHook {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl IconEngineHook {
        /// Allows to query the sizes of the contained pixmaps for pixmap-based engines. The <i>data</i> argument of the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function is a <a href="http://doc.qt.io/qt-5/qiconengine-availablesizesargument.html">AvailableSizesArgument</a> pointer that should be filled with icon sizes. Engines that work in terms of a scalable, vectorial format normally return an empty list. (C++ enum variant: <span style='color: green;'>```AvailableSizesHook = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AvailableSizesHook: crate::q_icon_engine::IconEngineHook =
            crate::q_icon_engine::IconEngineHook(1);
        /// Allows to query the name used to create the icon, for example when instantiating an icon using <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">QIcon::fromTheme</a>(). (C++ enum variant: <span style='color: green;'>```IconNameHook = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const IconNameHook: crate::q_icon_engine::IconEngineHook =
            crate::q_icon_engine::IconEngineHook(2);
        /// Allow to query if this engine represents a null icon. The <i>data</i> argument of the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() is a pointer to a bool that can be set to true if the icon is null. This enum value was added in Qt 5.7. (C++ enum variant: <span style='color: green;'>```IsNullHook = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const IsNullHook: crate::q_icon_engine::IconEngineHook =
            crate::q_icon_engine::IconEngineHook(3);
        /// Provides a way to get a pixmap that is scaled according to the given scale (typically equal to the <a href="http://doc.qt.io/qt-5/highdpi.html#glossary-of-high-dpi-terms">device pixel ratio</a>). The <i>data</i> argument of the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function is a <a href="http://doc.qt.io/qt-5/qiconengine-scaledpixmapargument.html">ScaledPixmapArgument</a> pointer that contains both the input and output arguments. This enum value was added in Qt 5.9. (C++ enum variant: <span style='color: green;'>```ScaledPixmapHook = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScaledPixmapHook: crate::q_icon_engine::IconEngineHook =
            crate::q_icon_engine::IconEngineHook(4);
    }

    /// <p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QIconEngine::AvailableSizesArgument```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine-availablesizesargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p></div>
    #[repr(C)]
    pub struct AvailableSizesArgument {
        _unused: u8,
    }
    impl AvailableSizesArgument {
        /// <p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QIconEngine::AvailableSizesArgument& QIconEngine::AvailableSizesArgument::operator=(const QIconEngine::AvailableSizesArgument& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qiconengine-availablesizesargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_icon_engine::AvailableSizesArgument>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_icon_engine::AvailableSizesArgument> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QIconEngine_AvailableSizesArgument_operator_(
                    self as *mut crate::q_icon_engine::AvailableSizesArgument,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_icon_engine::AvailableSizesArgument>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```mode```</span> field.
        #[inline(always)]
        pub unsafe fn mode(&self) -> crate::q_icon::Mode {
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_AvailableSizesArgument_mode(
                self as *const crate::q_icon_engine::AvailableSizesArgument,
            )
        }

        /// <p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QIconEngine::AvailableSizesArgument::AvailableSizesArgument()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qiconengine-availablesizesargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_icon_engine::AvailableSizesArgument> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_AvailableSizesArgument_AvailableSizesArgument();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QIconEngine::AvailableSizesArgument::AvailableSizesArgument(const QIconEngine::AvailableSizesArgument& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qiconengine-availablesizesargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_icon_engine::AvailableSizesArgument>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_icon_engine::AvailableSizesArgument> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_AvailableSizesArgument_AvailableSizesArgument1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_icon_engine::AvailableSizesArgument>>::cast_into(other).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Sets the value of the <span style='color: green;'>```mode```</span> field.
        #[inline(always)]
        pub unsafe fn set_mode(&mut self, value: crate::q_icon::Mode) {
            crate::__ffi::ctr_qt_gui_ffi_set_QIconEngine_AvailableSizesArgument_mode(
                self as *mut crate::q_icon_engine::AvailableSizesArgument,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```sizes```</span> field.
        #[inline(always)]
        pub unsafe fn set_sizes(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQSize>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QIconEngine_AvailableSizesArgument_sizes(
                self as *mut crate::q_icon_engine::AvailableSizesArgument,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQSize>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Sets the value of the <span style='color: green;'>```state```</span> field.
        #[inline(always)]
        pub unsafe fn set_state(&mut self, value: crate::q_icon::State) {
            crate::__ffi::ctr_qt_gui_ffi_set_QIconEngine_AvailableSizesArgument_state(
                self as *mut crate::q_icon_engine::AvailableSizesArgument,
                value,
            )
        }

        /// Returns a reference to the <span style='color: green;'>```sizes```</span> field.
        #[inline(always)]
        pub unsafe fn sizes(&self) -> ::cpp_core::Ref<crate::QListOfQSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_AvailableSizesArgument_sizes(
                self as *const crate::q_icon_engine::AvailableSizesArgument,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```sizes```</span> field.
        #[inline(always)]
        pub unsafe fn sizes_mut(&mut self) -> ::cpp_core::MutRef<crate::QListOfQSize> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QIconEngine_AvailableSizesArgument_sizes_mut(
                    self as *mut crate::q_icon_engine::AvailableSizesArgument,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```state```</span> field.
        #[inline(always)]
        pub unsafe fn state(&self) -> crate::q_icon::State {
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_AvailableSizesArgument_state(
                self as *const crate::q_icon_engine::AvailableSizesArgument,
            )
        }
    }

    /// <p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QIconEngine::ScaledPixmapArgument```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine-scaledpixmapargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
    /// <p>The struct provides a way for icons created via <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">QIcon::fromTheme</a>() to return pixmaps that are designed for the current <a href="http://doc.qt.io/qt-5/highdpi.html#glossary-of-high-dpi-terms">device pixel ratio</a>. The scale for such an icon is specified using the <a href="https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout">Scale directory key</a> in the appropriate <code>index.theme</code> file.</p>
    /// <p>Icons created via other approaches will return the same result as a call to <a href="http://doc.qt.io/qt-5/qiconengine.html#pixmap">pixmap</a>() would, and continue to benefit from Qt's <a href="http://doc.qt.io/qt-5/qimagereader.html#high-resolution-versions-of-images">"@nx" high DPI syntax</a>.</p></div>
    #[repr(C)]
    pub struct ScaledPixmapArgument {
        _unused: u8,
    }
    impl ScaledPixmapArgument {
        /// <p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QIconEngine::ScaledPixmapArgument& QIconEngine::ScaledPixmapArgument::operator=(const QIconEngine::ScaledPixmapArgument& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qiconengine-scaledpixmapargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
        /// <p>The struct provides a way for icons created via <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">QIcon::fromTheme</a>() to return pixmaps that are designed for the current <a href="http://doc.qt.io/qt-5/highdpi.html#glossary-of-high-dpi-terms">device pixel ratio</a>. The scale for such an icon is specified using the <a href="https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout">Scale directory key</a> in the appropriate <code>index.theme</code> file.</p>
        /// <p>Icons created via other approaches will return the same result as a call to <a href="http://doc.qt.io/qt-5/qiconengine.html#pixmap">pixmap</a>() would, and continue to benefit from Qt's <a href="http://doc.qt.io/qt-5/qimagereader.html#high-resolution-versions-of-images">"@nx" high DPI syntax</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_icon_engine::ScaledPixmapArgument>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_icon_engine::ScaledPixmapArgument> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_operator_(
                    self as *mut crate::q_icon_engine::ScaledPixmapArgument,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_icon_engine::ScaledPixmapArgument>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```mode```</span> field.
        #[inline(always)]
        pub unsafe fn mode(&self) -> crate::q_icon::Mode {
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_mode(
                self as *const crate::q_icon_engine::ScaledPixmapArgument,
            )
        }

        /// <p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QIconEngine::ScaledPixmapArgument::ScaledPixmapArgument()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qiconengine-scaledpixmapargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
        /// <p>The struct provides a way for icons created via <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">QIcon::fromTheme</a>() to return pixmaps that are designed for the current <a href="http://doc.qt.io/qt-5/highdpi.html#glossary-of-high-dpi-terms">device pixel ratio</a>. The scale for such an icon is specified using the <a href="https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout">Scale directory key</a> in the appropriate <code>index.theme</code> file.</p>
        /// <p>Icons created via other approaches will return the same result as a call to <a href="http://doc.qt.io/qt-5/qiconengine.html#pixmap">pixmap</a>() would, and continue to benefit from Qt's <a href="http://doc.qt.io/qt-5/qimagereader.html#high-resolution-versions-of-images">"@nx" high DPI syntax</a>.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_icon_engine::ScaledPixmapArgument> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_ScaledPixmapArgument(
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QIconEngine::ScaledPixmapArgument::ScaledPixmapArgument(const QIconEngine::ScaledPixmapArgument& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qiconengine-scaledpixmapargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
        /// <p>The struct provides a way for icons created via <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">QIcon::fromTheme</a>() to return pixmaps that are designed for the current <a href="http://doc.qt.io/qt-5/highdpi.html#glossary-of-high-dpi-terms">device pixel ratio</a>. The scale for such an icon is specified using the <a href="https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout">Scale directory key</a> in the appropriate <code>index.theme</code> file.</p>
        /// <p>Icons created via other approaches will return the same result as a call to <a href="http://doc.qt.io/qt-5/qiconengine.html#pixmap">pixmap</a>() would, and continue to benefit from Qt's <a href="http://doc.qt.io/qt-5/qimagereader.html#high-resolution-versions-of-images">"@nx" high DPI syntax</a>.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_icon_engine::ScaledPixmapArgument>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_icon_engine::ScaledPixmapArgument> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_ScaledPixmapArgument1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_icon_engine::ScaledPixmapArgument>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Returns a reference to the <span style='color: green;'>```pixmap```</span> field.
        #[inline(always)]
        pub unsafe fn pixmap(&self) -> ::cpp_core::Ref<crate::QPixmap> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_pixmap(
                self as *const crate::q_icon_engine::ScaledPixmapArgument,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```pixmap```</span> field.
        #[inline(always)]
        pub unsafe fn pixmap_mut(&mut self) -> ::cpp_core::MutRef<crate::QPixmap> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_pixmap_mut(
                    self as *mut crate::q_icon_engine::ScaledPixmapArgument,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```scale```</span> field.
        #[inline(always)]
        pub unsafe fn scale(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_scale(
                self as *const crate::q_icon_engine::ScaledPixmapArgument,
            )
        }

        /// Sets the value of the <span style='color: green;'>```mode```</span> field.
        #[inline(always)]
        pub unsafe fn set_mode(&mut self, value: crate::q_icon::Mode) {
            crate::__ffi::ctr_qt_gui_ffi_set_QIconEngine_ScaledPixmapArgument_mode(
                self as *mut crate::q_icon_engine::ScaledPixmapArgument,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```pixmap```</span> field.
        #[inline(always)]
        pub unsafe fn set_pixmap(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QIconEngine_ScaledPixmapArgument_pixmap(
                self as *mut crate::q_icon_engine::ScaledPixmapArgument,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Sets the value of the <span style='color: green;'>```scale```</span> field.
        #[inline(always)]
        pub unsafe fn set_scale(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QIconEngine_ScaledPixmapArgument_scale(
                self as *mut crate::q_icon_engine::ScaledPixmapArgument,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```size```</span> field.
        #[inline(always)]
        pub unsafe fn set_size(
            &mut self,
            value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_set_QIconEngine_ScaledPixmapArgument_size(
                self as *mut crate::q_icon_engine::ScaledPixmapArgument,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(value)
                    .as_raw_ptr(),
            )
        }

        /// Sets the value of the <span style='color: green;'>```state```</span> field.
        #[inline(always)]
        pub unsafe fn set_state(&mut self, value: crate::q_icon::State) {
            crate::__ffi::ctr_qt_gui_ffi_set_QIconEngine_ScaledPixmapArgument_state(
                self as *mut crate::q_icon_engine::ScaledPixmapArgument,
                value,
            )
        }

        /// Returns a reference to the <span style='color: green;'>```size```</span> field.
        #[inline(always)]
        pub unsafe fn size(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_size(
                self as *const crate::q_icon_engine::ScaledPixmapArgument,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns a mutable reference to the <span style='color: green;'>```size```</span> field.
        #[inline(always)]
        pub unsafe fn size_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_size_mut(
                self as *mut crate::q_icon_engine::ScaledPixmapArgument,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```state```</span> field.
        #[inline(always)]
        pub unsafe fn state(&self) -> crate::q_icon::State {
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_state(
                self as *const crate::q_icon_engine::ScaledPixmapArgument,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_icon_engine::AvailableSizesArgument {
        /// <p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QIconEngine::AvailableSizesArgument::~AvailableSizesArgument()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qiconengine-availablesizesargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::AvailableSizesHook</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_AvailableSizesArgument_dAvailableSizesArgument(
                self as *mut crate::q_icon_engine::AvailableSizesArgument,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_icon_engine::ScaledPixmapArgument {
        /// <p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QIconEngine::ScaledPixmapArgument::~ScaledPixmapArgument()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qiconengine-scaledpixmapargument.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This struct represents arguments to the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() function when the <i>id</i> parameter is <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">QIconEngine::ScaledPixmapHook</a>.</p>
        /// <p>The struct provides a way for icons created via <a href="http://doc.qt.io/qt-5/qicon.html#fromTheme">QIcon::fromTheme</a>() to return pixmaps that are designed for the current <a href="http://doc.qt.io/qt-5/highdpi.html#glossary-of-high-dpi-terms">device pixel ratio</a>. The scale for such an icon is specified using the <a href="https://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout">Scale directory key</a> in the appropriate <code>index.theme</code> file.</p>
        /// <p>Icons created via other approaches will return the same result as a call to <a href="http://doc.qt.io/qt-5/qiconengine.html#pixmap">pixmap</a>() would, and continue to benefit from Qt's <a href="http://doc.qt.io/qt-5/qimagereader.html#high-resolution-versions-of-images">"@nx" high DPI syntax</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_ScaledPixmapArgument_dScaledPixmapArgument(
                self as *mut crate::q_icon_engine::ScaledPixmapArgument,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> class provides an abstract base class for <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> renderers.</p>
///
/// C++ class: <span style='color: green;'>```QIconEngine```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qiconengine.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> class provides an abstract base class for <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> renderers.</p>
/// <p>An icon engine provides the rendering functions for a <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>. Each icon has a corresponding icon engine that is responsible for drawing the icon with a requested size, mode and state.</p>
/// <p>The icon is rendered by the <a href="http://doc.qt.io/qt-5/qiconengine.html#paint">paint</a>() function, and the icon can additionally be obtained as a pixmap with the <a href="http://doc.qt.io/qt-5/qiconengine.html#pixmap">pixmap</a>() function (the default implementation simply uses <a href="http://doc.qt.io/qt-5/qiconengine.html#paint">paint</a>() to achieve this). The <a href="http://doc.qt.io/qt-5/qiconengine.html#addPixmap">addPixmap</a>() function can be used to add new pixmaps to the icon engine, and is used by <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> to add specialized custom pixmaps.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qiconengine.html#paint">paint</a>(), <a href="http://doc.qt.io/qt-5/qiconengine.html#pixmap">pixmap</a>(), and <a href="http://doc.qt.io/qt-5/qiconengine.html#addPixmap">addPixmap</a>() functions are all virtual, and can therefore be reimplemented in subclasses of <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a>.</p></div>
#[repr(C)]
pub struct QIconEngine {
    _unused: u8,
}
impl QIconEngine {
    /// <p>Returns the actual size of the icon the engine provides for the requested <i>size</i>, <i>mode</i> and <i>state</i>. The default implementation returns the given <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSize QIconEngine::actualSize(const QSize& size, QIcon::Mode mode, QIcon::State state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#actualSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the icon the engine provides for the requested <i>size</i>, <i>mode</i> and <i>state</i>. The default implementation returns the given <i>size</i>.</p></div>
    #[inline(always)]
    pub unsafe fn actual_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_actualSize(
            self as *mut crate::QIconEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Called by <a href="http://doc.qt.io/qt-5/qicon.html#addFile">QIcon::addFile</a>(). Adds a specialized pixmap from the file with the given <i>fileName</i>, <i>size</i>, <i>mode</i> and <i>state</i>. The default pixmap-based engine stores any supplied file names, and it loads the pixmaps on demand instead of using scaled pixmaps if the size of a pixmap matches the size of icon requested. Custom icon engines that implement scalable vector formats are free to ignores any extra files.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QIconEngine::addFile(const QString& fileName, const QSize& size, QIcon::Mode mode, QIcon::State state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#addFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Called by <a href="http://doc.qt.io/qt-5/qicon.html#addFile">QIcon::addFile</a>(). Adds a specialized pixmap from the file with the given <i>fileName</i>, <i>size</i>, <i>mode</i> and <i>state</i>. The default pixmap-based engine stores any supplied file names, and it loads the pixmaps on demand instead of using scaled pixmaps if the size of a pixmap matches the size of icon requested. Custom icon engines that implement scalable vector formats are free to ignores any extra files.</p></div>
    #[inline(always)]
    pub unsafe fn add_file(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIconEngine_addFile(
            self as *mut crate::QIconEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
        )
    }

    /// <p>Called by <a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">QIcon::addPixmap</a>(). Adds a specialized <i>pixmap</i> for the given <i>mode</i> and <i>state</i>. The default pixmap-based engine stores any supplied pixmaps, and it uses them instead of scaled pixmaps if the size of a pixmap matches the size of icon requested. Custom icon engines that implement scalable vector formats are free to ignores any extra pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QIconEngine::addPixmap(const QPixmap& pixmap, QIcon::Mode mode, QIcon::State state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#addPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Called by <a href="http://doc.qt.io/qt-5/qicon.html#addPixmap">QIcon::addPixmap</a>(). Adds a specialized <i>pixmap</i> for the given <i>mode</i> and <i>state</i>. The default pixmap-based engine stores any supplied pixmaps, and it uses them instead of scaled pixmaps if the size of a pixmap matches the size of icon requested. Custom icon engines that implement scalable vector formats are free to ignores any extra pixmaps.</p></div>
    #[inline(always)]
    pub unsafe fn add_pixmap(
        &mut self,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIconEngine_addPixmap(
            self as *mut crate::QIconEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            mode,
            state,
        )
    }

    /// <p>Returns sizes of all images that are contained in the engine for the specific <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = …, QIcon::State state = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#availableSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns sizes of all images that are contained in the engine for the specific <i>mode</i> and <i>state</i>.</p>
    /// <p><b>Note: </b>This is a helper method and the actual work is done by the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() method, hence this method depends on icon engine support and may not work with all icon engines.</p><p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn available_sizes_2a(
        &self,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_availableSizes(
            self as *const crate::QIconEngine,
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns sizes of all images that are contained in the engine for the specific <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#availableSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns sizes of all images that are contained in the engine for the specific <i>mode</i> and <i>state</i>.</p>
    /// <p><b>Note: </b>This is a helper method and the actual work is done by the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() method, hence this method depends on icon engine support and may not work with all icon engines.</p><p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn available_sizes_1a(
        &self,
        mode: crate::q_icon::Mode,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_availableSizes1(
            self as *const crate::QIconEngine,
            mode,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns sizes of all images that are contained in the engine for the specific <i>mode</i> and <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QList<QSize> QIconEngine::availableSizes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#availableSizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns sizes of all images that are contained in the engine for the specific <i>mode</i> and <i>state</i>.</p>
    /// <p><b>Note: </b>This is a helper method and the actual work is done by the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() method, hence this method depends on icon engine support and may not work with all icon engines.</p><p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn available_sizes_0a(&self) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_availableSizes2(
            self as *const crate::QIconEngine,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplement this method to return a clone of this icon engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QIconEngine* QIconEngine::clone() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#clone">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this method to return a clone of this icon engine.</p></div>
    #[inline(always)]
    pub unsafe fn clone(&self) -> ::cpp_core::MutPtr<crate::QIconEngine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_clone(self as *const crate::QIconEngine);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the name used to create the engine, if available.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QString QIconEngine::iconName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#iconName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name used to create the engine, if available.</p>
    /// <p><b>Note: </b>This is a helper method and the actual work is done by the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() method, hence this method depends on icon engine support and may not work with all icon engines.</p><p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn icon_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_iconName(self as *const crate::QIconEngine);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns true if this icon engine represent a null <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QIconEngine::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if this icon engine represent a null <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>.</p>
    /// <p><b>Note: </b>This is a helper method and the actual work is done by the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() method, hence this method depends on icon engine support and may not work with all icon engines.</p><p>This function was introduced in  Qt 5.7.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QIconEngine_isNull(self as *const crate::QIconEngine)
    }

    /// <p>Returns a key that identifies this icon engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QString QIconEngine::key() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#key">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a key that identifies this icon engine.</p></div>
    #[inline(always)]
    pub unsafe fn key(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QIconEngine_key(self as *const crate::QIconEngine);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Uses the given <i>painter</i> to paint the icon with the required <i>mode</i> and <i>state</i> into the rectangle <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QIconEngine::paint(QPainter* painter, const QRect& rect, QIcon::Mode mode, QIcon::State state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#paint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uses the given <i>painter</i> to paint the icon with the required <i>mode</i> and <i>state</i> into the rectangle <i>rect</i>.</p></div>
    #[inline(always)]
    pub unsafe fn paint(
        &mut self,
        painter: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIconEngine_paint(
            self as *mut crate::QIconEngine,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(painter)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            mode,
            state,
        )
    }

    /// <p>Returns the icon as a pixmap with the required <i>size</i>, <i>mode</i>, and <i>state</i>. The default implementation creates a new pixmap and calls <a href="http://doc.qt.io/qt-5/qiconengine.html#paint">paint</a>() to fill it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QPixmap QIconEngine::pixmap(const QSize& size, QIcon::Mode mode, QIcon::State state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#pixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the icon as a pixmap with the required <i>size</i>, <i>mode</i>, and <i>state</i>. The default implementation creates a new pixmap and calls <a href="http://doc.qt.io/qt-5/qiconengine.html#paint">paint</a>() to fill it.</p></div>
    #[inline(always)]
    pub unsafe fn pixmap(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_pixmap(
            self as *mut crate::QIconEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reads icon engine contents from the <a href="http://doc.qt.io/qt-5/qdatastream.html">QDataStream</a> <i>in</i>. Returns true if the contents were read; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QIconEngine::read(QDataStream& in)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#read">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reads icon engine contents from the <a href="http://doc.qt.io/qt-5/qdatastream.html">QDataStream</a> <i>in</i>. Returns true if the contents were read; otherwise returns <code>false</code>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a>'s default implementation always return false.</p></div>
    #[inline(always)]
    pub unsafe fn read(
        &mut self,
        in_: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QDataStream>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QIconEngine_read(
            self as *mut crate::QIconEngine,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QDataStream>>::cast_into(in_)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns a pixmap for the given <i>size</i>, <i>mode</i>, <i>state</i> and <i>scale</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QIconEngine::scaledPixmap(const QSize& size, QIcon::Mode mode, QIcon::State state, double scale)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#scaledPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pixmap for the given <i>size</i>, <i>mode</i>, <i>state</i> and <i>scale</i>.</p>
    /// <p>The <i>scale</i> argument is typically equal to the <a href="http://doc.qt.io/qt-5/highdpi.html#glossary-of-high-dpi-terms">device pixel ratio</a> of the display.</p>
    /// <p><b>Note: </b>This is a helper method and the actual work is done by the <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">virtual_hook</a>() method, hence this method depends on icon engine support and may not work with all icon engines.</p><p><b>Note: </b>Some engines may cast <i>scale</i> to an integer.</p><p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qiconengine-scaledpixmapargument.html">ScaledPixmapArgument</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scaled_pixmap(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        mode: crate::q_icon::Mode,
        state: crate::q_icon::State,
        scale: ::std::os::raw::c_double,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEngine_scaledPixmap(
            self as *mut crate::QIconEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            mode,
            state,
            scale,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Additional method to allow extending <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> without adding new virtual methods (and without breaking binary compatibility). The actual action and format of <i>data</i> depends on <i>id</i> argument which is in fact a constant from <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">IconEngineHook</a> enum.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QIconEngine::virtual_hook(int id, void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#virtual_hook">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Additional method to allow extending <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> without adding new virtual methods (and without breaking binary compatibility). The actual action and format of <i>data</i> depends on <i>id</i> argument which is in fact a constant from <a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">IconEngineHook</a> enum.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qiconengine.html#IconEngineHook-enum">IconEngineHook</a>.</p></div>
    #[inline(always)]
    pub unsafe fn virtual_hook(
        &mut self,
        id: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIconEngine_virtual_hook(
            self as *mut crate::QIconEngine,
            id,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Writes the contents of this engine to the <a href="http://doc.qt.io/qt-5/qdatastream.html">QDataStream</a> <i>out</i>. Returns <code>true</code> if the contents were written; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QIconEngine::write(QDataStream& out) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#write">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the contents of this engine to the <a href="http://doc.qt.io/qt-5/qdatastream.html">QDataStream</a> <i>out</i>. Returns <code>true</code> if the contents were written; otherwise returns <code>false</code>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a>'s default implementation always return false.</p></div>
    #[inline(always)]
    pub unsafe fn write(
        &self,
        out: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QDataStream>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QIconEngine_write(
            self as *const crate::QIconEngine,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QDataStream>>::cast_into(out)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qiconengineplugin.html">QIconEnginePlugin</a> class provides an abstract base for custom <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> plugins.</p>
///
/// C++ class: <span style='color: green;'>```QIconEnginePlugin```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qiconengineplugin.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qiconengineplugin.html">QIconEnginePlugin</a> class provides an abstract base for custom <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> plugins.</p>
/// <p>The icon engine plugin is a simple plugin interface that makes it easy to create custom icon engines that can be loaded dynamically into applications through <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a>. <a href="http://doc.qt.io/qt-5/qicon.html">QIcon</a> uses the file or resource name's suffix to determine what icon engine to use.</p>
/// <p>Writing a icon engine plugin is achieved by subclassing this base class, reimplementing the pure virtual function <a href="http://doc.qt.io/qt-5/qiconengineplugin.html#create">create</a>(), and exporting the class with the <a href="http://doc.qt.io/qt-5/qtplugin.html#Q_PLUGIN_METADATA">Q_PLUGIN_METADATA</a>() macro.</p>
/// <p>The json metadata should contain a list of icon engine keys that this plugin supports. The keys correspond to the suffix of the file or resource name used when the plugin was created. Keys are case insensitive.</p>
/// <pre class="cpp">
///
///   { <span class="string">"Keys"</span>: <span class="operator">[</span> <span class="string">"myiconengine"</span> <span class="operator">]</span> }
///
/// </pre></div>
#[repr(C)]
pub struct QIconEnginePlugin {
    _unused: u8,
}
impl QIconEnginePlugin {
    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> object for the icon with the given <i>filename</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QIconEngine* QIconEnginePlugin::create(const QString& filename = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengineplugin.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> object for the icon with the given <i>filename</i>.</p></div>
    #[inline(always)]
    pub unsafe fn create_1a(
        &mut self,
        filename: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::MutPtr<crate::QIconEngine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_create(
            self as *mut crate::QIconEnginePlugin,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(filename)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> object for the icon with the given <i>filename</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QIconEngine* QIconEnginePlugin::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengineplugin.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qiconengine.html">QIconEngine</a> object for the icon with the given <i>filename</i>.</p></div>
    #[inline(always)]
    pub unsafe fn create_0a(&mut self) -> ::cpp_core::MutPtr<crate::QIconEngine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_create1(
            self as *mut crate::QIconEnginePlugin,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QIconEnginePlugin::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_metaObject(
            self as *const crate::QIconEnginePlugin,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QIconEnginePlugin::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_qt_metacall(
            self as *mut crate::QIconEnginePlugin,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QIconEnginePlugin::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_qt_metacast(
            self as *mut crate::QIconEnginePlugin,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QIconEnginePlugin::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QIconEnginePlugin::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_image_io_handler {
    //! C++ type: <span style='color: green;'>```QImageIOHandler```</span>

    /// <p>This enum describes the different options supported by <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a>. Some options are used to query an image for properties, and others are used to toggle the way in which an image should be written.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QImageIOHandler::ImageOption```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different options supported by <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a>. Some options are used to query an image for properties, and others are used to toggle the way in which an image should be written.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ImageOption(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ImageOption {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ImageOption(value)
        }
    }

    impl From<ImageOption> for ::std::os::raw::c_int {
        fn from(value: ImageOption) -> Self {
            value.0
        }
    }

    impl ImageOption {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ImageOption {
        /// The original size of an image. A handler that supports this option is expected to read the size of the image from the image metadata, and return this size from <a href="http://doc.qt.io/qt-5/qimageiohandler.html#option">option</a>() as a <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>. (C++ enum variant: <span style='color: green;'>```Size = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Size: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(0);
        /// The clip rect, or ROI (Region Of Interest). A handler that supports this option is expected to only read the provided <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> area from the original image in <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>(), before any other transformation is applied. (C++ enum variant: <span style='color: green;'>```ClipRect = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ClipRect: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(1);
        /// The image description. Some image formats, such as GIF and PNG, allow embedding of text or comments into the image data (e.g., for storing copyright information). It's common that the text is stored in key-value pairs, but some formats store all text in one continuous block. <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> returns the text as one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>, where keys and values are separated by a ':', and keys-value pairs are separated by two newlines (\n\n). For example, "Title: Sunset\n\nAuthor: Jim Smith\nSarah Jones\n\n". Formats that store text in a single block can use "Description" as the key. (C++ enum variant: <span style='color: green;'>```Description = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Description: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(2);
        /// The scaled clip rect (or ROI, Region Of Interest) of the image. A handler that supports this option is expected to apply the provided clip rect (a <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>), after applying any scaling (ScaleSize) or regular clipping (ClipRect). If the handler does not support this option, <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will apply the scaled clip rect after the image has been read. (C++ enum variant: <span style='color: green;'>```ScaledClipRect = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScaledClipRect: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(3);
        /// The scaled size of the image. A handler that supports this option is expected to scale the image to the provided size (a <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a>), after applying any clip rect transformation (ClipRect). If the handler does not support this option, <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will perform the scaling after the image has been read. (C++ enum variant: <span style='color: green;'>```ScaledSize = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScaledSize: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(4);
        /// The compression ratio of the image data. A handler that supports this option is expected to set its compression rate depending on the value of this option (an int) when writing. (C++ enum variant: <span style='color: green;'>```CompressionRatio = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompressionRatio: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(5);
        /// The gamma level of the image. A handler that supports this option is expected to set the image gamma level depending on the value of this option (a float) when writing. (C++ enum variant: <span style='color: green;'>```Gamma = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const Gamma: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(6);
        /// The quality level of the image. A handler that supports this option is expected to set the image quality level depending on the value of this option (an int) when writing. (C++ enum variant: <span style='color: green;'>```Quality = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const Quality: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(7);
        /// The name of the image. A handler that supports this option is expected to read the name from the image metadata and return this as a <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>, or when writing an image it is expected to store the name in the image metadata. (C++ enum variant: <span style='color: green;'>```Name = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Name: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(8);
        /// The subtype of the image. A handler that supports this option can use the subtype value to help when reading and writing images. For example, a PPM handler may have a subtype value of "ppm" or "ppmraw". (C++ enum variant: <span style='color: green;'>```SubType = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const SubType: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(9);
        /// A handler that supports this option is expected to read the image in several passes, as if it was an animation. <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will treat the image as an animation. (C++ enum variant: <span style='color: green;'>```IncrementalReading = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const IncrementalReading: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(10);
        /// The endianness of the image. Certain image formats can be stored as BigEndian or LittleEndian. A handler that supports Endianness uses the value of this option to determine how the image should be stored. (C++ enum variant: <span style='color: green;'>```Endianness = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const Endianness: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(11);
        /// Image formats that support animation return true for this value in <a href="http://doc.qt.io/qt-5/qimageiohandler.html#supportsOption">supportsOption</a>(); otherwise, false is returned. (C++ enum variant: <span style='color: green;'>```Animation = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const Animation: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(12);
        /// Certain image formats allow the background color to be specified. A handler that supports BackgroundColor initializes the background color to this option (a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a>) when reading an image. (C++ enum variant: <span style='color: green;'>```BackgroundColor = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const BackgroundColor: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(13);
        /// The image's data format returned by the handler. This can be any of the formats listed in <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format</a>. (C++ enum variant: <span style='color: green;'>```ImageFormat = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const ImageFormat: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(14);
        /// Image formats that support different saving variants should return a list of supported variant names (<a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a>&gt;) in this option. (C++ enum variant: <span style='color: green;'>```SupportedSubTypes = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const SupportedSubTypes: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(15);
        /// . A handler which supports this option is expected to turn on optimization flags when writing. (C++ enum variant: <span style='color: green;'>```OptimizedWrite = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const OptimizedWrite: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(16);
        /// . A handler which supports this option is expected to write the image as a progressive scan image. (C++ enum variant: <span style='color: green;'>```ProgressiveScanWrite = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const ProgressiveScanWrite: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(17);
        /// . A handler which supports this option can read the transformation metadata of an image. A handler that supports this option should not apply the transformation itself. (C++ enum variant: <span style='color: green;'>```ImageTransformation = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const ImageTransformation: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(18);
        /// . A handler that reports support for this feature will have image transformation metadata applied by default on read. (C++ enum variant: <span style='color: green;'>```TransformedByDefault = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformedByDefault: crate::q_image_io_handler::ImageOption =
            crate::q_image_io_handler::ImageOption(19);
    }

    /// <p>This enum describes the different transformations or orientations supported by some image formats, usually through EXIF.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QImageIOHandler::Transformation```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#Transformation-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different transformations or orientations supported by some image formats, usually through EXIF.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.5.</p>
    /// <p>The Transformations type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;Transformation&gt;. It stores an OR combination of Transformation values.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#transformation">QImageReader::transformation</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoTransform">QImageReader::setAutoTransform</a>(), and <a href="http://doc.qt.io/qt-5/qimagewriter.html#setTransformation">QImageWriter::setTransformation</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Transformation(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Transformation {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Transformation(value)
        }
    }

    impl From<Transformation> for ::std::os::raw::c_int {
        fn from(value: Transformation) -> Self {
            value.0
        }
    }

    impl Transformation {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Transformation {
        /// No transformation should be applied. (C++ enum variant: <span style='color: green;'>```TransformationNone = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformationNone: crate::q_image_io_handler::Transformation =
            crate::q_image_io_handler::Transformation(0);
        /// Mirror the image horizontally. (C++ enum variant: <span style='color: green;'>```TransformationMirror = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformationMirror: crate::q_image_io_handler::Transformation =
            crate::q_image_io_handler::Transformation(1);
        /// Mirror the image vertically. (C++ enum variant: <span style='color: green;'>```TransformationFlip = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformationFlip: crate::q_image_io_handler::Transformation =
            crate::q_image_io_handler::Transformation(2);
        /// Rotate the image 180 degrees. This is the same as mirroring it both horizontally and vertically. (C++ enum variant: <span style='color: green;'>```TransformationRotate180 = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformationRotate180: crate::q_image_io_handler::Transformation =
            crate::q_image_io_handler::Transformation(3);
        /// Rotate the image 90 degrees. (C++ enum variant: <span style='color: green;'>```TransformationRotate90 = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformationRotate90: crate::q_image_io_handler::Transformation =
            crate::q_image_io_handler::Transformation(4);
        /// Mirror the image horizontally and then rotate it 90 degrees. (C++ enum variant: <span style='color: green;'>```TransformationMirrorAndRotate90 = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformationMirrorAndRotate90: crate::q_image_io_handler::Transformation =
            crate::q_image_io_handler::Transformation(5);
        /// Mirror the image vertically and then rotate it 90 degrees. (C++ enum variant: <span style='color: green;'>```TransformationFlipAndRotate90 = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformationFlipAndRotate90: crate::q_image_io_handler::Transformation =
            crate::q_image_io_handler::Transformation(6);
        /// Rotate the image 270 degrees. This is the same as mirroring it both horizontally, vertically and then rotating it 90 degrees. (C++ enum variant: <span style='color: green;'>```TransformationRotate270 = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const TransformationRotate270: crate::q_image_io_handler::Transformation =
            crate::q_image_io_handler::Transformation(7);
    }

    impl From<crate::q_image_io_handler::Transformation>
        for ::qt_core::QFlags<crate::q_image_io_handler::Transformation>
    {
        fn from(value: crate::q_image_io_handler::Transformation) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_image_io_handler::Transformation>>> std::ops::BitOr<T>
        for crate::q_image_io_handler::Transformation
    {
        type Output = ::qt_core::QFlags<crate::q_image_io_handler::Transformation>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_image_io_handler::Transformation> {
            Into::<::qt_core::QFlags<crate::q_image_io_handler::Transformation>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> class defines the common image I/O interface for all image formats in Qt.</p>
///
/// C++ class: <span style='color: green;'>```QImageIOHandler```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qimageiohandler.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> class defines the common image I/O interface for all image formats in Qt.</p>
/// <p>Qt uses <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> for reading and writing images through <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> and <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>. You can also derive from this class to write your own image format handler using Qt's plugin mechanism.</p>
/// <p>Call <a href="http://doc.qt.io/qt-5/qimageiohandler.html#setDevice">setDevice</a>() to assign a device to the handler, and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#setFormat">setFormat</a>() to assign a format to it. One <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> may support more than one image format. <a href="http://doc.qt.io/qt-5/qimageiohandler.html#canRead">canRead</a>() returns <code>true</code> if an image can be read from the device, and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#write">write</a>() return true if reading or writing an image was completed successfully.</p>
/// <p><a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> also has support for animations formats, through the functions <a href="http://doc.qt.io/qt-5/qimageiohandler.html#loopCount">loopCount</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#imageCount">imageCount</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#nextImageDelay">nextImageDelay</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#currentImageNumber">currentImageNumber</a>().</p>
/// <p>In order to determine what options an image handler supports, Qt will call <a href="http://doc.qt.io/qt-5/qimageiohandler.html#supportsOption">supportsOption</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#setOption">setOption</a>(). Make sure to reimplement these functions if you can provide support for any of the options in the <a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">ImageOption</a> enum.</p>
/// <p>To write your own image handler, you must at least reimplement <a href="http://doc.qt.io/qt-5/qimageiohandler.html#canRead">canRead</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>(). Then create a <a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a> that can create the handler. Finally, install your plugin, and <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> and <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will then automatically load the plugin, and start using it.</p></div>
#[repr(C)]
pub struct QImageIOHandler {
    _unused: u8,
}
impl QImageIOHandler {
    /// <p>Returns <code>true</code> if an image can be read from the device (i.e., the image format is supported, the device can be read from and the initial header information suggests that the image can be read); otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QImageIOHandler::canRead() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#canRead">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if an image can be read from the device (i.e., the image format is supported, the device can be read from and the initial header information suggests that the image can be read); otherwise returns <code>false</code>.</p>
    /// <p>When reimplementing canRead(), make sure that the I/O device (<a href="http://doc.qt.io/qt-5/qimageiohandler.html#device">device</a>()) is left in its original state (e.g., by using peek() rather than <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>() and <a href="http://doc.qt.io/qt-5/qiodevice.html#peek-1">QIODevice::peek</a>().</p></div>
    #[inline(always)]
    pub unsafe fn can_read(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_canRead(self as *const crate::QImageIOHandler)
    }

    /// <p>For image formats that support animation, this function returns the sequence number of the current image in the animation. If this function is called before any image is <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>(), -1 is returned. The number of the first image in the sequence is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QImageIOHandler::currentImageNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#currentImageNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the sequence number of the current image in the animation. If this function is called before any image is <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>(), -1 is returned. The number of the first image in the sequence is 0.</p>
    /// <p>If the image format does not support animation, 0 is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_image_number(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_currentImageNumber(
            self as *const crate::QImageIOHandler,
        )
    }

    /// <p>Returns the rect of the current image. If no rect is defined for the image, and empty QRect() is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QRect QImageIOHandler::currentImageRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#currentImageRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rect of the current image. If no rect is defined for the image, and empty QRect() is returned.</p>
    /// <p>This function is useful for animations, where only parts of the frame may be updated at a time.</p></div>
    #[inline(always)]
    pub unsafe fn current_image_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_currentImageRect(
            self as *const crate::QImageIOHandler,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the device currently assigned to the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a>. If not device has been assigned, 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIODevice* QImageIOHandler::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device currently assigned to the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a>. If not device has been assigned, 0 is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device(&self) -> ::cpp_core::MutPtr<::qt_core::QIODevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_device(
            self as *const crate::QImageIOHandler,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the format that is currently assigned to <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a>. If no format has been assigned, an empty string is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QImageIOHandler::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format that is currently assigned to <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a>. If no format has been assigned, an empty string is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_format(
            self as *const crate::QImageIOHandler,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>For image formats that support animation, this function returns the number of images in the animation. If the image format does not support animation, or if it is unable to determine the number of images, 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QImageIOHandler::imageCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#imageCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the number of images in the animation. If the image format does not support animation, or if it is unable to determine the number of images, 0 is returned.</p>
    /// <p>The default implementation returns 1 if <a href="http://doc.qt.io/qt-5/qimageiohandler.html#canRead">canRead</a>() returns <code>true</code>; otherwise 0 is returned.</p></div>
    #[inline(always)]
    pub unsafe fn image_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_imageCount(
            self as *const crate::QImageIOHandler,
        )
    }

    /// <p>For image formats that support animation, this function jumps to the image whose sequence number is <i>imageNumber</i>. The next call to <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>() will attempt to read this image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QImageIOHandler::jumpToImage(int imageNumber)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#jumpToImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function jumps to the image whose sequence number is <i>imageNumber</i>. The next call to <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>() will attempt to read this image.</p>
    /// <p>The default implementation does nothing, and returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn jump_to_image(&mut self, image_number: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_jumpToImage(
            self as *mut crate::QImageIOHandler,
            image_number,
        )
    }

    /// <p>For image formats that support animation, this function jumps to the next image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QImageIOHandler::jumpToNextImage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#jumpToNextImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function jumps to the next image.</p>
    /// <p>The default implementation does nothing, and returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn jump_to_next_image(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_jumpToNextImage(
            self as *mut crate::QImageIOHandler,
        )
    }

    /// <p>For image formats that support animation, this function returns the number of times the animation should loop. If the image format does not support animation, 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QImageIOHandler::loopCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#loopCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the number of times the animation should loop. If the image format does not support animation, 0 is returned.</p></div>
    #[inline(always)]
    pub unsafe fn loop_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_loopCount(
            self as *const crate::QImageIOHandler,
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qimageiohandler.html#format">format</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QByteArray QImageIOHandler::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler-obsolete.html#name">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qimageiohandler.html#format">format</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn name(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_name(
            self as *const crate::QImageIOHandler,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>For image formats that support animation, this function returns the number of milliseconds to wait until reading the next image. If the image format does not support animation, 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QImageIOHandler::nextImageDelay() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#nextImageDelay">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the number of milliseconds to wait until reading the next image. If the image format does not support animation, 0 is returned.</p></div>
    #[inline(always)]
    pub unsafe fn next_image_delay(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_nextImageDelay(
            self as *const crate::QImageIOHandler,
        )
    }

    /// <p>Returns the value assigned to <i>option</i> as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>. The type of the value depends on the option. For example, option(Size) returns a <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> variant.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVariant QImageIOHandler::option(QImageIOHandler::ImageOption option) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#option">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value assigned to <i>option</i> as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>. The type of the value depends on the option. For example, option(Size) returns a <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> variant.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#setOption">setOption</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#supportsOption">supportsOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn option(
        &self,
        option: crate::q_image_io_handler::ImageOption,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_option(
            self as *const crate::QImageIOHandler,
            option,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Read an image from the device, and stores it in <i>image</i>. Returns <code>true</code> if the image is successfully read; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QImageIOHandler::read(QImage* image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Read an image from the device, and stores it in <i>image</i>. Returns <code>true</code> if the image is successfully read; otherwise returns false.</p>
    /// <p>For image formats that support incremental loading, and for animation formats, the image handler can assume that <i>image</i> points to the previous frame.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#canRead">canRead</a>().</p></div>
    #[inline(always)]
    pub unsafe fn read(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QImage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_read(
            self as *mut crate::QImageIOHandler,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QImage>>::cast_into(image)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the device of the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> to <i>device</i>. The image handler will use this device when reading and writing images.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageIOHandler::setDevice(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#setDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the device of the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> to <i>device</i>. The image handler will use this device when reading and writing images.</p>
    /// <p>The device can only be set once and must be set before calling <a href="http://doc.qt.io/qt-5/qimageiohandler.html#canRead">canRead</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#read">read</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#write">write</a>(), etc. If you need to read multiple files, construct multiple instances of the appropriate <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> subclass.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#device">device</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_device(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_setDevice(
            self as *mut crate::QImageIOHandler,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the format of the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> to <i>format</i>. The format is most useful for handlers that support multiple image formats.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageIOHandler::setFormat(const QByteArray& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format of the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> to <i>format</i>. The format is most useful for handlers that support multiple image formats.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format_mut(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_setFormat(
            self as *mut crate::QImageIOHandler,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the format of the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> to <i>format</i>. The format is most useful for handlers that support multiple image formats.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageIOHandler::setFormat(const QByteArray& format) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#setFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format of the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> to <i>format</i>. The format is most useful for handlers that support multiple image formats.</p>
    /// <p>This function is declared const so that it can be called from <a href="http://doc.qt.io/qt-5/qimageiohandler.html#canRead">canRead</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_setFormat1(
            self as *const crate::QImageIOHandler,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the option <i>option</i> with the value <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QImageIOHandler::setOption(QImageIOHandler::ImageOption option, const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#setOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the option <i>option</i> with the value <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#option">option</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">ImageOption</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_option(
        &mut self,
        option: crate::q_image_io_handler::ImageOption,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_setOption(
            self as *mut crate::QImageIOHandler,
            option,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> supports the option <i>option</i>; otherwise returns <code>false</code>. For example, if the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> supports the <a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">Size</a> option, supportsOption(Size) must return true.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QImageIOHandler::supportsOption(QImageIOHandler::ImageOption option) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#supportsOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> supports the option <i>option</i>; otherwise returns <code>false</code>. For example, if the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> supports the <a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">Size</a> option, supportsOption(Size) must return true.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#setOption">setOption</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#option">option</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supports_option(&self, option: crate::q_image_io_handler::ImageOption) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_supportsOption(
            self as *const crate::QImageIOHandler,
            option,
        )
    }

    /// <p>Writes the image <i>image</i> to the assigned device. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QImageIOHandler::write(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#write">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the image <i>image</i> to the assigned device. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    /// <p>The default implementation does nothing, and simply returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn write(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_write(
            self as *mut crate::QImageIOHandler,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }
}

pub mod q_image_io_plugin {
    //! C++ type: <span style='color: green;'>```QImageIOPlugin```</span>

    /// <p>This enum describes the capabilities of a <a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QImageIOPlugin::Capability```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageioplugin.html#Capability-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the capabilities of a <a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a>.</p>
    ///
    /// <p>The Capabilities type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;Capability&gt;. It stores an OR combination of Capability values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Capability(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Capability {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Capability(value)
        }
    }

    impl From<Capability> for ::std::os::raw::c_int {
        fn from(value: Capability) -> Self {
            value.0
        }
    }

    impl Capability {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Capability {
        /// The plugin can read images. (C++ enum variant: <span style='color: green;'>```CanRead = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const CanRead: crate::q_image_io_plugin::Capability =
            crate::q_image_io_plugin::Capability(1);
        /// The plugin can write images. (C++ enum variant: <span style='color: green;'>```CanWrite = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const CanWrite: crate::q_image_io_plugin::Capability =
            crate::q_image_io_plugin::Capability(2);
        /// The plugin can read images incrementally. (C++ enum variant: <span style='color: green;'>```CanReadIncremental = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const CanReadIncremental: crate::q_image_io_plugin::Capability =
            crate::q_image_io_plugin::Capability(4);
    }

    impl From<crate::q_image_io_plugin::Capability>
        for ::qt_core::QFlags<crate::q_image_io_plugin::Capability>
    {
        fn from(value: crate::q_image_io_plugin::Capability) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_image_io_plugin::Capability>>> std::ops::BitOr<T>
        for crate::q_image_io_plugin::Capability
    {
        type Output = ::qt_core::QFlags<crate::q_image_io_plugin::Capability>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_image_io_plugin::Capability> {
            Into::<::qt_core::QFlags<crate::q_image_io_plugin::Capability>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a> class defines an interface for writing an image format plugin.</p>
///
/// C++ class: <span style='color: green;'>```QImageIOPlugin```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qimageioplugin.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a> class defines an interface for writing an image format plugin.</p>
/// <p><a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a> is a factory for creating <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> objects, which are used internally by <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> and <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> to add support for different image formats to Qt.</p>
/// <p>Writing an image I/O plugin is achieved by subclassing this base class, reimplementing the pure virtual functions <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">capabilities</a>() and <a href="http://doc.qt.io/qt-5/qimageioplugin.html#create">create</a>(), and exporting the class with the <a href="http://doc.qt.io/qt-5/qtplugin.html#Q_PLUGIN_METADATA">Q_PLUGIN_METADATA</a>() macro. See <a href="http://doc.qt.io/qt-5/plugins-howto.html">How to Create Qt Plugins</a> for details.</p>
/// <p>An image format plugin can support three capabilities: reading (<a href="http://doc.qt.io/qt-5/qimageioplugin.html#Capability-enum">CanRead</a>), writing (<a href="http://doc.qt.io/qt-5/qimageioplugin.html#Capability-enum">CanWrite</a>) and <i>incremental</i> reading (<a href="http://doc.qt.io/qt-5/qimageioplugin.html#Capability-enum">CanReadIncremental</a>). Reimplement <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">capabilities</a>() in you subclass to expose the capabilities of your image format.</p>
/// <p><a href="http://doc.qt.io/qt-5/qimageioplugin.html#create">create</a>() should create an instance of your <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> subclass, with the provided device and format properly set, and return this handler.</p>
/// <p>The json metadata file for the plugin needs to contain information about the image formats the plugins supports, together with the corresponding MIME types (one for each format). For a jpeg plugin, this could, for example, look as follows:</p>
/// <pre class="cpp">
///
///   {
/// &#32;   <span class="string">"Keys"</span>: <span class="operator">[</span> <span class="string">"jpg"</span><span class="operator">,</span> <span class="string">"jpeg"</span> <span class="operator">]</span><span class="operator">,</span>
/// &#32;   <span class="string">"MimeTypes"</span>: <span class="operator">[</span> <span class="string">"image/jpeg"</span><span class="operator">,</span> <span class="string">"image/jpeg"</span> <span class="operator">]</span>
///   }
///
/// </pre>
/// <p>Different plugins can support different capabilities. For example, you may have one plugin that supports reading the GIF format, and another that supports writing. Qt will select the correct plugin for the job, depending on the return value of <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">capabilities</a>(). If several plugins support the same capability, Qt will select one arbitrarily.</p></div>
#[repr(C)]
pub struct QImageIOPlugin {
    _unused: u8,
}
impl QImageIOPlugin {
    /// <p>Returns the capabilities of the plugin, based on the data in <i>device</i> and the format <i>format</i>. If <i>device</i> is <code>0</code>, it should simply report whether the format can be read or written. Otherwise, it should attempt to determine whether the given format (or any format supported by the plugin if <i>format</i> is empty) can be read from or written to <i>device</i>. It should do this without changing the state of <i>device</i> (typically by using <a href="http://doc.qt.io/qt-5/qiodevice.html#peek-1">QIODevice::peek</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QFlags<QImageIOPlugin::Capability> QImageIOPlugin::capabilities(QIODevice* device, const QByteArray& format) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the capabilities of the plugin, based on the data in <i>device</i> and the format <i>format</i>. If <i>device</i> is <code>0</code>, it should simply report whether the format can be read or written. Otherwise, it should attempt to determine whether the given format (or any format supported by the plugin if <i>format</i> is empty) can be read from or written to <i>device</i>. It should do this without changing the state of <i>device</i> (typically by using <a href="http://doc.qt.io/qt-5/qiodevice.html#peek-1">QIODevice::peek</a>()).</p>
    /// <p>For example, if the <a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a> supports the BMP format, <i>format</i> is either empty or <code>"bmp"</code>, and the data in the device starts with the characters <code>"BM"</code>, this function should return <a href="http://doc.qt.io/qt-5/qimageioplugin.html#Capability-enum">CanRead</a>. If <i>format</i> is <code>"bmp"</code>, <i>device</i> is <code>0</code> and the handler supports both reading and writing, this function should return <a href="http://doc.qt.io/qt-5/qimageioplugin.html#Capability-enum">CanRead</a> | <a href="http://doc.qt.io/qt-5/qimageioplugin.html#Capability-enum">CanWrite</a>.</p>
    /// <p>Format names are always given in lower case.</p></div>
    #[inline(always)]
    pub unsafe fn capabilities(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::qt_core::QFlags<crate::q_image_io_plugin::Capability> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_capabilities(
            self as *const crate::QImageIOPlugin,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> subclass, with <i>device</i> and <i>format</i> set. The <i>format</i> must come from the values listed in the <code>"Keys"</code> entry in the plugin metadata, or be empty. If it is empty, the data in <i>device</i> must have been recognized by the <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">capabilities</a>() method (with a likewise empty format).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QImageIOHandler* QImageIOPlugin::create(QIODevice* device, const QByteArray& format = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageioplugin.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> subclass, with <i>device</i> and <i>format</i> set. The <i>format</i> must come from the values listed in the <code>"Keys"</code> entry in the plugin metadata, or be empty. If it is empty, the data in <i>device</i> must have been recognized by the <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">capabilities</a>() method (with a likewise empty format).</p>
    /// <p>Format names are always given in lower case.</p></div>
    #[inline(always)]
    pub unsafe fn create_2a(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::MutPtr<crate::QImageIOHandler> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_create(
            self as *const crate::QImageIOPlugin,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Creates and returns a <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> subclass, with <i>device</i> and <i>format</i> set. The <i>format</i> must come from the values listed in the <code>"Keys"</code> entry in the plugin metadata, or be empty. If it is empty, the data in <i>device</i> must have been recognized by the <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">capabilities</a>() method (with a likewise empty format).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QImageIOHandler* QImageIOPlugin::create(QIODevice* device) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageioplugin.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> subclass, with <i>device</i> and <i>format</i> set. The <i>format</i> must come from the values listed in the <code>"Keys"</code> entry in the plugin metadata, or be empty. If it is empty, the data in <i>device</i> must have been recognized by the <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">capabilities</a>() method (with a likewise empty format).</p>
    /// <p>Format names are always given in lower case.</p></div>
    #[inline(always)]
    pub unsafe fn create_1a(
        &self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> ::cpp_core::MutPtr<crate::QImageIOHandler> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_create1(
            self as *const crate::QImageIOPlugin,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QImageIOPlugin::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_metaObject(
            self as *const crate::QImageIOPlugin,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QImageIOPlugin::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_qt_metacall(
            self as *mut crate::QImageIOPlugin,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QImageIOPlugin::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_qt_metacast(
            self as *mut crate::QImageIOPlugin,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QImageIOPlugin::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QImageIOPlugin::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_image_reader {
    //! C++ type: <span style='color: green;'>```QImageReader```</span>

    /// <p>This enum describes the different types of errors that can occur when reading images with <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QImageReader::ImageReaderError```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#ImageReaderError-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different types of errors that can occur when reading images with <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ImageReaderError(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ImageReaderError {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ImageReaderError(value)
        }
    }

    impl From<ImageReaderError> for ::std::os::raw::c_int {
        fn from(value: ImageReaderError) -> Self {
            value.0
        }
    }

    impl ImageReaderError {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ImageReaderError {
        /// An unknown error occurred. If you get this value after calling <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>(), it is most likely caused by a bug in <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>. (C++ enum variant: <span style='color: green;'>```UnknownError = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const UnknownError: crate::q_image_reader::ImageReaderError =
            crate::q_image_reader::ImageReaderError(0);
        /// <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> was used with a file name, but not file was found with that name. This can also happen if the file name contained no extension, and the file with the correct extension is not supported by Qt. (C++ enum variant: <span style='color: green;'>```FileNotFoundError = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const FileNotFoundError: crate::q_image_reader::ImageReaderError =
            crate::q_image_reader::ImageReaderError(1);
        /// <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> encountered a device error when reading the image. You can consult your particular device for more details on what went wrong. (C++ enum variant: <span style='color: green;'>```DeviceError = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const DeviceError: crate::q_image_reader::ImageReaderError =
            crate::q_image_reader::ImageReaderError(2);
        /// Qt does not support the requested image format. (C++ enum variant: <span style='color: green;'>```UnsupportedFormatError = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const UnsupportedFormatError: crate::q_image_reader::ImageReaderError =
            crate::q_image_reader::ImageReaderError(3);
        /// The image data was invalid, and <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> was unable to read an image from it. The can happen if the image file is damaged. (C++ enum variant: <span style='color: green;'>```InvalidDataError = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const InvalidDataError: crate::q_image_reader::ImageReaderError =
            crate::q_image_reader::ImageReaderError(4);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> class provides a format independent interface for reading images from files or other devices.</p>
///
/// C++ class: <span style='color: green;'>```QImageReader```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qimagereader.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> class provides a format independent interface for reading images from files or other devices.</p>
/// <p>The most common way to read images is through <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>'s constructors, or by calling <a href="http://doc.qt.io/qt-5/qimage.html#load">QImage::load</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#load">QPixmap::load</a>(). <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> is a specialized class which gives you more control when reading images. For example, you can read an image into a specific size by calling <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledSize">setScaledSize</a>(), and you can select a clip rect, effectively loading only parts of an image, by calling <a href="http://doc.qt.io/qt-5/qimagereader.html#setClipRect">setClipRect</a>(). Depending on the underlying support in the image format, this can save memory and speed up loading of images.</p>
/// <p>To read an image, you start by constructing a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object. Pass either a file name or a device pointer, and the image format to <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>'s constructor. You can then set several options, such as the clip rect (by calling <a href="http://doc.qt.io/qt-5/qimagereader.html#setClipRect">setClipRect</a>()) and scaled size (by calling <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledSize">setScaledSize</a>()). <a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>() returns the image if the <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> can read the image (i.e., the image format is supported and the device is open for reading). Call <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>() to read the image.</p>
/// <p>If any error occurs when reading the image, <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>() will return a null <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. You can then call <a href="http://doc.qt.io/qt-5/qimagereader.html#error">error</a>() to find the type of error that occurred, or <a href="http://doc.qt.io/qt-5/qimagereader.html#errorString">errorString</a>() to get a human readable description of what went wrong.</p>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> assumes exclusive control over the file or device that is assigned. Any attempts to modify the assigned file or device during the lifetime of the <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object will yield undefined results.</p><a name="formats"></a></div>
#[repr(C)]
pub struct QImageReader {
    _unused: u8,
}
impl QImageReader {
    /// <p>Returns <code>true</code> if image format autodetection is enabled on this image reader; otherwise returns <code>false</code>. By default, autodetection is enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::autoDetectImageFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#autoDetectImageFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if image format autodetection is enabled on this image reader; otherwise returns <code>false</code>. By default, autodetection is enabled.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoDetectImageFormat">setAutoDetectImageFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn auto_detect_image_format(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_autoDetectImageFormat(
            self as *const crate::QImageReader,
        )
    }

    /// <p>Returns <code>true</code> if the image handler will apply transformation metadata on <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::autoTransform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#autoTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the image handler will apply transformation metadata on <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>().</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoTransform">setAutoTransform</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#transformation">transformation</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>().</p></div>
    #[inline(always)]
    pub unsafe fn auto_transform(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_autoTransform(self as *const crate::QImageReader)
    }

    /// <p>Returns the background color that's used when reading an image. If the image format does not support setting the background color an invalid color is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QImageReader::backgroundColor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#backgroundColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the background color that's used when reading an image. If the image format does not support setting the background color an invalid color is returned.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setBackgroundColor">setBackgroundColor</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>().</p></div>
    #[inline(always)]
    pub unsafe fn background_color(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_backgroundColor(
            self as *const crate::QImageReader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if an image can be read for the device (i.e., the image format is supported, and the device seems to contain valid data); otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::canRead() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if an image can be read for the device (i.e., the image format is supported, and the device seems to contain valid data); otherwise returns <code>false</code>.</p>
    /// <p>canRead() is a lightweight function that only does a quick test to see if the image data is valid. <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>() may still return false after canRead() returns <code>true</code>, if the image data is corrupt.</p>
    /// <p><b>Note: </b>A <a href="http://doc.qt.io/qt-5/qmimedatabase.html">QMimeDatabase</a> lookup is normally a better approach than this function for identifying potentially non-image files or data.</p><p>For images that support animation, canRead() returns <code>false</code> when all frames have been read.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">supportedImageFormats</a>(), and <a href="http://doc.qt.io/qt-5/qmimedatabase.html">QMimeDatabase</a>.</p></div>
    #[inline(always)]
    pub unsafe fn can_read(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_canRead(self as *const crate::QImageReader)
    }

    /// <p>Returns the clip rect (also known as the ROI, or Region Of Interest) of the image. If no clip rect has been set, an invalid <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QImageReader::clipRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#clipRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clip rect (also known as the ROI, or Region Of Interest) of the image. If no clip rect has been set, an invalid <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setClipRect">setClipRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clip_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_clipRect(self as *const crate::QImageReader);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>For image formats that support animation, this function returns the sequence number of the current frame. If the image format doesn't support animation, 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImageReader::currentImageNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#currentImageNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the sequence number of the current frame. If the image format doesn't support animation, 0 is returned.</p>
    /// <p>This function returns -1 if an error occurred.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportsAnimation">supportsAnimation</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#currentImageNumber">QImageIOHandler::currentImageNumber</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_image_number(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_currentImageNumber(
            self as *const crate::QImageReader,
        )
    }

    /// <p>For image formats that support animation, this function returns the rect for the current frame. Otherwise, a null rect is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QImageReader::currentImageRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#currentImageRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the rect for the current frame. Otherwise, a null rect is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportsAnimation">supportsAnimation</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#currentImageRect">QImageIOHandler::currentImageRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_image_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_currentImageRect(
            self as *const crate::QImageReader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns whether the image reader should decide which plugin to use only based on the contents of the datastream rather than on the file extension.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::decideFormatFromContent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#decideFormatFromContent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the image reader should decide which plugin to use only based on the contents of the datastream rather than on the file extension.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setDecideFormatFromContent">setDecideFormatFromContent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn decide_format_from_content(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_decideFormatFromContent(
            self as *const crate::QImageReader,
        )
    }

    /// <p>Returns the device currently assigned to <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>, or 0 if no device has been assigned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIODevice* QImageReader::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device currently assigned to <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>, or 0 if no device has been assigned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device(&self) -> ::cpp_core::MutPtr<::qt_core::QIODevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_device(self as *const crate::QImageReader);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the type of error that occurred last.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImageReader::ImageReaderError QImageReader::error() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#error">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of error that occurred last.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#ImageReaderError-enum">ImageReaderError</a> and <a href="http://doc.qt.io/qt-5/qimagereader.html#errorString">errorString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn error(&self) -> crate::q_image_reader::ImageReaderError {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_error(self as *const crate::QImageReader)
    }

    /// <p>Returns a human readable description of the last error that occurred.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QImageReader::errorString() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#errorString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a human readable description of the last error that occurred.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#error">error</a>().</p></div>
    #[inline(always)]
    pub unsafe fn error_string(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_errorString(
            self as *const crate::QImageReader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If the currently assigned device is a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>, or if <a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">setFileName</a>() has been called, this function returns the name of the file <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> reads from. Otherwise (i.e., if no device has been assigned or the device is not a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>), an empty <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QImageReader::fileName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#fileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the currently assigned device is a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>, or if <a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">setFileName</a>() has been called, this function returns the name of the file <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> reads from. Otherwise (i.e., if no device has been assigned or the device is not a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>), an empty <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">setFileName</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn file_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_fileName(self as *const crate::QImageReader);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the format <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> uses for reading images.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QImageReader::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> uses for reading images.</p>
    /// <p>You can call this function after assigning a device to the reader to determine the format of the device. For example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader">QImageReader</a></span> reader(<span class="string">"image.png"</span>);
    ///   <span class="comment">// reader.format() == "png"</span>
    ///
    /// </pre>
    /// <p>If the reader cannot read any image from the device (e.g., there is no image there, or the image has already been read), or if the format is unsupported, this function returns an empty QByteArray().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setFormat">setFormat</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">supportedImageFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_format(self as *const crate::QImageReader);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the gamma level of the decoded image. If <a href="http://doc.qt.io/qt-5/qimagereader.html#setGamma">setGamma</a>() has been called and gamma correction is supported it will return the gamma set. If gamma level is not supported by the image format, <code>0.0</code> is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QImageReader::gamma() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#gamma">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the gamma level of the decoded image. If <a href="http://doc.qt.io/qt-5/qimagereader.html#setGamma">setGamma</a>() has been called and gamma correction is supported it will return the gamma set. If gamma level is not supported by the image format, <code>0.0</code> is returned.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setGamma">setGamma</a>().</p></div>
    #[inline(always)]
    pub unsafe fn gamma(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_gamma(self as *const crate::QImageReader)
    }

    /// <p>For image formats that support animation, this function returns the total number of images in the animation. If the format does not support animation, 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImageReader::imageCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#imageCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the total number of images in the animation. If the format does not support animation, 0 is returned.</p>
    /// <p>This function returns -1 if an error occurred.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportsAnimation">supportsAnimation</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#imageCount">QImageIOHandler::imageCount</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>().</p></div>
    #[inline(always)]
    pub unsafe fn image_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_imageCount(self as *const crate::QImageReader)
    }

    /// <p>Returns the format of the image, without actually reading the image contents. The format describes the image format <a href="http://doc.qt.io/qt-5/qimagereader.html#read">QImageReader::read</a>() returns, not the format of the actual image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage::Format QImageReader::imageFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#imageFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format of the image, without actually reading the image contents. The format describes the image format <a href="http://doc.qt.io/qt-5/qimagereader.html#read">QImageReader::read</a>() returns, not the format of the actual image.</p>
    /// <p>If the image format does not support this feature, this function returns an invalid format.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">QImageIOHandler::ImageOption</a>, <a href="http://doc.qt.io/qt-5/qimageiohandler.html#option">QImageIOHandler::option</a>(), and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#supportsOption">QImageIOHandler::supportsOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn image_format(&self) -> crate::q_image::Format {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_imageFormat(self as *const crate::QImageReader)
    }

    /// <p>If supported, this function returns the image format of the file <i>fileName</i>. Otherwise, an empty string is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QByteArray QImageReader::imageFormat(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#imageFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If supported, this function returns the image format of the file <i>fileName</i>. Otherwise, an empty string is returned.</p></div>
    #[inline(always)]
    pub unsafe fn image_format_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_imageFormat1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If supported, this function returns the image format of the device <i>device</i>. Otherwise, an empty string is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QByteArray QImageReader::imageFormat(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#imageFormat-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If supported, this function returns the image format of the device <i>device</i>. Otherwise, an empty string is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#autoDetectImageFormat">QImageReader::autoDetectImageFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn image_format_q_io_device(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_imageFormat2(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list of image formats corresponding to <i>mimeType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QImageReader::imageFormatsForMimeType(const QByteArray& mimeType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#imageFormatsForMimeType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of image formats corresponding to <i>mimeType</i>.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> instance must be created before this function is called.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedMimeTypes">supportedMimeTypes</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn image_formats_for_mime_type(
        mime_type: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_imageFormatsForMimeType(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(mime_type)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>For image formats that support animation, this function skips to the image whose sequence number is <i>imageNumber</i>, returning true if successful or false if the corresponding image cannot be found.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::jumpToImage(int imageNumber)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#jumpToImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function skips to the image whose sequence number is <i>imageNumber</i>, returning true if successful or false if the corresponding image cannot be found.</p>
    /// <p>The next call to <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>() will attempt to read this image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#jumpToNextImage">jumpToNextImage</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#jumpToImage">QImageIOHandler::jumpToImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn jump_to_image(&mut self, image_number: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_jumpToImage(
            self as *mut crate::QImageReader,
            image_number,
        )
    }

    /// <p>For image formats that support animation, this function steps over the current image, returning true if successful or false if there is no following image in the animation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::jumpToNextImage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#jumpToNextImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function steps over the current image, returning true if successful or false if there is no following image in the animation.</p>
    /// <p>The default implementation calls <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>(), then discards the resulting image, but the image handler may have a more efficient way of implementing this operation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#jumpToImage">jumpToImage</a>() and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#jumpToNextImage">QImageIOHandler::jumpToNextImage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn jump_to_next_image(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_jumpToNextImage(self as *mut crate::QImageReader)
    }

    /// <p>For image formats that support animation, this function returns the number of times the animation should loop. If this function returns -1, it can either mean the animation should loop forever, or that an error occurred. If an error occurred, <a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>() will return false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImageReader::loopCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#loopCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the number of times the animation should loop. If this function returns -1, it can either mean the animation should loop forever, or that an error occurred. If an error occurred, <a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>() will return false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportsAnimation">supportsAnimation</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#loopCount">QImageIOHandler::loopCount</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>().</p></div>
    #[inline(always)]
    pub unsafe fn loop_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_loopCount(self as *const crate::QImageReader)
    }

    /// <p>Constructs an empty <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object. Before reading an image, call <a href="http://doc.qt.io/qt-5/qimagereader.html#setDevice">setDevice</a>() or <a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">setFileName</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageReader::QImageReader()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object. Before reading an image, call <a href="http://doc.qt.io/qt-5/qimagereader.html#setDevice">setDevice</a>() or <a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QImageReader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_QImageReader();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object with the device <i>device</i> and the image format <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageReader::QImageReader(QIODevice* device, const QByteArray& format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object with the device <i>device</i> and the image format <i>format</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device_q_byte_array(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QImageReader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_QImageReader1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object with the file name <i>fileName</i> and the image format <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageReader::QImageReader(const QString& fileName, const QByteArray& format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object with the file name <i>fileName</i> and the image format <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_byte_array(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QImageReader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_QImageReader2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object with the device <i>device</i> and the image format <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageReader::QImageReader(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object with the device <i>device</i> and the image format <i>format</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> ::cpp_core::CppBox<crate::QImageReader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_QImageReader3(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object with the file name <i>fileName</i> and the image format <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageReader::QImageReader(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object with the file name <i>fileName</i> and the image format <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QImageReader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_QImageReader4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>For image formats that support animation, this function returns the number of milliseconds to wait until displaying the next frame in the animation. If the image format doesn't support animation, 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImageReader::nextImageDelay() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#nextImageDelay">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support animation, this function returns the number of milliseconds to wait until displaying the next frame in the animation. If the image format doesn't support animation, 0 is returned.</p>
    /// <p>This function returns -1 if an error occurred.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportsAnimation">supportsAnimation</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#nextImageDelay">QImageIOHandler::nextImageDelay</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>().</p></div>
    #[inline(always)]
    pub unsafe fn next_image_delay(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_nextImageDelay(self as *const crate::QImageReader)
    }

    /// <p>Returns the quality setting of the image format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImageReader::quality() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#quality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the quality setting of the image format.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setQuality">setQuality</a>().</p></div>
    #[inline(always)]
    pub unsafe fn quality(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_quality(self as *const crate::QImageReader)
    }

    /// <p>Reads an image from the device. On success, the image that was read is returned; otherwise, a null <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> is returned. You can then call <a href="http://doc.qt.io/qt-5/qimagereader.html#error">error</a>() to find the type of error that occurred, or <a href="http://doc.qt.io/qt-5/qimagereader.html#errorString">errorString</a>() to get a human readable description of the error.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QImageReader::read()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#read">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reads an image from the device. On success, the image that was read is returned; otherwise, a null <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> is returned. You can then call <a href="http://doc.qt.io/qt-5/qimagereader.html#error">error</a>() to find the type of error that occurred, or <a href="http://doc.qt.io/qt-5/qimagereader.html#errorString">errorString</a>() to get a human readable description of the error.</p>
    /// <p>For image formats that support animation, calling read() repeatedly will return the next frame. When all frames have been read, a null image will be returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">supportedImageFormats</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#supportsAnimation">supportsAnimation</a>(), and <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p></div>
    #[inline(always)]
    pub unsafe fn read_0a(&mut self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_read(self as *mut crate::QImageReader);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::read(QImage* image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#read-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Reads an image from the device into <i>image</i>, which must point to a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. Returns <code>true</code> on success; otherwise, returns <code>false</code>.</p>
    /// <p>If <i>image</i> has same format and size as the image data that is about to be read, this function may not need to allocate a new image before reading. Because of this, it can be faster than the other <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>() overload, which always constructs a new image; especially when reading several images with the same format and size.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span> icon(<span class="number">64</span><span class="operator">,</span> <span class="number">64</span><span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span><span class="operator">::</span>Format_RGB32);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader">QImageReader</a></span> reader(<span class="string">"icon_64x64.bmp"</span>);
    ///   <span class="keyword">if</span> (reader<span class="operator">.</span>read(<span class="operator">&amp;</span>icon)) {
    /// &#32;     <span class="comment">// Display icon</span>
    ///   }
    ///
    /// </pre>
    /// <p>For image formats that support animation, calling <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>() repeatedly will return the next frame. When all frames have been read, a null image will be returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#canRead">canRead</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">supportedImageFormats</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#supportsAnimation">supportsAnimation</a>(), and <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p></div>
    #[inline(always)]
    pub unsafe fn read_1a(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QImage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_read1(
            self as *mut crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QImage>>::cast_into(image)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the scaled clip rect of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QImageReader::scaledClipRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#scaledClipRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the scaled clip rect of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledClipRect">setScaledClipRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scaled_clip_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_scaledClipRect(
            self as *const crate::QImageReader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the scaled size of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QImageReader::scaledSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#scaledSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the scaled size of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledSize">setScaledSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scaled_size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_scaledSize(
            self as *const crate::QImageReader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If <i>enabled</i> is true, image format autodetection is enabled; otherwise, it is disabled. By default, autodetection is enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setAutoDetectImageFormat(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoDetectImageFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enabled</i> is true, image format autodetection is enabled; otherwise, it is disabled. By default, autodetection is enabled.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> uses an extensive approach to detecting the image format; firstly, if you pass a file name to <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>, it will attempt to detect the file extension if the given file name does not point to an existing file, by appending supported default extensions to the given file name, one at a time. It then uses the following approach to detect the image format:</p>
    /// <ul>
    /// <li>Image plugins are queried first, based on either the optional format string, or the file name suffix (if the source device is a file). No content detection is done at this stage. <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will choose the first plugin that supports reading for this format.</li>
    /// <li>If no plugin supports the image format, Qt's built-in handlers are checked based on either the optional format string, or the file name suffix.</li>
    /// <li>If no capable plugins or built-in handlers are found, each plugin is tested by inspecting the content of the data stream.</li>
    /// <li>If no plugins could detect the image format based on data contents, each built-in image handler is tested by inspecting the contents.</li>
    /// <li>Finally, if all above approaches fail, <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will report failure when trying to read the image.</li>
    /// </ul>
    /// <p>By disabling image format autodetection, <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will only query the plugins and built-in handlers based on the format string (i.e., no file name extensions are tested).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#autoDetectImageFormat">autoDetectImageFormat</a>(), <a href="http://doc.qt.io/qt-5/qimageiohandler.html#canRead">QImageIOHandler::canRead</a>(), and <a href="http://doc.qt.io/qt-5/qimageioplugin.html#capabilities">QImageIOPlugin::capabilities</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_auto_detect_image_format(&mut self, enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setAutoDetectImageFormat(
            self as *mut crate::QImageReader,
            enabled,
        )
    }

    /// <p>Determines that images returned by <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>() should have transformation metadata automatically applied if <i>enabled</i> is <code>true</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setAutoTransform(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Determines that images returned by <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>() should have transformation metadata automatically applied if <i>enabled</i> is <code>true</code>.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#autoTransform">autoTransform</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#transformation">transformation</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_auto_transform(&mut self, enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setAutoTransform(
            self as *mut crate::QImageReader,
            enabled,
        )
    }

    /// <p>Sets the background color to <i>color</i>. Image formats that support this operation are expected to initialize the background to <i>color</i> before reading an image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setBackgroundColor(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setBackgroundColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the background color to <i>color</i>. Image formats that support this operation are expected to initialize the background to <i>color</i> before reading an image.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#backgroundColor">backgroundColor</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#read">read</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_background_color(
        &mut self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setBackgroundColor(
            self as *mut crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>Sets the image clip rect (also known as the ROI, or Region Of Interest) to <i>rect</i>. The coordinates of <i>rect</i> are relative to the untransformed image size, as returned by <a href="http://doc.qt.io/qt-5/qimagereader.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setClipRect(const QRect& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setClipRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the image clip rect (also known as the ROI, or Region Of Interest) to <i>rect</i>. The coordinates of <i>rect</i> are relative to the untransformed image size, as returned by <a href="http://doc.qt.io/qt-5/qimagereader.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#clipRect">clipRect</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledSize">setScaledSize</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledClipRect">setScaledClipRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_rect(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setClipRect(
            self as *mut crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>If <i>ignored</i> is set to true, then the image reader will ignore specified formats or file extensions and decide which plugin to use only based on the contents in the datastream.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setDecideFormatFromContent(bool ignored)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setDecideFormatFromContent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>ignored</i> is set to true, then the image reader will ignore specified formats or file extensions and decide which plugin to use only based on the contents in the datastream.</p>
    /// <p>Setting this flag means that all image plugins gets loaded. Each plugin will read the first bytes in the image data and decide if the plugin is compatible or not.</p>
    /// <p>This also disables auto detecting the image format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#decideFormatFromContent">decideFormatFromContent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_decide_format_from_content(&mut self, ignored: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setDecideFormatFromContent(
            self as *mut crate::QImageReader,
            ignored,
        )
    }

    /// <p>Sets <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>'s device to <i>device</i>. If a device has already been set, the old device is removed from <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> and is otherwise left unchanged.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setDevice(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>'s device to <i>device</i>. If a device has already been set, the old device is removed from <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> and is otherwise left unchanged.</p>
    /// <p>If the device is not already open, <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will attempt to open the device in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::ReadOnly</a> mode by calling open(). Note that this does not work for certain devices, such as <a href="http://doc.qt.io/qt-5/qprocess.html">QProcess</a>, <a href="http://doc.qt.io/qt-5/qtcpsocket.html">QTcpSocket</a> and <a href="http://doc.qt.io/qt-5/qudpsocket.html">QUdpSocket</a>, where more logic is required to open the device.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#device">device</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_device(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setDevice(
            self as *mut crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the file name of <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> to <i>fileName</i>. Internally, <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will create a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a> object and open it in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::ReadOnly</a> mode, and use this when reading images.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setFileName(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setFileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the file name of <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> to <i>fileName</i>. Internally, <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will create a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a> object and open it in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::ReadOnly</a> mode, and use this when reading images.</p>
    /// <p>If <i>fileName</i> does not include a file extension (e.g., .png or .bmp), <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will cycle through all supported extensions until it finds a matching file.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#fileName">fileName</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#setDevice">setDevice</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">supportedImageFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_file_name(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setFileName(
            self as *mut crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the format <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will use when reading images, to <i>format</i>. <i>format</i> is a case insensitive text string. Example:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setFormat(const QByteArray& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will use when reading images, to <i>format</i>. <i>format</i> is a case insensitive text string. Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader">QImageReader</a></span> reader;
    ///   reader<span class="operator">.</span>setFormat(<span class="string">"png"</span>); <span class="comment">// same as reader.setFormat("PNG");</span>
    ///
    /// </pre>
    /// <p>You can call <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">supportedImageFormats</a>() for the full list of formats <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> supports.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setFormat(
            self as *mut crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an image format specific function that forces images with gamma information to be gamma corrected to <i>gamma</i>. For image formats that do not support gamma correction, this value is ignored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setGamma(float gamma)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setGamma">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an image format specific function that forces images with gamma information to be gamma corrected to <i>gamma</i>. For image formats that do not support gamma correction, this value is ignored.</p>
    /// <p>To gamma correct to a standard PC color-space, set gamma to <code>1/2.2</code>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#gamma">gamma</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_gamma(&mut self, gamma: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setGamma(self as *mut crate::QImageReader, gamma)
    }

    /// <p>Sets the quality setting of the image format to <i>quality</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setQuality(int quality)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setQuality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the quality setting of the image format to <i>quality</i>.</p>
    /// <p>Some image formats, in particular lossy ones, entail a tradeoff between a) visual quality of the resulting image, and b) decoding execution time. This function sets the level of that tradeoff for image formats that support it.</p>
    /// <p>In case of scaled image reading, the quality setting may also influence the tradeoff level between visual quality and execution speed of the scaling algorithm.</p>
    /// <p>The value range of <i>quality</i> depends on the image format. For example, the "jpeg" format supports a quality range from 0 (low visual quality) to 100 (high visual quality).</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#quality">quality</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledSize">setScaledSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_quality(&mut self, quality: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setQuality(
            self as *mut crate::QImageReader,
            quality,
        )
    }

    /// <p>Sets the scaled clip rect to <i>rect</i>. The scaled clip rect is the clip rect (also known as ROI, or Region Of Interest) that is applied after the image has been scaled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setScaledClipRect(const QRect& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledClipRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the scaled clip rect to <i>rect</i>. The scaled clip rect is the clip rect (also known as ROI, or Region Of Interest) that is applied after the image has been scaled.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#scaledClipRect">scaledClipRect</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledSize">setScaledSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_scaled_clip_rect(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setScaledClipRect(
            self as *mut crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>Sets the scaled size of the image to <i>size</i>. The scaling is performed after the initial clip rect, but before the scaled clip rect is applied. The algorithm used for scaling depends on the image format. By default (i.e., if the image format does not support scaling), <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will use QImage::scale() with Qt::SmoothScaling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageReader::setScaledSize(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the scaled size of the image to <i>size</i>. The scaling is performed after the initial clip rect, but before the scaled clip rect is applied. The algorithm used for scaling depends on the image format. By default (i.e., if the image format does not support scaling), <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> will use QImage::scale() with Qt::SmoothScaling.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#scaledSize">scaledSize</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#setClipRect">setClipRect</a>(), and <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledClipRect">setScaledClipRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_scaled_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_setScaledSize(
            self as *mut crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>Returns the size of the image, without actually reading the image contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QImageReader::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the image, without actually reading the image contents.</p>
    /// <p>If the image format does not support this feature, this function returns an invalid size. Qt's built-in image handlers all support this feature, but custom image format plugins are not required to do so.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">QImageIOHandler::ImageOption</a>, <a href="http://doc.qt.io/qt-5/qimageiohandler.html#option">QImageIOHandler::option</a>(), and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#supportsOption">QImageIOHandler::supportsOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_size(self as *const crate::QImageReader);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the subtype of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QImageReader::subType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#subType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the subtype of the image.</p>
    /// <p>This function was introduced in  Qt 5.4.</p></div>
    #[inline(always)]
    pub unsafe fn sub_type(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_subType(self as *const crate::QImageReader);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list of image formats supported by <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QImageReader::supportedImageFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of image formats supported by <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
    /// <p>By default, Qt can read the following formats:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Format</th><th>MIME type</th><th>Description</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>BMP</td><td>image/bmp</td><td>Windows Bitmap</td></tr>
    /// <tr valign="top" class="even"><td>GIF</td><td>image/gif</td><td>Graphic Interchange Format (optional)</td></tr>
    /// <tr valign="top" class="odd"><td>JPG</td><td>image/jpeg</td><td>Joint Photographic Experts Group</td></tr>
    /// <tr valign="top" class="even"><td>PNG</td><td>image/png</td><td>Portable Network Graphics</td></tr>
    /// <tr valign="top" class="odd"><td>PBM</td><td>image/x-portable-bitmap</td><td>Portable Bitmap</td></tr>
    /// <tr valign="top" class="even"><td>PGM</td><td>image/x-portable-graymap</td><td>Portable Graymap</td></tr>
    /// <tr valign="top" class="odd"><td>PPM</td><td>image/x-portable-pixmap</td><td>Portable Pixmap</td></tr>
    /// <tr valign="top" class="even"><td>XBM</td><td>image/x-xbitmap</td><td>X11 Bitmap</td></tr>
    /// <tr valign="top" class="odd"><td>XPM</td><td>image/x-xpixmap</td><td>X11 Pixmap</td></tr>
    /// <tr valign="top" class="even"><td>SVG</td><td>image/svg+xml</td><td>Scalable Vector Graphics</td></tr>
    /// </tbody></table></div>
    /// <p>Reading and writing SVG files is supported through the <a href="http://doc.qt.io/qt-5/qtsvg-index.html">Qt SVG</a> module. The <a href="http://doc.qt.io/qt-5/qtimageformats-index.html">Qt Image Formats</a> module provides support for additional image formats.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> instance must be created before this function is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setFormat">setFormat</a>(), <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">QImageWriter::supportedImageFormats</a>(), and <a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a>.</p></div>
    #[inline(always)]
    pub unsafe fn supported_image_formats() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_supportedImageFormats();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list of MIME types supported by <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QImageReader::supportedMimeTypes()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedMimeTypes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of MIME types supported by <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> instance must be created before this function is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedMimeTypes">QImageWriter::supportedMimeTypes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supported_mime_types() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_supportedMimeTypes();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list of subtypes supported by an image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QByteArray> QImageReader::supportedSubTypes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedSubTypes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of subtypes supported by an image.</p>
    /// <p>This function was introduced in  Qt 5.4.</p></div>
    #[inline(always)]
    pub unsafe fn supported_sub_types(&self) -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_supportedSubTypes(
            self as *const crate::QImageReader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the image format supports animation; otherwise, false is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::supportsAnimation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#supportsAnimation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the image format supports animation; otherwise, false is returned.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#supportedFormats">QMovie::supportedFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supports_animation(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_supportsAnimation(
            self as *const crate::QImageReader,
        )
    }

    /// <p>Returns <code>true</code> if the reader supports <i>option</i>; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageReader::supportsOption(QImageIOHandler::ImageOption option) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#supportsOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the reader supports <i>option</i>; otherwise returns false.</p>
    /// <p>Different image formats support different options. Call this function to determine whether a certain option is supported by the current format. For example, the PNG format allows you to embed text into the image's metadata (see <a href="http://doc.qt.io/qt-5/qimagereader.html#text">text</a>()), and the BMP format allows you to determine the image's size without loading the whole image into memory (see <a href="http://doc.qt.io/qt-5/qimagereader.html#size">size</a>()).</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimagereader.html#QImageReader">QImageReader</a></span> reader(<span class="string">":/image.png"</span>);
    ///   <span class="keyword">if</span> (reader<span class="operator">.</span>supportsOption(<span class="type"><a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a></span><span class="operator">::</span>Size))
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Size:"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> reader<span class="operator">.</span>size();
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#supportsOption">QImageWriter::supportsOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supports_option(&self, option: crate::q_image_io_handler::ImageOption) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_supportsOption(
            self as *const crate::QImageReader,
            option,
        )
    }

    /// <p>Returns the image text associated with <i>key</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QImageReader::text(const QString& key) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the image text associated with <i>key</i>.</p>
    /// <p>Support for this option is implemented through <a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">QImageIOHandler::Description</a>.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#textKeys">textKeys</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#setText">QImageWriter::setText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(
        &self,
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_text(
            self as *const crate::QImageReader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text keys for this image. You can use these keys with <a href="http://doc.qt.io/qt-5/qimagereader.html#text">text</a>() to list the image text for a certain key.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QImageReader::textKeys() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#textKeys">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text keys for this image. You can use these keys with <a href="http://doc.qt.io/qt-5/qimagereader.html#text">text</a>() to list the image text for a certain key.</p>
    /// <p>Support for this option is implemented through <a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">QImageIOHandler::Description</a>.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#text">text</a>(), <a href="http://doc.qt.io/qt-5/qimagewriter.html#setText">QImageWriter::setText</a>(), and <a href="http://doc.qt.io/qt-5/qimage.html#textKeys">QImage::textKeys</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_keys(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_textKeys(self as *const crate::QImageReader);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QImageReader::tr(const char* sourceText, const char* disambiguation, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        source_text: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        disambiguation: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(
                disambiguation,
            )
            .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QImageReader::trUtf8(const char* sourceText, const char* disambiguation, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        source_text: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        disambiguation: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(
                disambiguation,
            )
            .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the transformation metadata of the image, including image orientation. If the format does not support transformation metadata <code>QImageIOHandler::Transformation_None</code> is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QImageIOHandler::Transformation> QImageReader::transformation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#transformation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transformation metadata of the image, including image orientation. If the format does not support transformation metadata <code>QImageIOHandler::Transformation_None</code> is returned.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#setAutoTransform">setAutoTransform</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#autoTransform">autoTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transformation(
        &self,
    ) -> ::qt_core::QFlags<crate::q_image_io_handler::Transformation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageReader_transformation(
            self as *const crate::QImageReader,
        );
        ::qt_core::QFlags::from(ffi_result)
    }
}

pub mod q_image_writer {
    //! C++ type: <span style='color: green;'>```QImageWriter```</span>

    /// <p>This enum describes errors that can occur when writing images with <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QImageWriter::ImageWriterError```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#ImageWriterError-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes errors that can occur when writing images with <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ImageWriterError(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ImageWriterError {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ImageWriterError(value)
        }
    }

    impl From<ImageWriterError> for ::std::os::raw::c_int {
        fn from(value: ImageWriterError) -> Self {
            value.0
        }
    }

    impl ImageWriterError {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ImageWriterError {
        /// An unknown error occurred. If you get this value after calling <a href="http://doc.qt.io/qt-5/qimagewriter.html#write">write</a>(), it is most likely caused by a bug in <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>. (C++ enum variant: <span style='color: green;'>```UnknownError = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const UnknownError: crate::q_image_writer::ImageWriterError =
            crate::q_image_writer::ImageWriterError(0);
        /// <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> encountered a device error when writing the image data. Consult your device for more details on what went wrong. (C++ enum variant: <span style='color: green;'>```DeviceError = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const DeviceError: crate::q_image_writer::ImageWriterError =
            crate::q_image_writer::ImageWriterError(1);
        /// Qt does not support the requested image format. (C++ enum variant: <span style='color: green;'>```UnsupportedFormatError = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const UnsupportedFormatError: crate::q_image_writer::ImageWriterError =
            crate::q_image_writer::ImageWriterError(2);
        /// An attempt was made to write an invalid <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. An example of an invalid image would be a null <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. (C++ enum variant: <span style='color: green;'>```InvalidImageError = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const InvalidImageError: crate::q_image_writer::ImageWriterError =
            crate::q_image_writer::ImageWriterError(3);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> class provides a format independent interface for writing images to files or other devices.</p>
///
/// C++ class: <span style='color: green;'>```QImageWriter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qimagewriter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> class provides a format independent interface for writing images to files or other devices.</p>
/// <p><a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> supports setting format specific options, such as the gamma level, compression level and quality, prior to storing the image. If you do not need such options, you can use <a href="http://doc.qt.io/qt-5/qimage.html#save">QImage::save</a>() or <a href="http://doc.qt.io/qt-5/qpixmap.html#save">QPixmap::save</a>() instead.</p>
/// <p>To store an image, you start by constructing a <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> object. Pass either a file name or a device pointer, and the image format to <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>'s constructor. You can then set several options, such as the gamma level (by calling <a href="http://doc.qt.io/qt-5/qimagewriter.html#setGamma">setGamma</a>()) and quality (by calling <a href="http://doc.qt.io/qt-5/qimagewriter.html#setQuality">setQuality</a>()). <a href="http://doc.qt.io/qt-5/qimagewriter.html#canWrite">canWrite</a>() returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> can write the image (i.e., the image format is supported and the device is open for writing). Call <a href="http://doc.qt.io/qt-5/qimagewriter.html#write">write</a>() to write the image to the device.</p>
/// <p>If any error occurs when writing the image, <a href="http://doc.qt.io/qt-5/qimagewriter.html#write">write</a>() will return false. You can then call <a href="http://doc.qt.io/qt-5/qimagewriter.html#error">error</a>() to find the type of error that occurred, or <a href="http://doc.qt.io/qt-5/qimagewriter.html#errorString">errorString</a>() to get a human readable description of what went wrong.</p>
/// <p>Call <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">supportedImageFormats</a>() for a list of formats that <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> can write. <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> supports all built-in image formats, in addition to any image format plugins that support writing.</p></div>
#[repr(C)]
pub struct QImageWriter {
    _unused: u8,
}
impl QImageWriter {
    /// <p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> can write the image; i.e., the image format is supported and the assigned device is open for reading.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageWriter::canWrite() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#canWrite">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> can write the image; i.e., the image format is supported and the assigned device is open for reading.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#write">write</a>(), <a href="http://doc.qt.io/qt-5/qimagewriter.html#setDevice">setDevice</a>(), and <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn can_write(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_canWrite(self as *const crate::QImageWriter)
    }

    /// <p>Returns the compression of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImageWriter::compression() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#compression">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the compression of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setCompression">setCompression</a>().</p></div>
    #[inline(always)]
    pub unsafe fn compression(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_compression(self as *const crate::QImageWriter)
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qimagereader.html#text">QImageReader::text</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QImageWriter::description() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter-obsolete.html#description">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qimagereader.html#text">QImageReader::text</a>() instead.</p>
    /// <p>Returns the description of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter-obsolete.html#setDescription">setDescription</a>().</p></div>
    #[inline(always)]
    pub unsafe fn description(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_description(
            self as *const crate::QImageWriter,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the device currently assigned to <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>, or 0 if no device has been assigned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIODevice* QImageWriter::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device currently assigned to <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>, or 0 if no device has been assigned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device(&self) -> ::cpp_core::MutPtr<::qt_core::QIODevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageWriter_device(self as *const crate::QImageWriter);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the type of error that last occurred.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImageWriter::ImageWriterError QImageWriter::error() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#error">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of error that last occurred.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#ImageWriterError-enum">ImageWriterError</a> and <a href="http://doc.qt.io/qt-5/qimagewriter.html#errorString">errorString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn error(&self) -> crate::q_image_writer::ImageWriterError {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_error(self as *const crate::QImageWriter)
    }

    /// <p>Returns a human readable description of the last error that occurred.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QImageWriter::errorString() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#errorString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a human readable description of the last error that occurred.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#error">error</a>().</p></div>
    #[inline(always)]
    pub unsafe fn error_string(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_errorString(
            self as *const crate::QImageWriter,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If the currently assigned device is a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>, or if <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFileName">setFileName</a>() has been called, this function returns the name of the file <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> writes to. Otherwise (i.e., if no device has been assigned or the device is not a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>), an empty <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QImageWriter::fileName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#fileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the currently assigned device is a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>, or if <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFileName">setFileName</a>() has been called, this function returns the name of the file <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> writes to. Otherwise (i.e., if no device has been assigned or the device is not a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>), an empty <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setFileName">setFileName</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn file_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageWriter_fileName(self as *const crate::QImageWriter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the format <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> uses for writing images.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QImageWriter::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> uses for writing images.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageWriter_format(self as *const crate::QImageWriter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the gamma level of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QImageWriter::gamma() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#gamma">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the gamma level of the image.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setGamma">setGamma</a>().</p></div>
    #[inline(always)]
    pub unsafe fn gamma(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_gamma(self as *const crate::QImageWriter)
    }

    /// <p>Returns the list of image formats corresponding to <i>mimeType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QImageWriter::imageFormatsForMimeType(const QByteArray& mimeType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#imageFormatsForMimeType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of image formats corresponding to <i>mimeType</i>.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> instance must be created before this function is called.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedMimeTypes">supportedMimeTypes</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn image_formats_for_mime_type(
        mime_type: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_imageFormatsForMimeType(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(mime_type)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an empty <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> object. Before writing, you must call <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFormat">setFormat</a>() to set an image format, then <a href="http://doc.qt.io/qt-5/qimagewriter.html#setDevice">setDevice</a>() or <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFileName">setFileName</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageWriter::QImageWriter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#QImageWriter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> object. Before writing, you must call <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFormat">setFormat</a>() to set an image format, then <a href="http://doc.qt.io/qt-5/qimagewriter.html#setDevice">setDevice</a>() or <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QImageWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_QImageWriter();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> object using the device <i>device</i> and image format <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageWriter::QImageWriter(QIODevice* device, const QByteArray& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#QImageWriter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> object using the device <i>device</i> and image format <i>format</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device_q_byte_array(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QImageWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_QImageWriter1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> objects that will write to a file with the name <i>fileName</i>, using the image format <i>format</i>. If <i>format</i> is not provided, <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will detect the image format by inspecting the extension of <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageWriter::QImageWriter(const QString& fileName, const QByteArray& format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#QImageWriter-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> objects that will write to a file with the name <i>fileName</i>, using the image format <i>format</i>. If <i>format</i> is not provided, <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will detect the image format by inspecting the extension of <i>fileName</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_byte_array(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QImageWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_QImageWriter2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> objects that will write to a file with the name <i>fileName</i>, using the image format <i>format</i>. If <i>format</i> is not provided, <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will detect the image format by inspecting the extension of <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QImageWriter::QImageWriter(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#QImageWriter-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> objects that will write to a file with the name <i>fileName</i>, using the image format <i>format</i>. If <i>format</i> is not provided, <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will detect the image format by inspecting the extension of <i>fileName</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QImageWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_QImageWriter3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns whether optimization has been turned on for writing the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageWriter::optimizedWrite() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#optimizedWrite">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether optimization has been turned on for writing the image.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setOptimizedWrite">setOptimizedWrite</a>().</p></div>
    #[inline(always)]
    pub unsafe fn optimized_write(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_optimizedWrite(self as *const crate::QImageWriter)
    }

    /// <p>Returns whether the image should be written as a progressive image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageWriter::progressiveScanWrite() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#progressiveScanWrite">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the image should be written as a progressive image.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setProgressiveScanWrite">setProgressiveScanWrite</a>().</p></div>
    #[inline(always)]
    pub unsafe fn progressive_scan_write(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_progressiveScanWrite(
            self as *const crate::QImageWriter,
        )
    }

    /// <p>Returns the quality setting of the image format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QImageWriter::quality() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#quality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the quality setting of the image format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setQuality">setQuality</a>().</p></div>
    #[inline(always)]
    pub unsafe fn quality(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_quality(self as *const crate::QImageWriter)
    }

    /// <p>This is an image format specific function that set the compression of an image. For image formats that do not support setting the compression, this value is ignored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setCompression(int compression)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setCompression">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an image format specific function that set the compression of an image. For image formats that do not support setting the compression, this value is ignored.</p>
    /// <p>The value range of <i>compression</i> depends on the image format. For example, the "tiff" format supports two values, 0(no compression) and 1(LZW-compression).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#compression">compression</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_compression(&mut self, compression: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setCompression(
            self as *mut crate::QImageWriter,
            compression,
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qimagewriter.html#setText">setText</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setDescription(const QString& description)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter-obsolete.html#setDescription">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qimagewriter.html#setText">setText</a>() instead.</p>
    /// <p>This is an image format specific function that sets the description of the image to <i>description</i>. For image formats that do not support setting the description, this value is ignored.</p>
    /// <p>The contents of <i>description</i> depends on the image format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter-obsolete.html#description">description</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_description(
        &mut self,
        description: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setDescription(
            self as *mut crate::QImageWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(description)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>'s device to <i>device</i>. If a device has already been set, the old device is removed from <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> and is otherwise left unchanged.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setDevice(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>'s device to <i>device</i>. If a device has already been set, the old device is removed from <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> and is otherwise left unchanged.</p>
    /// <p>If the device is not already open, <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will attempt to open the device in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::WriteOnly</a> mode by calling open(). Note that this does not work for certain devices, such as <a href="http://doc.qt.io/qt-5/qprocess.html">QProcess</a>, <a href="http://doc.qt.io/qt-5/qtcpsocket.html">QTcpSocket</a> and <a href="http://doc.qt.io/qt-5/qudpsocket.html">QUdpSocket</a>, where more logic is required to open the device.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#device">device</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_device(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setDevice(
            self as *mut crate::QImageWriter,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the file name of <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> to <i>fileName</i>. Internally, <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will create a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a> and open it in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::WriteOnly</a> mode, and use this file when writing images.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setFileName(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the file name of <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> to <i>fileName</i>. Internally, <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will create a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a> and open it in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::WriteOnly</a> mode, and use this file when writing images.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#fileName">fileName</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_file_name(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setFileName(
            self as *mut crate::QImageWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the format <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will use when writing images, to <i>format</i>. <i>format</i> is a case insensitive text string. Example:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setFormat(const QByteArray& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> will use when writing images, to <i>format</i>. <i>format</i> is a case insensitive text string. Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimagewriter.html#QImageWriter">QImageWriter</a></span> writer;
    ///   writer<span class="operator">.</span>setFormat(<span class="string">"png"</span>); <span class="comment">// same as writer.setFormat("PNG");</span>
    ///
    /// </pre>
    /// <p>You can call <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">supportedImageFormats</a>() for the full list of formats <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> supports.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setFormat(
            self as *mut crate::QImageWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an image format specific function that sets the gamma level of the image to <i>gamma</i>. For image formats that do not support setting the gamma level, this value is ignored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setGamma(float gamma)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setGamma">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an image format specific function that sets the gamma level of the image to <i>gamma</i>. For image formats that do not support setting the gamma level, this value is ignored.</p>
    /// <p>The value range of <i>gamma</i> depends on the image format. For example, the "png" format supports a gamma range from 0.0 to 1.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#gamma">gamma</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#quality">quality</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_gamma(&mut self, gamma: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setGamma(self as *mut crate::QImageWriter, gamma)
    }

    /// <p>This is an image format-specific function which sets the <i>optimize</i> flags when writing images. For image formats that do not support setting an <i>optimize</i> flag, this value is ignored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setOptimizedWrite(bool optimize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setOptimizedWrite">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an image format-specific function which sets the <i>optimize</i> flags when writing images. For image formats that do not support setting an <i>optimize</i> flag, this value is ignored.</p>
    /// <p>The default is false.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#optimizedWrite">optimizedWrite</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_optimized_write(&mut self, optimize: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setOptimizedWrite(
            self as *mut crate::QImageWriter,
            optimize,
        )
    }

    /// <p>This is an image format-specific function which turns on <i>progressive</i> scanning when writing images. For image formats that do not support setting a <i>progressive</i> scan flag, this value is ignored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setProgressiveScanWrite(bool progressive)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setProgressiveScanWrite">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an image format-specific function which turns on <i>progressive</i> scanning when writing images. For image formats that do not support setting a <i>progressive</i> scan flag, this value is ignored.</p>
    /// <p>The default is false.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#progressiveScanWrite">progressiveScanWrite</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_progressive_scan_write(&mut self, progressive: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setProgressiveScanWrite(
            self as *mut crate::QImageWriter,
            progressive,
        )
    }

    /// <p>Sets the quality setting of the image format to <i>quality</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setQuality(int quality)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setQuality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the quality setting of the image format to <i>quality</i>.</p>
    /// <p>Some image formats, in particular lossy ones, entail a tradeoff between a) visual quality of the resulting image, and b) encoding execution time and compression level. This function sets the level of that tradeoff for image formats that support it. For other formats, this value is ignored.</p>
    /// <p>The value range of <i>quality</i> depends on the image format. For example, the "jpeg" format supports a quality range from 0 (low visual quality, high compression) to 100 (high visual quality, low compression).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#quality">quality</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_quality(&mut self, quality: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setQuality(
            self as *mut crate::QImageWriter,
            quality,
        )
    }

    /// <p>This is an image format specific function that sets the subtype of the image to <i>type</i>. Subtype can be used by a handler to determine which format it should use while saving the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setSubType(const QByteArray& type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setSubType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an image format specific function that sets the subtype of the image to <i>type</i>. Subtype can be used by a handler to determine which format it should use while saving the image.</p>
    /// <p>For example, saving an image in DDS format with A8R8G8R8 subtype:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimagewriter.html#QImageWriter">QImageWriter</a></span> writer(<span class="string">"some/image.dds"</span>);
    ///   <span class="keyword">if</span> (writer<span class="operator">.</span>supportsOption(<span class="type"><a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a></span><span class="operator">::</span>SubType))
    /// &#32;     writer<span class="operator">.</span>setSubType(<span class="string">"A8R8G8B8"</span>);
    ///   writer<span class="operator">.</span>write(image);
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#subType">subType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_sub_type(
        &mut self,
        type_: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setSubType(
            self as *mut crate::QImageWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(type_)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the image text associated with the key <i>key</i> to <i>text</i>. This is useful for storing copyright information or other information about the image. Example:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setText(const QString& key, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the image text associated with the key <i>key</i> to <i>text</i>. This is useful for storing copyright information or other information about the image. Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span> image(<span class="string">"some/image.jpeg"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimagewriter.html#QImageWriter">QImageWriter</a></span> writer(<span class="string">"images/outimage.png"</span><span class="operator">,</span> <span class="string">"png"</span>);
    ///   writer<span class="operator">.</span>setText(<span class="string">"Author"</span><span class="operator">,</span> <span class="string">"John Smith"</span>);
    ///   writer<span class="operator">.</span>write(image);
    ///
    /// </pre>
    /// <p>If you want to store a single block of data (e.g., a comment), you can pass an empty key, or use a generic key like "Description".</p>
    /// <p>The key and text will be embedded into the image data after calling <a href="http://doc.qt.io/qt-5/qimagewriter.html#write">write</a>().</p>
    /// <p>Support for this option is implemented through <a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">QImageIOHandler::Description</a>.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#setText">QImage::setText</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#text">QImageReader::text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text(
        &mut self,
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setText(
            self as *mut crate::QImageWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the image transformations metadata including orientation to <i>transform</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QImageWriter::setTransformation(QFlags<QImageIOHandler::Transformation> orientation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#setTransformation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the image transformations metadata including orientation to <i>transform</i>.</p>
    /// <p>If transformation metadata is not supported by the image format, the transform is applied before writing.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#transformation">transformation</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#write">write</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_transformation(
        &mut self,
        orientation: ::qt_core::QFlags<crate::q_image_io_handler::Transformation>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_setTransformation(
            self as *mut crate::QImageWriter,
            orientation.to_int(),
        )
    }

    /// <p>Returns the subtype of the image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QImageWriter::subType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#subType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the subtype of the image.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setSubType">setSubType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn sub_type(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageWriter_subType(self as *const crate::QImageWriter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list of image formats supported by <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QImageWriter::supportedImageFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of image formats supported by <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>.</p>
    /// <p>By default, Qt can write the following formats:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Format</th><th>MIME type</th><th>Description</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>BMP</td><td>image/bmp</td><td>Windows Bitmap</td></tr>
    /// <tr valign="top" class="even"><td>JPG</td><td>image/jpeg</td><td>Joint Photographic Experts Group</td></tr>
    /// <tr valign="top" class="odd"><td>PNG</td><td>image/png</td><td>Portable Network Graphics</td></tr>
    /// <tr valign="top" class="even"><td>PBM</td><td>image/x-portable-bitmap</td><td>Portable Bitmap</td></tr>
    /// <tr valign="top" class="odd"><td>PGM</td><td>image/x-portable-graymap</td><td>Portable Graymap</td></tr>
    /// <tr valign="top" class="even"><td>PPM</td><td>image/x-portable-pixmap</td><td>Portable Pixmap</td></tr>
    /// <tr valign="top" class="odd"><td>XBM</td><td>image/x-xbitmap</td><td>X11 Bitmap</td></tr>
    /// <tr valign="top" class="even"><td>XPM</td><td>image/x-xpixmap</td><td>X11 Pixmap</td></tr>
    /// </tbody></table></div>
    /// <p>Reading and writing SVG files is supported through the <a href="http://doc.qt.io/qt-5/qtsvg-index.html">Qt SVG</a> module. The <a href="http://doc.qt.io/qt-5/qtimageformats-index.html">Qt Image Formats</a> module provides support for additional image formats.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> instance must be created before this function is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setFormat">setFormat</a>(), <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>(), and <a href="http://doc.qt.io/qt-5/qimageioplugin.html">QImageIOPlugin</a>.</p></div>
    #[inline(always)]
    pub unsafe fn supported_image_formats() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_supportedImageFormats();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list of MIME types supported by <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QImageWriter::supportedMimeTypes()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedMimeTypes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of MIME types supported by <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a>.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a> instance must be created before this function is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedImageFormats">supportedImageFormats</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedMimeTypes">QImageReader::supportedMimeTypes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supported_mime_types() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_supportedMimeTypes();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the list of subtypes supported by an image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QByteArray> QImageWriter::supportedSubTypes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportedSubTypes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of subtypes supported by an image.</p>
    /// <p>This function was introduced in  Qt 5.4.</p></div>
    #[inline(always)]
    pub unsafe fn supported_sub_types(&self) -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_supportedSubTypes(
            self as *const crate::QImageWriter,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the writer supports <i>option</i>; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageWriter::supportsOption(QImageIOHandler::ImageOption option) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#supportsOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the writer supports <i>option</i>; otherwise returns false.</p>
    /// <p>Different image formats support different options. Call this function to determine whether a certain option is supported by the current format. For example, the PNG format allows you to embed text into the image's metadata (see text()).</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimagewriter.html#QImageWriter">QImageWriter</a></span> writer(fileName);
    ///   <span class="keyword">if</span> (writer<span class="operator">.</span>supportsOption(<span class="type"><a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a></span><span class="operator">::</span>Description))
    /// &#32;     writer<span class="operator">.</span>setText(<span class="string">"Author"</span><span class="operator">,</span> <span class="string">"John Smith"</span>);
    ///
    /// </pre>
    /// <p>Options can be tested after the writer has been associated with a format.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportsOption">QImageReader::supportsOption</a>() and <a href="http://doc.qt.io/qt-5/qimagewriter.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supports_option(&self, option: crate::q_image_io_handler::ImageOption) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_supportsOption(
            self as *const crate::QImageWriter,
            option,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QImageWriter::tr(const char* sourceText, const char* disambiguation, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        source_text: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        disambiguation: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(
                disambiguation,
            )
            .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QImageWriter::trUtf8(const char* sourceText, const char* disambiguation, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        source_text: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        disambiguation: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source_text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(
                disambiguation,
            )
            .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the transformation and orientation the image has been set to written with.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QImageIOHandler::Transformation> QImageWriter::transformation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#transformation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transformation and orientation the image has been set to written with.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#setTransformation">setTransformation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transformation(
        &self,
    ) -> ::qt_core::QFlags<crate::q_image_io_handler::Transformation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImageWriter_transformation(
            self as *const crate::QImageWriter,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Writes the image <i>image</i> to the assigned device or file name. Returns <code>true</code> on success; otherwise returns <code>false</code>. If the operation fails, you can call <a href="http://doc.qt.io/qt-5/qimagewriter.html#error">error</a>() to find the type of error that occurred, or <a href="http://doc.qt.io/qt-5/qimagewriter.html#errorString">errorString</a>() to get a human readable description of the error.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImageWriter::write(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#write">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the image <i>image</i> to the assigned device or file name. Returns <code>true</code> on success; otherwise returns <code>false</code>. If the operation fails, you can call <a href="http://doc.qt.io/qt-5/qimagewriter.html#error">error</a>() to find the type of error that occurred, or <a href="http://doc.qt.io/qt-5/qimagewriter.html#errorString">errorString</a>() to get a human readable description of the error.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagewriter.html#canWrite">canWrite</a>(), <a href="http://doc.qt.io/qt-5/qimagewriter.html#error">error</a>(), and <a href="http://doc.qt.io/qt-5/qimagewriter.html#errorString">errorString</a>().</p></div>
    #[inline(always)]
    pub unsafe fn write(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_write(
            self as *mut crate::QImageWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class represents a vector or vertex in 3D space.</p>
///
/// C++ class: <span style='color: green;'>```QVector3D```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector3d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class represents a vector or vertex in 3D space.</p>
/// <p>Vectors are one of the main building blocks of 3D representation and drawing. They consist of three coordinates, traditionally called x, y, and z.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class can also be used to represent vertices in 3D space. We therefore do not need to provide a separate vertex class.</p></div>
#[repr(C)]
pub struct QVector3D {
    _unused: u8,
}
impl QVector3D {
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class represents a vector or vertex in 3D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D& QVector3D::operator=(const QVector3D& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class represents a vector or vertex in 3D space.</p>
    /// <p>Vectors are one of the main building blocks of 3D representation and drawing. They consist of three coordinates, traditionally called x, y, and z.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class can also be used to represent vertices in 3D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::MutRef<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator_(
            self as *mut crate::QVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the cross-product of vectors <i>v1</i> and <i>v2</i>, which corresponds to the normal vector of a plane defined by <i>v1</i> and <i>v2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QVector3D QVector3D::crossProduct(const QVector3D& v1, const QVector3D& v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#crossProduct">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cross-product of vectors <i>v1</i> and <i>v2</i>, which corresponds to the normal vector of a plane defined by <i>v1</i> and <i>v2</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#normal">normal</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cross_product(
        v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_crossProduct(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v2).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the distance that this vertex is from a line defined by <i>point</i> and the unit vector <i>direction</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::distanceToLine(const QVector3D& point, const QVector3D& direction) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance that this vertex is from a line defined by <i>point</i> and the unit vector <i>direction</i>.</p>
    /// <p>If <i>direction</i> is a null vector, then it does not define a line. In that case, the distance from <i>point</i> to this vertex is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToPlane">distanceToPlane</a>().</p></div>
    #[inline(always)]
    pub unsafe fn distance_to_line(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        direction: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_distanceToLine(
            self as *const crate::QVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(point)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(direction)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the distance from this vertex to a plane defined by the vertex <i>plane</i> and a <i>normal</i> unit vector. The <i>normal</i> parameter is assumed to have been normalized to a unit vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::distanceToPlane(const QVector3D& plane, const QVector3D& normal) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from this vertex to a plane defined by the vertex <i>plane</i> and a <i>normal</i> unit vector. The <i>normal</i> parameter is assumed to have been normalized to a unit vector.</p>
    /// <p>The return value will be negative if the vertex is below the plane, or zero if it is on the plane.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#normal">normal</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToLine">distanceToLine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn distance_to_plane_2a(
        &self,
        plane: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        normal: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_distanceToPlane(
            self as *const crate::QVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(plane)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(normal)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::distanceToPlane(const QVector3D& plane1, const QVector3D& plane2, const QVector3D& plane3) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToPlane-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the distance from this vertex a plane defined by the vertices <i>plane1</i>, <i>plane2</i> and <i>plane3</i>.</p>
    /// <p>The return value will be negative if the vertex is below the plane, or zero if it is on the plane.</p>
    /// <p>The two vectors that define the plane are <i>plane2</i> - <i>plane1</i> and <i>plane3</i> - <i>plane1</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#normal">normal</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToLine">distanceToLine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn distance_to_plane_3a(
        &self,
        plane1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        plane2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        plane3: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_distanceToPlane1(
            self as *const crate::QVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(plane1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(plane2)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(plane3)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the distance from this vertex to a point defined by the vertex <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::distanceToPoint(const QVector3D& point) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance from this vertex to a point defined by the vertex <i>point</i>.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToPlane">distanceToPlane</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToLine">distanceToLine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn distance_to_point(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_distanceToPoint(
            self as *const crate::QVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the dot product of <i>v1</i> and <i>v2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static float QVector3D::dotProduct(const QVector3D& v1, const QVector3D& v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#dotProduct">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dot product of <i>v1</i> and <i>v2</i>.</p></div>
    #[inline(always)]
    pub unsafe fn dot_product(
        v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_dotProduct(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v2).as_raw_ptr(),
        )
    }

    /// <p>Returns the component of the vector at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QVector3D::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the component of the vector at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; 3).</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator__(self as *mut crate::QVector3D, i);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the component of the vector at index position <i>i</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the component of the vector at index position <i>i</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; 3).</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator__1(self as *const crate::QVector3D, i)
    }

    /// <p>Returns <code>true</code> if the x, y, and z coordinates are set to 0.0, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector3D::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the x, y, and z coordinates are set to 0.0, otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_isNull(self as *const crate::QVector3D)
    }

    /// <p>Returns the length of the vector from the origin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the length of the vector from the origin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#lengthSquared">lengthSquared</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#normalized">normalized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_length(self as *const crate::QVector3D)
    }

    /// <p>Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::lengthSquared() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#lengthSquared">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#dotProduct">dotProduct</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length_squared(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_lengthSquared(self as *const crate::QVector3D)
    }

    /// Calls C++ function: <span style='color: green;'>```QVector3D operator-(const QVector3D& vector)```</span>.
    #[inline(always)]
    pub unsafe fn neg(&self) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_operator_60(self as *const crate::QVector3D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a null vector, i.e. with coordinates (0, 0, 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector3D::QVector3D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#QVector3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a null vector, i.e. with coordinates (0, 0, 0).</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_QVector3D();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with coordinates (<i>xpos</i>, <i>ypos</i>, <i>zpos</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector3D::QVector3D(float xpos, float ypos, float zpos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#QVector3D-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with coordinates (<i>xpos</i>, <i>ypos</i>, <i>zpos</i>).</p></div>
    #[inline(always)]
    pub unsafe fn from_3_float(
        xpos: ::std::os::raw::c_float,
        ypos: ::std::os::raw::c_float,
        zpos: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_QVector3D2(xpos, ypos, zpos);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with x and y coordinates from a 2D <i>point</i>, and a z coordinate of 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector3D::QVector3D(const QPoint& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#QVector3D-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with x and y coordinates from a 2D <i>point</i>, and a z coordinate of 0.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point(
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_QVector3D3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with x and y coordinates from a 2D <i>point</i>, and a z coordinate of 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector3D::QVector3D(const QPointF& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#QVector3D-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with x and y coordinates from a 2D <i>point</i>, and a z coordinate of 0.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point_f(
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_QVector3D4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 3D vector from the specified 2D <i>vector</i>. The z coordinate is set to zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector3D::QVector3D(const QVector2D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#QVector3D-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 3D vector from the specified 2D <i>vector</i>. The z coordinate is set to zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#toVector2D">toVector2D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_2d(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_QVector3D5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 3D vector from the specified 2D <i>vector</i>. The z coordinate is set to <i>zpos</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector3D::QVector3D(const QVector2D& vector, float zpos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#QVector3D-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 3D vector from the specified 2D <i>vector</i>. The z coordinate is set to <i>zpos</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#toVector2D">toVector2D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_2d_float(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
        zpos: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_QVector3D6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(vector)
                .as_raw_ptr(),
            zpos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 3D vector from the specified 4D <i>vector</i>. The w coordinate is dropped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector3D::QVector3D(const QVector4D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#QVector3D-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 3D vector from the specified 4D <i>vector</i>. The w coordinate is dropped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#toVector4D">toVector4D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_4d(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_QVector3D7(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class represents a vector or vertex in 3D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector3D::QVector3D(const QVector3D& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class represents a vector or vertex in 3D space.</p>
    /// <p>Vectors are one of the main building blocks of 3D representation and drawing. They consist of three coordinates, traditionally called x, y, and z.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class can also be used to represent vertices in 3D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_QVector3D8(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the normal vector of a plane defined by vectors <i>v1</i> and <i>v2</i>, normalized to be a unit vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QVector3D QVector3D::normal(const QVector3D& v1, const QVector3D& v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#normal">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the normal vector of a plane defined by vectors <i>v1</i> and <i>v2</i>, normalized to be a unit vector.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qvector3d.html#crossProduct">crossProduct</a>() to compute the cross-product of <i>v1</i> and <i>v2</i> if you do not need the result to be normalized to a unit vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#crossProduct">crossProduct</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToPlane">distanceToPlane</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normal_2a(
        v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_normal(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v2).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QVector3D QVector3D::normal(const QVector3D& v1, const QVector3D& v2, const QVector3D& v3)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#normal-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the normal vector of a plane defined by vectors <i>v2</i> - <i>v1</i> and <i>v3</i> - <i>v1</i>, normalized to be a unit vector.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qvector3d.html#crossProduct">crossProduct</a>() to compute the cross-product of <i>v2</i> - <i>v1</i> and <i>v3</i> - <i>v1</i> if you do not need the result to be normalized to a unit vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#crossProduct">crossProduct</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#distanceToPlane">distanceToPlane</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normal_3a(
        v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        v3: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_normal1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v2).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v3).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector3D::normalize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#normalize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#normalized">normalized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normalize(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_normalize(self as *mut crate::QVector3D)
    }

    /// <p>Returns the normalized unit vector form of this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QVector3D::normalized() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#normalized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the normalized unit vector form of this vector.</p>
    /// <p>If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#normalize">normalize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normalized(&self) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_normalized(self as *const crate::QVector3D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the window coordinates of this vector initially in object/model coordinates using the model view matrix <i>modelView</i>, the projection matrix <i>projection</i> and the viewport dimensions <i>viewport</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QVector3D::project(const QMatrix4x4& modelView, const QMatrix4x4& projection, const QRect& viewport) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#project">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window coordinates of this vector initially in object/model coordinates using the model view matrix <i>modelView</i>, the projection matrix <i>projection</i> and the viewport dimensions <i>viewport</i>.</p>
    /// <p>When transforming from clip to normalized space, a division by the w component on the vector components takes place. To prevent dividing by 0 if w equals to 0, it is set to 1.</p>
    /// <p><b>Note: </b>the returned y coordinates are in OpenGL orientation. OpenGL expects the bottom to be 0 whereas for Qt top is 0.</p><p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#unproject">unproject</a>().</p></div>
    #[inline(always)]
    pub unsafe fn project(
        &self,
        model_view: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
        projection: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
        viewport: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_project(
            self as *const crate::QVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(model_view)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(projection)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(viewport)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the x coordinate of this point to the given <i>x</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector3D::setX(float x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#setX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the x coordinate of this point to the given <i>x</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qvector3d.html#setY">setY</a>(), and <a href="http://doc.qt.io/qt-5/qvector3d.html#setZ">setZ</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_x(&mut self, x: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_setX(self as *mut crate::QVector3D, x)
    }

    /// <p>Sets the y coordinate of this point to the given <i>y</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector3D::setY(float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#setY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the y coordinate of this point to the given <i>y</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qvector3d.html#setX">setX</a>(), and <a href="http://doc.qt.io/qt-5/qvector3d.html#setZ">setZ</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_y(&mut self, y: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_setY(self as *mut crate::QVector3D, y)
    }

    /// <p>Sets the z coordinate of this point to the given <i>z</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector3D::setZ(float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#setZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the z coordinate of this point to the given <i>z</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#z">z</a>(), <a href="http://doc.qt.io/qt-5/qvector3d.html#setX">setX</a>(), and <a href="http://doc.qt.io/qt-5/qvector3d.html#setY">setY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_z(&mut self, z: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_setZ(self as *mut crate::QVector3D, z)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a> form of this 3D vector. The z coordinate is dropped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QVector3D::toPoint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#toPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a> form of this 3D vector. The z coordinate is dropped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#toPointF">toPointF</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#toVector2D">toVector2D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_point(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_toPoint(self as *const crate::QVector3D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> form of this 3D vector. The z coordinate is dropped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QVector3D::toPointF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#toPointF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> form of this 3D vector. The z coordinate is dropped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#toPoint">toPoint</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#toVector2D">toVector2D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_point_f(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_toPointF(self as *const crate::QVector3D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 3D vector as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QVector3D::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 3D vector as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator_QVariant(
            self as *const crate::QVector3D,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 2D vector form of this 3D vector, dropping the z coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D QVector3D::toVector2D() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#toVector2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 2D vector form of this 3D vector, dropping the z coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#toVector4D">toVector4D</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#toPoint">toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_2d(&self) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_toVector2D(self as *const crate::QVector3D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 4D form of this 3D vector, with the w coordinate set to zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D QVector3D::toVector4D() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#toVector4D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 4D form of this 3D vector, with the w coordinate set to zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#toVector2D">toVector2D</a>() and <a href="http://doc.qt.io/qt-5/qvector3d.html#toPoint">toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_4d(&self) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_toVector4D(self as *const crate::QVector3D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the object/model coordinates of this vector initially in window coordinates using the model view matrix <i>modelView</i>, the projection matrix <i>projection</i> and the viewport dimensions <i>viewport</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QVector3D::unproject(const QMatrix4x4& modelView, const QMatrix4x4& projection, const QRect& viewport) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#unproject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the object/model coordinates of this vector initially in window coordinates using the model view matrix <i>modelView</i>, the projection matrix <i>projection</i> and the viewport dimensions <i>viewport</i>.</p>
    /// <p>When transforming from clip to normalized space, a division by the w component of the vector components takes place. To prevent dividing by 0 if w equals to 0, it is set to 1.</p>
    /// <p><b>Note: </b>y coordinates in <i>viewport</i> should use OpenGL orientation. OpenGL expects the bottom to be 0 whereas for Qt top is 0.</p><p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#project">project</a>().</p></div>
    #[inline(always)]
    pub unsafe fn unproject(
        &self,
        model_view: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
        projection: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
        viewport: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector3D_unproject(
            self as *const crate::QVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(model_view)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(projection)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(viewport)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the x coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qvector3d.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qvector3d.html#z">z</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_x(self as *const crate::QVector3D)
    }

    /// <p>Returns the y coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#setY">setY</a>(), <a href="http://doc.qt.io/qt-5/qvector3d.html#x">x</a>(), and <a href="http://doc.qt.io/qt-5/qvector3d.html#z">z</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_y(self as *const crate::QVector3D)
    }

    /// <p>Returns the z coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector3D::z() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#z">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the z coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#setZ">setZ</a>(), <a href="http://doc.qt.io/qt-5/qvector3d.html#x">x</a>(), and <a href="http://doc.qt.io/qt-5/qvector3d.html#y">y</a>().</p></div>
    #[inline(always)]
    pub unsafe fn z(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_z(self as *const crate::QVector3D)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class represents a vector or vertex in 4D space.</p>
///
/// C++ class: <span style='color: green;'>```QVector4D```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector4d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class represents a vector or vertex in 4D space.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class can also be used to represent vertices in 4D space. We therefore do not need to provide a separate vertex class.</p></div>
#[repr(C)]
pub struct QVector4D {
    _unused: u8,
}
impl QVector4D {
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class represents a vector or vertex in 4D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D& QVector4D::operator=(const QVector4D& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class represents a vector or vertex in 4D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class can also be used to represent vertices in 4D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) -> ::cpp_core::MutRef<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator_(
            self as *mut crate::QVector4D,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the dot product of <i>v1</i> and <i>v2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static float QVector4D::dotProduct(const QVector4D& v1, const QVector4D& v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#dotProduct">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dot product of <i>v1</i> and <i>v2</i>.</p></div>
    #[inline(always)]
    pub unsafe fn dot_product(
        v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
        v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_dotProduct(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(v1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(v2).as_raw_ptr(),
        )
    }

    /// <p>Returns the component of the vector at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QVector4D::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the component of the vector at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; 4).</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator__(self as *mut crate::QVector4D, i);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the component of the vector at index position <i>i</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector4D::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the component of the vector at index position <i>i</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; 4).</p>
    /// <p>This function was introduced in  Qt 5.2.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator__1(self as *const crate::QVector4D, i)
    }

    /// <p>Returns <code>true</code> if the x, y, z, and w coordinates are set to 0.0, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector4D::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the x, y, z, and w coordinates are set to 0.0, otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_isNull(self as *const crate::QVector4D)
    }

    /// <p>Returns the length of the vector from the origin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector4D::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the length of the vector from the origin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#lengthSquared">lengthSquared</a>() and <a href="http://doc.qt.io/qt-5/qvector4d.html#normalized">normalized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_length(self as *const crate::QVector4D)
    }

    /// <p>Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector4D::lengthSquared() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#lengthSquared">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the squared length of the vector from the origin. This is equivalent to the dot product of the vector with itself.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector4d.html#dotProduct">dotProduct</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length_squared(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_lengthSquared(self as *const crate::QVector4D)
    }

    /// Calls C++ function: <span style='color: green;'>```QVector4D operator-(const QVector4D& vector)```</span>.
    #[inline(always)]
    pub unsafe fn neg(&self) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_operator_68(self as *const crate::QVector4D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a null vector, i.e. with coordinates (0, 0, 0, 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#QVector4D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a null vector, i.e. with coordinates (0, 0, 0, 0).</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with coordinates (<i>xpos</i>, <i>ypos</i>, <i>zpos</i>, <i>wpos</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D(float xpos, float ypos, float zpos, float wpos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#QVector4D-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with coordinates (<i>xpos</i>, <i>ypos</i>, <i>zpos</i>, <i>wpos</i>).</p></div>
    #[inline(always)]
    pub unsafe fn from_4_float(
        xpos: ::std::os::raw::c_float,
        ypos: ::std::os::raw::c_float,
        zpos: ::std::os::raw::c_float,
        wpos: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D2(xpos, ypos, zpos, wpos);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with x and y coordinates from a 2D <i>point</i>, and z and w coordinates of 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D(const QPoint& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#QVector4D-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with x and y coordinates from a 2D <i>point</i>, and z and w coordinates of 0.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point(
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with x and y coordinates from a 2D <i>point</i>, and z and w coordinates of 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D(const QPointF& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#QVector4D-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with x and y coordinates from a 2D <i>point</i>, and z and w coordinates of 0.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_point_f(
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 4D vector from the specified 2D <i>vector</i>. The z and w coordinates are set to zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D(const QVector2D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#QVector4D-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 4D vector from the specified 2D <i>vector</i>. The z and w coordinates are set to zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2D">toVector2D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_2d(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 4D vector from the specified 2D <i>vector</i>. The z and w coordinates are set to <i>zpos</i> and <i>wpos</i> respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D(const QVector2D& vector, float zpos, float wpos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#QVector4D-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 4D vector from the specified 2D <i>vector</i>. The z and w coordinates are set to <i>zpos</i> and <i>wpos</i> respectively.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2D">toVector2D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_2d2_float(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
        zpos: ::std::os::raw::c_float,
        wpos: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D6(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(vector)
                .as_raw_ptr(),
            zpos,
            wpos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 4D vector from the specified 3D <i>vector</i>. The w coordinate is set to zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#QVector4D-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 4D vector from the specified 3D <i>vector</i>. The w coordinate is set to zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toVector3D">toVector3D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_3d(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D7(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 4D vector from the specified 3D <i>vector</i>. The w coordinate is set to <i>wpos</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D(const QVector3D& vector, float wpos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#QVector4D-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 4D vector from the specified 3D <i>vector</i>. The w coordinate is set to <i>wpos</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toVector3D">toVector3D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_vector_3d_float(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        wpos: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D8(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
            wpos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class represents a vector or vertex in 4D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector4D::QVector4D(const QVector4D& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class represents a vector or vertex in 4D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class can also be used to represent vertices in 4D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_QVector4D9(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector4D::normalize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#normalize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Normalizes the currect vector in place. Nothing happens if this vector is a null vector or the length of the vector is very close to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector4d.html#normalized">normalized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normalize(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_normalize(self as *mut crate::QVector4D)
    }

    /// <p>Returns the normalized unit vector form of this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D QVector4D::normalized() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#normalized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the normalized unit vector form of this vector.</p>
    /// <p>If this vector is null, then a null vector is returned. If the length of the vector is very close to 1, then the vector will be returned as-is. Otherwise the normalized form of the vector of length 1 will be returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qvector4d.html#normalize">normalize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normalized(&self) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_normalized(self as *const crate::QVector4D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the w coordinate of this point to the given <i>w</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector4D::setW(float w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#setW">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the w coordinate of this point to the given <i>w</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#w">w</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#setY">setY</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#setZ">setZ</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_w(&mut self, w: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_setW(self as *mut crate::QVector4D, w)
    }

    /// <p>Sets the x coordinate of this point to the given <i>x</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector4D::setX(float x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#setX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the x coordinate of this point to the given <i>x</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#setY">setY</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#setZ">setZ</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#setW">setW</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_x(&mut self, x: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_setX(self as *mut crate::QVector4D, x)
    }

    /// <p>Sets the y coordinate of this point to the given <i>y</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector4D::setY(float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#setY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the y coordinate of this point to the given <i>y</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#setZ">setZ</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#setW">setW</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_y(&mut self, y: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_setY(self as *mut crate::QVector4D, y)
    }

    /// <p>Sets the z coordinate of this point to the given <i>z</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector4D::setZ(float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#setZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the z coordinate of this point to the given <i>z</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#z">z</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#setY">setY</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#setW">setW</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_z(&mut self, z: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_setZ(self as *mut crate::QVector4D, z)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a> form of this 4D vector. The z and w coordinates are dropped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QVector4D::toPoint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#toPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a> form of this 4D vector. The z and w coordinates are dropped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toPointF">toPointF</a>() and <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2D">toVector2D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_point(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_toPoint(self as *const crate::QVector4D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> form of this 4D vector. The z and w coordinates are dropped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QVector4D::toPointF() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#toPointF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a> form of this 4D vector. The z and w coordinates are dropped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toPoint">toPoint</a>() and <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2D">toVector2D</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_point_f(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_toPointF(self as *const crate::QVector4D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 4D vector as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QVector4D::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 4D vector as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator_QVariant(
            self as *const crate::QVector4D,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 2D vector form of this 4D vector, dropping the z and w coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D QVector4D::toVector2D() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 2D vector form of this 4D vector, dropping the z and w coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2DAffine">toVector2DAffine</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector3D">toVector3D</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#toPoint">toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_2d(&self) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_toVector2D(self as *const crate::QVector4D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 2D vector form of this 4D vector, dividing the x and y coordinates by the w coordinate and dropping the z coordinate. Returns a null vector if w is zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D QVector4D::toVector2DAffine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2DAffine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 2D vector form of this 4D vector, dividing the x and y coordinates by the w coordinate and dropping the z coordinate. Returns a null vector if w is zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2D">toVector2D</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector3DAffine">toVector3DAffine</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#toPoint">toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_2d_affine(&self) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_toVector2DAffine(
            self as *const crate::QVector4D,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 3D vector form of this 4D vector, dropping the w coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QVector4D::toVector3D() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 3D vector form of this 4D vector, dropping the w coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toVector3DAffine">toVector3DAffine</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2D">toVector2D</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#toPoint">toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_3d(&self) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_toVector3D(self as *const crate::QVector4D);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 3D vector form of this 4D vector, dividing the x, y, and z coordinates by the w coordinate. Returns a null vector if w is zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QVector4D::toVector3DAffine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector3DAffine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 3D vector form of this 4D vector, dividing the x, y, and z coordinates by the w coordinate. Returns a null vector if w is zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#toVector3D">toVector3D</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#toVector2DAffine">toVector2DAffine</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#toPoint">toPoint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_3d_affine(&self) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector4D_toVector3DAffine(
            self as *const crate::QVector4D,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the w coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector4D::w() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#w">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the w coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#setW">setW</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#z">z</a>().</p></div>
    #[inline(always)]
    pub unsafe fn w(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_w(self as *const crate::QVector4D)
    }

    /// <p>Returns the x coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector4D::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#z">z</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#w">w</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_x(self as *const crate::QVector4D)
    }

    /// <p>Returns the y coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector4D::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#setY">setY</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#z">z</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#w">w</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_y(self as *const crate::QVector4D)
    }

    /// <p>Returns the z coordinate of this point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector4D::z() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#z">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the z coordinate of this point.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#setZ">setZ</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qvector4d.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qvector4d.html#w">w</a>().</p></div>
    #[inline(always)]
    pub unsafe fn z(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_z(self as *const crate::QVector4D)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a> class represents a quaternion consisting of a vector and scalar.</p>
///
/// C++ class: <span style='color: green;'>```QQuaternion```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qquaternion.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a> class represents a quaternion consisting of a vector and scalar.</p>
/// <p>Quaternions are used to represent rotations in 3D space, and consist of a 3D rotation axis specified by the x, y, and z coordinates, and a scalar representing the rotation angle.</p></div>
#[repr(C)]
pub struct QQuaternion {
    _unused: u8,
}
impl QQuaternion {
    /// <p>Use <a href="http://doc.qt.io/qt-5/qquaternion.html#conjugated">conjugated</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion QQuaternion::conjugate() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion-obsolete.html#conjugate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qquaternion.html#conjugated">conjugated</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn conjugate(&self) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_conjugate(self as *const crate::QQuaternion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the conjugate of this quaternion, which is (-x, -y, -z, scalar).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion QQuaternion::conjugated() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#conjugated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the conjugate of this quaternion, which is (-x, -y, -z, scalar).</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn conjugated(&self) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_conjugated(self as *const crate::QQuaternion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a> class represents a quaternion consisting of a vector and scalar.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion& QQuaternion::operator=(const QQuaternion& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a> class represents a quaternion consisting of a vector and scalar.</p>
    /// <p>Quaternions are used to represent rotations in 3D space, and consist of a 3D rotation axis specified by the x, y, and z coordinates, and a scalar representing the rotation angle.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
    ) -> ::cpp_core::MutRef<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_operator_(
            self as *mut crate::QQuaternion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the dot product of <i>q1</i> and <i>q2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static float QQuaternion::dotProduct(const QQuaternion& q1, const QQuaternion& q2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#dotProduct">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the dot product of <i>q1</i> and <i>q2</i>.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#length">length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn dot_product(
        q1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
        q2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_dotProduct(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(q1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(q2).as_raw_ptr(),
        )
    }

    /// <p>Constructs the quaternion using 3 axes (<i>xAxis</i>, <i>yAxis</i>, <i>zAxis</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::fromAxes(const QVector3D& xAxis, const QVector3D& yAxis, const QVector3D& zAxis)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#fromAxes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs the quaternion using 3 axes (<i>xAxis</i>, <i>yAxis</i>, <i>zAxis</i>).</p>
    /// <p><b>Note: </b>The axes are assumed to be orthonormal.</p><p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#getAxes">getAxes</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#fromRotationMatrix">fromRotationMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_axes(
        x_axis: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        y_axis: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        z_axis: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_fromAxes(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(x_axis)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(y_axis)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(z_axis)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a normalized quaternion that corresponds to rotating through <i>angle</i> degrees about the specified 3D <i>axis</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::fromAxisAndAngle(const QVector3D& axis, float angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#fromAxisAndAngle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a normalized quaternion that corresponds to rotating through <i>angle</i> degrees about the specified 3D <i>axis</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#getAxisAndAngle">getAxisAndAngle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_axis_and_angle_2a(
        axis: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        angle: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_fromAxisAndAngle(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(axis).as_raw_ptr(),
            angle,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a normalized quaternion that corresponds to rotating through <i>angle</i> degrees about the 3D axis (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::fromAxisAndAngle(float x, float y, float z, float angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#fromAxisAndAngle-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a normalized quaternion that corresponds to rotating through <i>angle</i> degrees about the 3D axis (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#getAxisAndAngle">getAxisAndAngle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_axis_and_angle_4a(
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
        angle: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_fromAxisAndAngle1(x, y, z, angle);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs the quaternion using specified forward direction <i>direction</i> and upward direction <i>up</i>. If the upward direction was not specified or the forward and upward vectors are collinear, a new orthonormal upward direction will be generated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::fromDirection(const QVector3D& direction, const QVector3D& up)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#fromDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs the quaternion using specified forward direction <i>direction</i> and upward direction <i>up</i>. If the upward direction was not specified or the forward and upward vectors are collinear, a new orthonormal upward direction will be generated.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#fromAxes">fromAxes</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#rotationTo">rotationTo</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_direction(
        direction: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        up: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_fromDirection(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(direction)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(up).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::fromEulerAngles(const QVector3D& eulerAngles)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#fromEulerAngles-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates a quaternion that corresponds to a rotation of <i>eulerAngles</i>: eulerAngles.<a href="http://doc.qt.io/qt-5/qquaternion.html#z">z</a>() degrees around the z axis, eulerAngles.<a href="http://doc.qt.io/qt-5/qquaternion.html#x">x</a>() degrees around the x axis, and eulerAngles.<a href="http://doc.qt.io/qt-5/qquaternion.html#y">y</a>() degrees around the y axis (in that order).</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#toEulerAngles">toEulerAngles</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_euler_angles_1a(
        euler_angles: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_fromEulerAngles(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(euler_angles)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a quaternion that corresponds to a rotation of <i>roll</i> degrees around the z axis, <i>pitch</i> degrees around the x axis, and <i>yaw</i> degrees around the y axis (in that order).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::fromEulerAngles(float pitch, float yaw, float roll)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#fromEulerAngles">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a quaternion that corresponds to a rotation of <i>roll</i> degrees around the z axis, <i>pitch</i> degrees around the x axis, and <i>yaw</i> degrees around the y axis (in that order).</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#getEulerAngles">getEulerAngles</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_euler_angles_3a(
        pitch: ::std::os::raw::c_float,
        yaw: ::std::os::raw::c_float,
        roll: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_fromEulerAngles1(pitch, yaw, roll);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the 3 orthonormal axes (<i>xAxis</i>, <i>yAxis</i>, <i>zAxis</i>) defining the quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::getAxes(QVector3D* xAxis, QVector3D* yAxis, QVector3D* zAxis) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#getAxes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the 3 orthonormal axes (<i>xAxis</i>, <i>yAxis</i>, <i>zAxis</i>) defining the quaternion.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#fromAxes">fromAxes</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#toRotationMatrix">toRotationMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_axes(
        &self,
        x_axis: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QVector3D>>,
        y_axis: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QVector3D>>,
        z_axis: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_getAxes(
            self as *const crate::QQuaternion,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QVector3D>>::cast_into(x_axis)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QVector3D>>::cast_into(y_axis)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QVector3D>>::cast_into(z_axis)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::getAxisAndAngle(QVector3D* axis, float* angle) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#getAxisAndAngle-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Extracts a 3D axis <i>axis</i> and a rotating angle <i>angle</i> (in degrees) that corresponds to this quaternion.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#fromAxisAndAngle">fromAxisAndAngle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_axis_and_angle_2a(
        &self,
        axis: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QVector3D>>,
        angle: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_getAxisAndAngle(
            self as *const crate::QQuaternion,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QVector3D>>::cast_into(axis)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(angle)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Extracts a 3D axis (<i>x</i>, <i>y</i>, <i>z</i>) and a rotating angle <i>angle</i> (in degrees) that corresponds to this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::getAxisAndAngle(float* x, float* y, float* z, float* angle) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#getAxisAndAngle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Extracts a 3D axis (<i>x</i>, <i>y</i>, <i>z</i>) and a rotating angle <i>angle</i> (in degrees) that corresponds to this quaternion.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#fromAxisAndAngle">fromAxisAndAngle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_axis_and_angle_4a(
        &self,
        x: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
        z: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
        angle: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_getAxisAndAngle1(
            self as *const crate::QQuaternion,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(x)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(z)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(angle)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Calculates <i>roll</i>, <i>pitch</i>, and <i>yaw</i> Euler angles (in degrees) that corresponds to this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::getEulerAngles(float* pitch, float* yaw, float* roll) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#getEulerAngles">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Calculates <i>roll</i>, <i>pitch</i>, and <i>yaw</i> Euler angles (in degrees) that corresponds to this quaternion.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#fromEulerAngles">fromEulerAngles</a>().</p></div>
    #[inline(always)]
    pub unsafe fn get_euler_angles(
        &self,
        pitch: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
        yaw: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
        roll: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_getEulerAngles(
            self as *const crate::QQuaternion,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(pitch)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(yaw)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(roll)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the inverse of this quaternion. If this quaternion is null, then a null quaternion is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion QQuaternion::inverted() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#inverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inverse of this quaternion. If this quaternion is null, then a null quaternion is returned.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#length">length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn inverted(&self) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_inverted(self as *const crate::QQuaternion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the x, y, and z components of this quaternion are set to 0.0, and the scalar component is set to 1.0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QQuaternion::isIdentity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#isIdentity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the x, y, and z components of this quaternion are set to 0.0, and the scalar component is set to 1.0; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_identity(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_isIdentity(self as *const crate::QQuaternion)
    }

    /// <p>Returns <code>true</code> if the x, y, z, and scalar components of this quaternion are set to 0.0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QQuaternion::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the x, y, z, and scalar components of this quaternion are set to 0.0; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_isNull(self as *const crate::QQuaternion)
    }

    /// <p>Returns the length of the quaternion. This is also called the "norm".</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QQuaternion::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the length of the quaternion. This is also called the "norm".</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#lengthSquared">lengthSquared</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#normalized">normalized</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#dotProduct">dotProduct</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_length(self as *const crate::QQuaternion)
    }

    /// <p>Returns the squared length of the quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QQuaternion::lengthSquared() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#lengthSquared">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the squared length of the quaternion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#dotProduct">dotProduct</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length_squared(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_lengthSquared(self as *const crate::QQuaternion)
    }

    /// Calls C++ function: <span style='color: green;'>```QQuaternion operator-(const QQuaternion& quaternion)```</span>.
    #[inline(always)]
    pub unsafe fn neg(&self) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_operator_76(self as *const crate::QQuaternion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an identity quaternion (1, 0, 0, 0), i.e. with the vector (0, 0, 0) and scalar 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QQuaternion::QQuaternion()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#QQuaternion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an identity quaternion (1, 0, 0, 0), i.e. with the vector (0, 0, 0) and scalar 1.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_QQuaternion();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a quaternion with the vector (<i>xpos</i>, <i>ypos</i>, <i>zpos</i>) and <i>scalar</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QQuaternion::QQuaternion(float scalar, float xpos, float ypos, float zpos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#QQuaternion-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a quaternion with the vector (<i>xpos</i>, <i>ypos</i>, <i>zpos</i>) and <i>scalar</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        scalar: ::std::os::raw::c_float,
        xpos: ::std::os::raw::c_float,
        ypos: ::std::os::raw::c_float,
        zpos: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_QQuaternion2(scalar, xpos, ypos, zpos);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a quaternion vector from the specified <i>vector</i> and <i>scalar</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QQuaternion::QQuaternion(float scalar, const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#QQuaternion-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a quaternion vector from the specified <i>vector</i> and <i>scalar</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#vector">vector</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#scalar">scalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        scalar: ::std::os::raw::c_float,
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_QQuaternion3(
            scalar,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a quaternion from the components of <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QQuaternion::QQuaternion(const QVector4D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#QQuaternion-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a quaternion from the components of <i>vector</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_QQuaternion4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a> class represents a quaternion consisting of a vector and scalar.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QQuaternion::QQuaternion(const QQuaternion& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a> class represents a quaternion consisting of a vector and scalar.</p>
    /// <p>Quaternions are used to represent rotations in 3D space, and consist of a 3D rotation axis specified by the x, y, and z coordinates, and a scalar representing the rotation angle.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_QQuaternion5(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Interpolates along the shortest linear path between the rotational positions <i>q1</i> and <i>q2</i>. The value <i>t</i> should be between 0 and 1, indicating the distance to travel between <i>q1</i> and <i>q2</i>. The result will be <a href="http://doc.qt.io/qt-5/qquaternion.html#normalized">normalized</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::nlerp(const QQuaternion& q1, const QQuaternion& q2, float t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#nlerp">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Interpolates along the shortest linear path between the rotational positions <i>q1</i> and <i>q2</i>. The value <i>t</i> should be between 0 and 1, indicating the distance to travel between <i>q1</i> and <i>q2</i>. The result will be <a href="http://doc.qt.io/qt-5/qquaternion.html#normalized">normalized</a>().</p>
    /// <p>If <i>t</i> is less than or equal to 0, then <i>q1</i> will be returned. If <i>t</i> is greater than or equal to 1, then <i>q2</i> will be returned.</p>
    /// <p>The nlerp() function is typically faster than <a href="http://doc.qt.io/qt-5/qquaternion.html#slerp">slerp</a>() and will give approximate results to spherical interpolation that are good enough for some applications.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#slerp">slerp</a>().</p></div>
    #[inline(always)]
    pub unsafe fn nlerp(
        q1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
        q2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
        t: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_nlerp(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(q1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(q2).as_raw_ptr(),
            t,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Normalizes the current quaternion in place. Nothing happens if this is a null quaternion or the length of the quaternion is very close to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::normalize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#normalize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Normalizes the current quaternion in place. Nothing happens if this is a null quaternion or the length of the quaternion is very close to 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#normalized">normalized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normalize(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_normalize(self as *mut crate::QQuaternion)
    }

    /// <p>Returns the normalized unit form of this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion QQuaternion::normalized() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#normalized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the normalized unit form of this quaternion.</p>
    /// <p>If this quaternion is null, then a null quaternion is returned. If the length of the quaternion is very close to 1, then the quaternion will be returned as-is. Otherwise the normalized form of the quaternion of length 1 will be returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#normalize">normalize</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#length">length</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#dotProduct">dotProduct</a>().</p></div>
    #[inline(always)]
    pub unsafe fn normalized(&self) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_normalized(self as *const crate::QQuaternion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Rotates <i>vector</i> with this quaternion to produce a new vector in 3D space. The following code:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QQuaternion::rotatedVector(const QVector3D& vector) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#rotatedVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates <i>vector</i> with this quaternion to produce a new vector in 3D space. The following code:</p>
    /// <pre class="cpp">
    ///
    ///   QVector3D result <span class="operator">=</span> q<span class="operator">.</span>rotatedVector(vector);
    ///
    /// </pre>
    /// <p>is equivalent to the following:</p>
    /// <pre class="cpp">
    ///
    ///   QVector3D result <span class="operator">=</span> (q <span class="operator">*</span> <span class="type"><a href="http://doc.qt.io/qt-5/qquaternion.html#QQuaternion">QQuaternion</a></span>(<span class="number">0</span><span class="operator">,</span> vector) <span class="operator">*</span> q<span class="operator">.</span>conjugated())<span class="operator">.</span>vector();
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn rotated_vector(
        &self,
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_rotatedVector(
            self as *const crate::QQuaternion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the shortest arc quaternion to rotate from the direction described by the vector <i>from</i> to the direction described by the vector <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::rotationTo(const QVector3D& from, const QVector3D& to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#rotationTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the shortest arc quaternion to rotate from the direction described by the vector <i>from</i> to the direction described by the vector <i>to</i>.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#fromDirection">fromDirection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotation_to(
        from: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        to: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_rotationTo(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(from).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(to).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the scalar component of this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QQuaternion::scalar() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#scalar">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the scalar component of this quaternion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#setScalar">setScalar</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#z">z</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scalar(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_scalar(self as *const crate::QQuaternion)
    }

    /// <p>Sets the scalar component of this quaternion to <i>scalar</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::setScalar(float scalar)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#setScalar">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the scalar component of this quaternion to <i>scalar</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#scalar">scalar</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#setY">setY</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#setZ">setZ</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_scalar(&mut self, scalar: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_setScalar(self as *mut crate::QQuaternion, scalar)
    }

    /// <p>Sets the vector component of this quaternion to <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::setVector(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#setVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the vector component of this quaternion to <i>vector</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#vector">vector</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#setScalar">setScalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_vector_1a(
        &mut self,
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_setVector(
            self as *mut crate::QQuaternion,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the vector component of this quaternion to (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::setVector(float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#setVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the vector component of this quaternion to (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#vector">vector</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#setScalar">setScalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_vector_3a(
        &mut self,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_setVector1(
            self as *mut crate::QQuaternion,
            x,
            y,
            z,
        )
    }

    /// <p>Sets the x coordinate of this quaternion's vector to the given <i>x</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::setX(float x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#setX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the x coordinate of this quaternion's vector to the given <i>x</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#setY">setY</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#setZ">setZ</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#setScalar">setScalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_x(&mut self, x: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_setX(self as *mut crate::QQuaternion, x)
    }

    /// <p>Sets the y coordinate of this quaternion's vector to the given <i>y</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::setY(float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#setY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the y coordinate of this quaternion's vector to the given <i>y</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#setZ">setZ</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#setScalar">setScalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_y(&mut self, y: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_setY(self as *mut crate::QQuaternion, y)
    }

    /// <p>Sets the z coordinate of this quaternion's vector to the given <i>z</i> coordinate.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QQuaternion::setZ(float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#setZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the z coordinate of this quaternion's vector to the given <i>z</i> coordinate.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#z">z</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#setY">setY</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#setScalar">setScalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_z(&mut self, z: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_setZ(self as *mut crate::QQuaternion, z)
    }

    /// <p>Interpolates along the shortest spherical path between the rotational positions <i>q1</i> and <i>q2</i>. The value <i>t</i> should be between 0 and 1, indicating the spherical distance to travel between <i>q1</i> and <i>q2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QQuaternion QQuaternion::slerp(const QQuaternion& q1, const QQuaternion& q2, float t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#slerp">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Interpolates along the shortest spherical path between the rotational positions <i>q1</i> and <i>q2</i>. The value <i>t</i> should be between 0 and 1, indicating the spherical distance to travel between <i>q1</i> and <i>q2</i>.</p>
    /// <p>If <i>t</i> is less than or equal to 0, then <i>q1</i> will be returned. If <i>t</i> is greater than or equal to 1, then <i>q2</i> will be returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#nlerp">nlerp</a>().</p></div>
    #[inline(always)]
    pub unsafe fn slerp(
        q1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
        q2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
        t: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_slerp(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(q1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(q2).as_raw_ptr(),
            t,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QQuaternion::toEulerAngles() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#toEulerAngles">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Calculates roll, pitch, and yaw Euler angles (in degrees) that corresponds to this quaternion.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#fromEulerAngles">fromEulerAngles</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_euler_angles(&self) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_toEulerAngles(
            self as *const crate::QQuaternion,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the quaternion as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QQuaternion::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the quaternion as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QQuaternion_operator_QVariant(
            self as *const crate::QQuaternion,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns this quaternion as a 4D vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D QQuaternion::toVector4D() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#toVector4D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this quaternion as a 4D vector.</p></div>
    #[inline(always)]
    pub unsafe fn to_vector_4d(&self) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_toVector4D(self as *const crate::QQuaternion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the vector component of this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QQuaternion::vector() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#vector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vector component of this quaternion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#setVector">setVector</a>() and <a href="http://doc.qt.io/qt-5/qquaternion.html#scalar">scalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn vector(&self) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_vector(self as *const crate::QQuaternion);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the x coordinate of this quaternion's vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QQuaternion::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#x">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the x coordinate of this quaternion's vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#setX">setX</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#y">y</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#z">z</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#scalar">scalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_x(self as *const crate::QQuaternion)
    }

    /// <p>Returns the y coordinate of this quaternion's vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QQuaternion::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#y">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the y coordinate of this quaternion's vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#setY">setY</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#z">z</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#scalar">scalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_y(self as *const crate::QQuaternion)
    }

    /// <p>Returns the z coordinate of this quaternion's vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QQuaternion::z() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#z">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the z coordinate of this quaternion's vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#setZ">setZ</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#x">x</a>(), <a href="http://doc.qt.io/qt-5/qquaternion.html#y">y</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html#scalar">scalar</a>().</p></div>
    #[inline(always)]
    pub unsafe fn z(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_z(self as *const crate::QQuaternion)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class represents a 4x4 transformation matrix in 3D space.</p>
///
/// C++ class: <span style='color: green;'>```QMatrix4x4```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class represents a 4x4 transformation matrix in 3D space.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class in general is treated as a row-major matrix, in that the constructors and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-28-29">operator</a>() functions take data in row-major format, as is familiar in C-style usage.</p>
/// <p>Internally the data is stored as column-major format, so as to be optimal for passing to OpenGL functions, which expect column-major data.</p>
/// <p>When using these functions be aware that they return data in <b>column-major</b> format:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">data</a>()</li>
/// <li><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">constData</a>()</li>
/// </ul></div>
#[repr(C)]
pub struct QMatrix4X4 {
    _unused: u8,
}
impl QMatrix4X4 {
    /// <p>Returns a constant reference to the element at position (<i>row</i>, <i>column</i>) in this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QMatrix4x4::operator()(int row, int column) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-28-29">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a constant reference to the element at position (<i>row</i>, <i>column</i>) in this matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#column">column</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#row">row</a>().</p></div>
    #[inline(always)]
    pub unsafe fn call(
        &self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator__(
            self as *const crate::QMatrix4X4,
            row,
            column,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the element at position (<i>row</i>, <i>column</i>) in this matrix so that the element can be assigned to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QMatrix4x4::operator()(int row, int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-28-29-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the element at position (<i>row</i>, <i>column</i>) in this matrix so that the element can be assigned to.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>(), <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setColumn">setColumn</a>(), and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setRow">setRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn call_mut(
        &mut self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator__1(
            self as *mut crate::QMatrix4X4,
            row,
            column,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the elements of column <i>index</i> as a 4D vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D QMatrix4x4::column(int index) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#column">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the elements of column <i>index</i> as a 4D vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setColumn">setColumn</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#row">row</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column(
        &self,
        index: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_column(self as *const crate::QMatrix4X4, index);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a constant pointer to the raw data of this matrix. This raw data is stored in column-major format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float* QMatrix4x4::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a constant pointer to the raw data of this matrix. This raw data is stored in column-major format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">data</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_constData(self as *const crate::QMatrix4X4);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Retrieves the 16 items in this matrix and copies them to <i>values</i> in row-major order.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::copyDataTo(float* values) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#copyDataTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Retrieves the 16 items in this matrix and copies them to <i>values</i> in row-major order.</p></div>
    #[inline(always)]
    pub unsafe fn copy_data_to(
        &self,
        values: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_copyDataTo(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(values)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class represents a 4x4 transformation matrix in 3D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4& QMatrix4x4::operator=(const QMatrix4x4& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class represents a 4x4 transformation matrix in 3D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class in general is treated as a row-major matrix, in that the constructors and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-28-29">operator</a>() functions take data in row-major format, as is familiar in C-style usage.</p>
    /// <p>Internally the data is stored as column-major format, so as to be optimal for passing to OpenGL functions, which expect column-major data.</p>
    /// <p>When using these functions be aware that they return data in <b>column-major</b> format:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">data</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">constData</a>()</li>
    /// </ul></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
    ) -> ::cpp_core::MutRef<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator_(
            self as *mut crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a pointer to the raw data of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float* QMatrix4x4::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the raw data of this matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_data(self as *mut crate::QMatrix4X4);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a constant pointer to the raw data of this matrix. This raw data is stored in column-major format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float* QMatrix4x4::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a constant pointer to the raw data of this matrix. This raw data is stored in column-major format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">constData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_data1(self as *const crate::QMatrix4X4);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the determinant of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QMatrix4x4::determinant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#determinant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the determinant of this matrix.</p></div>
    #[inline(always)]
    pub unsafe fn determinant(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_determinant(self as *const crate::QMatrix4X4)
    }

    /// <p>Fills all elements of this matrx with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::fill(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fills all elements of this matrx with <i>value</i>.</p></div>
    #[inline(always)]
    pub unsafe fn fill(&mut self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_fill(self as *mut crate::QMatrix4X4, value)
    }

    /// <p>Flips between right-handed and left-handed coordinate systems by multiplying the y and z co-ordinates by -1. This is normally used to create a left-handed orthographic view without scaling the viewport as <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#ortho">ortho</a>() does.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::flipCoordinates()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4-obsolete.html#flipCoordinates">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Flips between right-handed and left-handed coordinate systems by multiplying the y and z co-ordinates by -1. This is normally used to create a left-handed orthographic view without scaling the viewport as <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#ortho">ortho</a>() does.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#ortho">ortho</a>().</p>
    ///
    /// <h2>Related Non-Members</h2></div>
    #[inline(always)]
    pub unsafe fn flip_coordinates(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_flipCoordinates(self as *mut crate::QMatrix4X4)
    }

    /// <p>Multiplies this matrix by another that applies a perspective frustum projection for a window with lower-left corner (<i>left</i>, <i>bottom</i>), upper-right corner (<i>right</i>, <i>top</i>), and the specified <i>nearPlane</i> and <i>farPlane</i> clipping planes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::frustum(float left, float right, float bottom, float top, float nearPlane, float farPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#frustum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by another that applies a perspective frustum projection for a window with lower-left corner (<i>left</i>, <i>bottom</i>), upper-right corner (<i>right</i>, <i>top</i>), and the specified <i>nearPlane</i> and <i>farPlane</i> clipping planes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#ortho">ortho</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#perspective">perspective</a>().</p></div>
    #[inline(always)]
    pub unsafe fn frustum(
        &mut self,
        left: ::std::os::raw::c_float,
        right: ::std::os::raw::c_float,
        bottom: ::std::os::raw::c_float,
        top: ::std::os::raw::c_float,
        near_plane: ::std::os::raw::c_float,
        far_plane: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_frustum(
            self as *mut crate::QMatrix4X4,
            left,
            right,
            bottom,
            top,
            near_plane,
            far_plane,
        )
    }

    /// <p>Returns the inverse of this matrix. Returns the identity if this matrix cannot be inverted; i.e. <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#determinant">determinant</a>() is zero. If <i>invertible</i> is not null, then true will be written to that location if the matrix can be inverted; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 QMatrix4x4::inverted(bool* invertible = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#inverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inverse of this matrix. Returns the identity if this matrix cannot be inverted; i.e. <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#determinant">determinant</a>() is zero. If <i>invertible</i> is not null, then true will be written to that location if the matrix can be inverted; false otherwise.</p>
    /// <p>If the matrix is recognized as the identity or an orthonormal matrix, then this function will quickly invert the matrix using optimized routines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#determinant">determinant</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#normalMatrix">normalMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn inverted_1a(
        &self,
        invertible: impl ::cpp_core::CastInto<::cpp_core::MutPtr<bool>>,
    ) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_inverted(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<bool>>::cast_into(invertible)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the inverse of this matrix. Returns the identity if this matrix cannot be inverted; i.e. <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#determinant">determinant</a>() is zero. If <i>invertible</i> is not null, then true will be written to that location if the matrix can be inverted; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 QMatrix4x4::inverted() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#inverted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the inverse of this matrix. Returns the identity if this matrix cannot be inverted; i.e. <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#determinant">determinant</a>() is zero. If <i>invertible</i> is not null, then true will be written to that location if the matrix can be inverted; false otherwise.</p>
    /// <p>If the matrix is recognized as the identity or an orthonormal matrix, then this function will quickly invert the matrix using optimized routines.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#determinant">determinant</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#normalMatrix">normalMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn inverted_0a(&self) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_inverted1(self as *const crate::QMatrix4X4);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this matrix is affine matrix; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QMatrix4x4::isAffine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#isAffine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this matrix is affine matrix; false otherwise.</p>
    /// <p>An affine matrix is a 4x4 matrix with row 3 equal to (0, 0, 0, 1), e.g. no projective coefficients.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#isIdentity">isIdentity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_affine(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_isAffine(self as *const crate::QMatrix4X4)
    }

    /// <p>Returns <code>true</code> if this matrix is the identity; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QMatrix4x4::isIdentity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#isIdentity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this matrix is the identity; false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setToIdentity">setToIdentity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_identity(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_isIdentity(self as *const crate::QMatrix4X4)
    }

    /// <p>Multiplies this matrix by a viewing matrix derived from an eye point. The <i>center</i> value indicates the center of the view that the <i>eye</i> is looking at. The <i>up</i> value indicates which direction should be considered up with respect to the <i>eye</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::lookAt(const QVector3D& eye, const QVector3D& center, const QVector3D& up)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#lookAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by a viewing matrix derived from an eye point. The <i>center</i> value indicates the center of the view that the <i>eye</i> is looking at. The <i>up</i> value indicates which direction should be considered up with respect to the <i>eye</i>.</p>
    /// <p><b>Note: </b>The <i>up</i> vector must not be parallel to the line of sight from <i>eye</i> to <i>center</i>.</p></div>
    #[inline(always)]
    pub unsafe fn look_at(
        &mut self,
        eye: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
        up: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_lookAt(
            self as *mut crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(eye).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(center)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(up).as_raw_ptr(),
        )
    }

    /// <p>Maps <i>point</i> by multiplying this matrix by <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QMatrix4x4::map(const QPoint& point) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#map">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps <i>point</i> by multiplying this matrix by <i>point</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#mapRect">mapRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_q_point(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_map(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Maps <i>point</i> by multiplying this matrix by <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QMatrix4x4::map(const QPointF& point) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#map-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps <i>point</i> by multiplying this matrix by <i>point</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#mapRect">mapRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_q_point_f(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_map1(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Maps <i>point</i> by multiplying this matrix by <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QMatrix4x4::map(const QVector3D& point) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#map-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps <i>point</i> by multiplying this matrix by <i>point</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#mapRect">mapRect</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#mapVector">mapVector</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_q_vector_3d(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_map2(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Maps <i>point</i> by multiplying this matrix by <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D QMatrix4x4::map(const QVector4D& point) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#map-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps <i>point</i> by multiplying this matrix by <i>point</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#mapRect">mapRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_q_vector_4d(
        &self,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_map3(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(point)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Maps <i>rect</i> by multiplying this matrix by the corners of <i>rect</i> and then forming a new rectangle from the results. The returned rectangle will be an ordinary 2D rectangle with sides parallel to the horizontal and vertical axes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QMatrix4x4::mapRect(const QRect& rect) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#mapRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps <i>rect</i> by multiplying this matrix by the corners of <i>rect</i> and then forming a new rectangle from the results. The returned rectangle will be an ordinary 2D rectangle with sides parallel to the horizontal and vertical axes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#map">map</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_rect_q_rect(
        &self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_mapRect(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Maps <i>rect</i> by multiplying this matrix by the corners of <i>rect</i> and then forming a new rectangle from the results. The returned rectangle will be an ordinary 2D rectangle with sides parallel to the horizontal and vertical axes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QMatrix4x4::mapRect(const QRectF& rect) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#mapRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps <i>rect</i> by multiplying this matrix by the corners of <i>rect</i> and then forming a new rectangle from the results. The returned rectangle will be an ordinary 2D rectangle with sides parallel to the horizontal and vertical axes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#map">map</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_rect_q_rect_f(
        &self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_mapRect1(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Maps <i>vector</i> by multiplying the top 3x3 portion of this matrix by <i>vector</i>. The translation and projection components of this matrix are ignored.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D QMatrix4x4::mapVector(const QVector3D& vector) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#mapVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps <i>vector</i> by multiplying the top 3x3 portion of this matrix by <i>vector</i>. The translation and projection components of this matrix are ignored.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#map">map</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_vector(
        &self,
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_mapVector(
            self as *const crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 operator-(const QMatrix4x4& matrix)```</span>.
    #[inline(always)]
    pub unsafe fn neg(&self) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_operator_91(self as *const crate::QMatrix4X4);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an identity matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix4x4::QMatrix4x4()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#QMatrix4x4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an identity matrix.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_QMatrix4x4();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a matrix from the given 16 floating-point <i>values</i>. The contents of the array <i>values</i> is assumed to be in row-major order.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix4x4::QMatrix4x4(const float* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#QMatrix4x4-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a matrix from the given 16 floating-point <i>values</i>. The contents of the array <i>values</i> is assumed to be in row-major order.</p>
    /// <p>If the matrix has a special type (identity, translate, scale, etc), the programmer should follow this constructor with a call to <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>() if they wish <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> to optimize further calls to <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>(), etc.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#copyDataTo">copyDataTo</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_float(
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_QMatrix4x42(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a matrix from the 16 elements <i>m11</i>, <i>m12</i>, <i>m13</i>, <i>m14</i>, <i>m21</i>, <i>m22</i>, <i>m23</i>, <i>m24</i>, <i>m31</i>, <i>m32</i>, <i>m33</i>, <i>m34</i>, <i>m41</i>, <i>m42</i>, <i>m43</i>, and <i>m44</i>. The elements are specified in row-major order.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix4x4::QMatrix4x4(float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#QMatrix4x4-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a matrix from the 16 elements <i>m11</i>, <i>m12</i>, <i>m13</i>, <i>m14</i>, <i>m21</i>, <i>m22</i>, <i>m23</i>, <i>m24</i>, <i>m31</i>, <i>m32</i>, <i>m33</i>, <i>m34</i>, <i>m41</i>, <i>m42</i>, <i>m43</i>, and <i>m44</i>. The elements are specified in row-major order.</p>
    /// <p>If the matrix has a special type (identity, translate, scale, etc), the programmer should follow this constructor with a call to <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>() if they wish <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> to optimize further calls to <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>(), etc.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_16_float(
        m11: ::std::os::raw::c_float,
        m12: ::std::os::raw::c_float,
        m13: ::std::os::raw::c_float,
        m14: ::std::os::raw::c_float,
        m21: ::std::os::raw::c_float,
        m22: ::std::os::raw::c_float,
        m23: ::std::os::raw::c_float,
        m24: ::std::os::raw::c_float,
        m31: ::std::os::raw::c_float,
        m32: ::std::os::raw::c_float,
        m33: ::std::os::raw::c_float,
        m34: ::std::os::raw::c_float,
        m41: ::std::os::raw::c_float,
        m42: ::std::os::raw::c_float,
        m43: ::std::os::raw::c_float,
        m44: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_QMatrix4x43(
            m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix4x4::QMatrix4x4(const float* values, int cols, int rows)```</span>.
    #[inline(always)]
    pub unsafe fn from_float2_int(
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        cols: ::std::os::raw::c_int,
        rows: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_QMatrix4x44(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            cols,
            rows,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 4x4 matrix from the conventional Qt 2D transformation matrix <i>transform</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix4x4::QMatrix4x4(const QTransform& transform)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#QMatrix4x4-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 4x4 matrix from the conventional Qt 2D transformation matrix <i>transform</i>.</p>
    /// <p>If <i>transform</i> has a special type (identity, translate, scale, etc), the programmer should follow this constructor with a call to <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>() if they wish <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> to optimize further calls to <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>(), etc.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#toTransform">toTransform</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_transform(
        transform: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_QMatrix4x45(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(transform)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a 4x4 matrix from a conventional Qt 2D affine transformation <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix4x4::QMatrix4x4(const QMatrix& matrix)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#QMatrix4x4-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a 4x4 matrix from a conventional Qt 2D affine transformation <i>matrix</i>.</p>
    /// <p>If <i>matrix</i> has a special type (identity, translate, scale, etc), the programmer should follow this constructor with a call to <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>() if they wish <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> to optimize further calls to <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>(), etc.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#toAffine">toAffine</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_matrix(
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_QMatrix4x46(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class represents a 4x4 transformation matrix in 3D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMatrix4x4::QMatrix4x4(const QMatrix4x4& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class represents a 4x4 transformation matrix in 3D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class in general is treated as a row-major matrix, in that the constructors and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-28-29">operator</a>() functions take data in row-major format, as is familiar in C-style usage.</p>
    /// <p>Internally the data is stored as column-major format, so as to be optimal for passing to OpenGL functions, which expect column-major data.</p>
    /// <p>When using these functions be aware that they return data in <b>column-major</b> format:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">data</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">constData</a>()</li>
    /// </ul></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
    ) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_QMatrix4x47(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Optimize the usage of this matrix from its current elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::optimize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Optimize the usage of this matrix from its current elements.</p>
    /// <p>Some operations such as <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>(), and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">rotate</a>() can be performed more efficiently if the matrix being modified is already known to be the identity, a previous <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>(), a previous <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>(), etc.</p>
    /// <p>Normally the <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class keeps track of this special type internally as operations are performed. However, if the matrix is modified directly with {<a href="http://doc.qt.io/qt-5/qloggingcategory.html#operator-28-29">QLoggingCategory::operator</a>()}{<a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-28-29">operator</a>()()} or <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">data</a>(), then <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> will lose track of the special type and will revert to the safest but least efficient operations thereafter.</p>
    /// <p>By calling optimize() after directly modifying the matrix, the programmer can force <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> to recover the special type if the elements appear to conform to one of the known optimized types.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qloggingcategory.html#operator-28-29">operator</a>()(), <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">data</a>(), and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn optimize(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_optimize(self as *mut crate::QMatrix4X4)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::ortho(const QRect& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#ortho-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that applies an orthographic projection for a window with boundaries specified by <i>rect</i>. The near and far clipping planes will be -1 and 1 respectively.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#frustum">frustum</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#perspective">perspective</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ortho_q_rect(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_ortho(
            self as *mut crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::ortho(const QRectF& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#ortho-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that applies an orthographic projection for a window with boundaries specified by <i>rect</i>. The near and far clipping planes will be -1 and 1 respectively.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#frustum">frustum</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#perspective">perspective</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ortho_q_rect_f(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_ortho1(
            self as *mut crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>Multiplies this matrix by another that applies an orthographic projection for a window with lower-left corner (<i>left</i>, <i>bottom</i>), upper-right corner (<i>right</i>, <i>top</i>), and the specified <i>nearPlane</i> and <i>farPlane</i> clipping planes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::ortho(float left, float right, float bottom, float top, float nearPlane, float farPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#ortho">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by another that applies an orthographic projection for a window with lower-left corner (<i>left</i>, <i>bottom</i>), upper-right corner (<i>right</i>, <i>top</i>), and the specified <i>nearPlane</i> and <i>farPlane</i> clipping planes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#frustum">frustum</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#perspective">perspective</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ortho_6_float(
        &mut self,
        left: ::std::os::raw::c_float,
        right: ::std::os::raw::c_float,
        bottom: ::std::os::raw::c_float,
        top: ::std::os::raw::c_float,
        near_plane: ::std::os::raw::c_float,
        far_plane: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_ortho2(
            self as *mut crate::QMatrix4X4,
            left,
            right,
            bottom,
            top,
            near_plane,
            far_plane,
        )
    }

    /// <p>Multiplies this matrix by another that applies a perspective projection. The vertical field of view will be <i>verticalAngle</i> degrees within a window with a given <i>aspectRatio</i> that determines the horizontal field of view. The projection will have the specified <i>nearPlane</i> and <i>farPlane</i> clipping planes which are the distances from the viewer to the corresponding planes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::perspective(float verticalAngle, float aspectRatio, float nearPlane, float farPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#perspective">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by another that applies a perspective projection. The vertical field of view will be <i>verticalAngle</i> degrees within a window with a given <i>aspectRatio</i> that determines the horizontal field of view. The projection will have the specified <i>nearPlane</i> and <i>farPlane</i> clipping planes which are the distances from the viewer to the corresponding planes.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#ortho">ortho</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#frustum">frustum</a>().</p></div>
    #[inline(always)]
    pub unsafe fn perspective(
        &mut self,
        vertical_angle: ::std::os::raw::c_float,
        aspect_ratio: ::std::os::raw::c_float,
        near_plane: ::std::os::raw::c_float,
        far_plane: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_perspective(
            self as *mut crate::QMatrix4X4,
            vertical_angle,
            aspect_ratio,
            near_plane,
            far_plane,
        )
    }

    /// <p>Multiples this matrix by another that rotates coordinates through <i>angle</i> degrees about <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::rotate(float angle, const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiples this matrix by another that rotates coordinates through <i>angle</i> degrees about <i>vector</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotate_2a(
        &mut self,
        angle: ::std::os::raw::c_float,
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_rotate(
            self as *mut crate::QMatrix4X4,
            angle,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::rotate(float angle, float x, float y, float z = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that rotates coordinates through <i>angle</i> degrees about the vector (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotate_4a(
        &mut self,
        angle: ::std::os::raw::c_float,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_rotate1(
            self as *mut crate::QMatrix4X4,
            angle,
            x,
            y,
            z,
        )
    }

    /// <p>Multiples this matrix by another that rotates coordinates according to a specified <i>quaternion</i>. The <i>quaternion</i> is assumed to have been normalized.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::rotate(const QQuaternion& quaternion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiples this matrix by another that rotates coordinates according to a specified <i>quaternion</i>. The <i>quaternion</i> is assumed to have been normalized.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>(), and <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn rotate_1a(
        &mut self,
        quaternion: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_rotate2(
            self as *mut crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(quaternion)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::rotate(float angle, float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that rotates coordinates through <i>angle</i> degrees about the vector (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rotate_3a(
        &mut self,
        angle: ::std::os::raw::c_float,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_rotate3(self as *mut crate::QMatrix4X4, angle, x, y)
    }

    /// <p>Returns the elements of row <i>index</i> as a 4D vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D QMatrix4x4::row(int index) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#row">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the elements of row <i>index</i> as a 4D vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setRow">setRow</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#column">column</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row(&self, index: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_row(self as *const crate::QMatrix4X4, index);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Multiplies this matrix by another that scales coordinates by the components of <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::scale(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by another that scales coordinates by the components of <i>vector</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">rotate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scale_q_vector_3d(
        &mut self,
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_scale(
            self as *mut crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::scale(float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that scales coordinates by the components <i>x</i>, and <i>y</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">rotate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scale_2_float(&mut self, x: ::std::os::raw::c_float, y: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_scale1(self as *mut crate::QMatrix4X4, x, y)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::scale(float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that scales coordinates by the components <i>x</i>, <i>y</i>, and <i>z</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">rotate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scale_3_float(
        &mut self,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_scale2(self as *mut crate::QMatrix4X4, x, y, z)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::scale(float factor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that scales coordinates by the given <i>factor</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">rotate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scale_float(&mut self, factor: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_scale3(self as *mut crate::QMatrix4X4, factor)
    }

    /// <p>Sets the elements of column <i>index</i> to the components of <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::setColumn(int index, const QVector4D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the elements of column <i>index</i> to the components of <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#column">column</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setRow">setRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_column(
        &mut self,
        index: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_setColumn(
            self as *mut crate::QMatrix4X4,
            index,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the elements of row <i>index</i> to the components of <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::setRow(int index, const QVector4D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the elements of row <i>index</i> to the components of <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#row">row</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setColumn">setColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_row(
        &mut self,
        index: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_setRow(
            self as *mut crate::QMatrix4X4,
            index,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets this matrix to the identity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::setToIdentity()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#setToIdentity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets this matrix to the identity.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#isIdentity">isIdentity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_to_identity(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_setToIdentity(self as *mut crate::QMatrix4X4)
    }

    /// <p>Returns the conventional Qt 2D affine transformation matrix that corresponds to this matrix. It is assumed that this matrix only contains 2D affine transformation elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix QMatrix4x4::toAffine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#toAffine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the conventional Qt 2D affine transformation matrix that corresponds to this matrix. It is assumed that this matrix only contains 2D affine transformation elements.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#toTransform">toTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_affine(&self) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_toAffine(self as *const crate::QMatrix4X4);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the matrix as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QMatrix4x4::operator QVariant() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-QVariant">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix as a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_q_variant(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator_QVariant(
            self as *const crate::QMatrix4X4,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the conventional Qt 2D transformation matrix that corresponds to this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QMatrix4x4::toTransform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#toTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the conventional Qt 2D transformation matrix that corresponds to this matrix.</p>
    /// <p>The returned <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> is formed by simply dropping the third row and third column of the <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a>. This is suitable for implementing orthographic projections where the z co-ordinate should be dropped rather than projected.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#toAffine">toAffine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_transform_0a(&self) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_toTransform(self as *const crate::QMatrix4X4);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the conventional Qt 2D transformation matrix that corresponds to this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QMatrix4x4::toTransform(float distanceToPlane) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#toTransform-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the conventional Qt 2D transformation matrix that corresponds to this matrix.</p>
    /// <p>If <i>distanceToPlane</i> is non-zero, it indicates a projection factor to use to adjust for the z co-ordinate. The value of 1024 corresponds to the projection factor used by <a href="http://doc.qt.io/qt-5/qtransform.html#rotate">QTransform::rotate</a>() for the x and y axes.</p>
    /// <p>If <i>distanceToPlane</i> is zero, then the returned <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> is formed by simply dropping the third row and third column of the <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a>. This is suitable for implementing orthographic projections where the z co-ordinate should be dropped rather than projected.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#toAffine">toAffine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_transform_1a(
        &self,
        distance_to_plane: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_toTransform1(
            self as *const crate::QMatrix4X4,
            distance_to_plane,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Multiplies this matrix by another that translates coordinates by the components of <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::translate(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by another that translates coordinates by the components of <i>vector</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">rotate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_1a(
        &mut self,
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_translate(
            self as *mut crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(vector)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::translate(float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that translates coordinates by the components <i>x</i>, and <i>y</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">rotate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_2a(&mut self, x: ::std::os::raw::c_float, y: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_translate1(self as *mut crate::QMatrix4X4, x, y)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::translate(float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#translate-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies this matrix by another that translates coordinates by the components <i>x</i>, <i>y</i>, and <i>z</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#scale">scale</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#rotate">rotate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn translate_3a(
        &mut self,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_translate2(self as *mut crate::QMatrix4X4, x, y, z)
    }

    /// <p>Returns this matrix, transposed about its diagonal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 QMatrix4x4::transposed() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#transposed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns this matrix, transposed about its diagonal.</p></div>
    #[inline(always)]
    pub unsafe fn transposed(&self) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_transposed(self as *const crate::QMatrix4X4);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::viewport(const QRectF& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#viewport-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets up viewport transform for viewport bounded by <i>rect</i> and with near and far set to 0 and 1 respectively.</p></div>
    #[inline(always)]
    pub unsafe fn viewport_1a(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_viewport(
            self as *mut crate::QMatrix4X4,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>Multiplies this matrix by another that performs the scale and bias transformation used by OpenGL to transform from normalized device coordinates (NDC) to viewport (window) coordinates. That is it maps points from the cube ranging over [-1, 1] in each dimension to the viewport with it's near-lower-left corner at (<i>left</i>, <i>bottom</i>, <i>nearPlane</i>) and with size (<i>width</i>, <i>height</i>, <i>farPlane</i> - <i>nearPlane</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::viewport(float left, float bottom, float width, float height, float nearPlane = …, float farPlane = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#viewport">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by another that performs the scale and bias transformation used by OpenGL to transform from normalized device coordinates (NDC) to viewport (window) coordinates. That is it maps points from the cube ranging over [-1, 1] in each dimension to the viewport with it's near-lower-left corner at (<i>left</i>, <i>bottom</i>, <i>nearPlane</i>) and with size (<i>width</i>, <i>height</i>, <i>farPlane</i> - <i>nearPlane</i>).</p>
    /// <p>This matches the transform used by the fixed function OpenGL viewport transform controlled by the functions glViewport() and glDepthRange().</p></div>
    #[inline(always)]
    pub unsafe fn viewport_6a(
        &mut self,
        left: ::std::os::raw::c_float,
        bottom: ::std::os::raw::c_float,
        width: ::std::os::raw::c_float,
        height: ::std::os::raw::c_float,
        near_plane: ::std::os::raw::c_float,
        far_plane: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_viewport1(
            self as *mut crate::QMatrix4X4,
            left,
            bottom,
            width,
            height,
            near_plane,
            far_plane,
        )
    }

    /// <p>Multiplies this matrix by another that performs the scale and bias transformation used by OpenGL to transform from normalized device coordinates (NDC) to viewport (window) coordinates. That is it maps points from the cube ranging over [-1, 1] in each dimension to the viewport with it's near-lower-left corner at (<i>left</i>, <i>bottom</i>, <i>nearPlane</i>) and with size (<i>width</i>, <i>height</i>, <i>farPlane</i> - <i>nearPlane</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::viewport(float left, float bottom, float width, float height, float nearPlane = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#viewport">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by another that performs the scale and bias transformation used by OpenGL to transform from normalized device coordinates (NDC) to viewport (window) coordinates. That is it maps points from the cube ranging over [-1, 1] in each dimension to the viewport with it's near-lower-left corner at (<i>left</i>, <i>bottom</i>, <i>nearPlane</i>) and with size (<i>width</i>, <i>height</i>, <i>farPlane</i> - <i>nearPlane</i>).</p>
    /// <p>This matches the transform used by the fixed function OpenGL viewport transform controlled by the functions glViewport() and glDepthRange().</p></div>
    #[inline(always)]
    pub unsafe fn viewport_5a(
        &mut self,
        left: ::std::os::raw::c_float,
        bottom: ::std::os::raw::c_float,
        width: ::std::os::raw::c_float,
        height: ::std::os::raw::c_float,
        near_plane: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_viewport2(
            self as *mut crate::QMatrix4X4,
            left,
            bottom,
            width,
            height,
            near_plane,
        )
    }

    /// <p>Multiplies this matrix by another that performs the scale and bias transformation used by OpenGL to transform from normalized device coordinates (NDC) to viewport (window) coordinates. That is it maps points from the cube ranging over [-1, 1] in each dimension to the viewport with it's near-lower-left corner at (<i>left</i>, <i>bottom</i>, <i>nearPlane</i>) and with size (<i>width</i>, <i>height</i>, <i>farPlane</i> - <i>nearPlane</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMatrix4x4::viewport(float left, float bottom, float width, float height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#viewport">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this matrix by another that performs the scale and bias transformation used by OpenGL to transform from normalized device coordinates (NDC) to viewport (window) coordinates. That is it maps points from the cube ranging over [-1, 1] in each dimension to the viewport with it's near-lower-left corner at (<i>left</i>, <i>bottom</i>, <i>nearPlane</i>) and with size (<i>width</i>, <i>height</i>, <i>farPlane</i> - <i>nearPlane</i>).</p>
    /// <p>This matches the transform used by the fixed function OpenGL viewport transform controlled by the functions glViewport() and glDepthRange().</p></div>
    #[inline(always)]
    pub unsafe fn viewport_4a(
        &mut self,
        left: ::std::os::raw::c_float,
        bottom: ::std::os::raw::c_float,
        width: ::std::os::raw::c_float,
        height: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_viewport3(
            self as *mut crate::QMatrix4X4,
            left,
            bottom,
            width,
            height,
        )
    }
}

pub mod q_movie {
    //! C++ type: <span style='color: green;'>```QMovie```</span>

    /// <p>This enum describes the different states of <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QMovie::MovieState```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different states of <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct MovieState(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for MovieState {
        fn from(value: ::std::os::raw::c_int) -> Self {
            MovieState(value)
        }
    }

    impl From<MovieState> for ::std::os::raw::c_int {
        fn from(value: MovieState) -> Self {
            value.0
        }
    }

    impl MovieState {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl MovieState {
        /// The movie is not running. This is <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>'s initial state, and the state it enters after <a href="http://doc.qt.io/qt-5/qmovie.html#stop">stop</a>() has been called or the movie is finished. (C++ enum variant: <span style='color: green;'>```NotRunning = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NotRunning: crate::q_movie::MovieState = crate::q_movie::MovieState(0);
        /// The movie is paused, and <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> stops emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>(). This state is entered after calling pause() or <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>(true). The current frame number it kept, and the movie will continue with the next frame when unpause() or <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>(false) is called. (C++ enum variant: <span style='color: green;'>```Paused = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Paused: crate::q_movie::MovieState = crate::q_movie::MovieState(1);
        /// The movie is running. (C++ enum variant: <span style='color: green;'>```Running = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Running: crate::q_movie::MovieState = crate::q_movie::MovieState(2);
    }

    /// <p>This enum describes the different cache modes of <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QMovie::CacheMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#CacheMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the different cache modes of <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CacheMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CacheMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CacheMode(value)
        }
    }

    impl From<CacheMode> for ::std::os::raw::c_int {
        fn from(value: CacheMode) -> Self {
            value.0
        }
    }

    impl CacheMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CacheMode {
        /// No frames are cached (the default). (C++ enum variant: <span style='color: green;'>```CacheNone = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const CacheNone: crate::q_movie::CacheMode = crate::q_movie::CacheMode(0);
        /// All frames are cached. (C++ enum variant: <span style='color: green;'>```CacheAll = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const CacheAll: crate::q_movie::CacheMode = crate::q_movie::CacheMode(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> class is a convenience class for playing movies with <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
///
/// C++ class: <span style='color: green;'>```QMovie```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qmovie.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> class is a convenience class for playing movies with <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
/// <p>This class is used to show simple animations without sound. If you want to display video and media content, use the <a href="http://doc.qt.io/qt-5/qtmultimedia-index.html">Qt Multimedia</a> multimedia framework instead.</p>
/// <p>First, create a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object by passing either the name of a file or a pointer to a <a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> containing an animated image format to <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>'s constructor. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#isValid">isValid</a>() to check if the image data is valid, before starting the movie. To start the movie, call <a href="http://doc.qt.io/qt-5/qmovie.html#start">start</a>(). <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state, and emit <a href="http://doc.qt.io/qt-5/qmovie.html#started">started</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(). To get the current state of the movie, call <a href="http://doc.qt.io/qt-5/qmovie.html#state">state</a>().</p>
/// <p>To display the movie in your application, you can pass your <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object to <a href="http://doc.qt.io/qt-5/qlabel.html#setMovie">QLabel::setMovie</a>(). Example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlabel.html">QLabel</a></span> label;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qmovie.html#QMovie">QMovie</a></span> <span class="operator">*</span>movie <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmovie.html#QMovie">QMovie</a></span>(<span class="string">"animations/fire.gif"</span>);
///
///   label<span class="operator">.</span>setMovie(movie);
///   movie<span class="operator">-</span><span class="operator">&gt;</span>start();
///
/// </pre>
/// <p>Whenever a new frame is available in the movie, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will emit <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>(). If the size of the frame changes, <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>() is emitted. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() to get a copy of the current frame. When the movie is done, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> emits <a href="http://doc.qt.io/qt-5/qmovie.html#finished">finished</a>(). If any error occurs during playback (i.e, the image file is corrupt), <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will emit <a href="http://doc.qt.io/qt-5/qmovie.html#error">error</a>().</p>
/// <p>You can control the speed of the movie playback by calling <a href="http://doc.qt.io/qt-5/qmovie.html#speed-prop">setSpeed</a>(), which takes the percentage of the original speed as an argument. Pause the movie by calling <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>(true). <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will then enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Paused</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(). If you call <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>(false), <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will reenter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state and start the movie again. To stop the movie, call <a href="http://doc.qt.io/qt-5/qmovie.html#stop">stop</a>().</p>
/// <p>Certain animation formats allow you to set the background color. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#setBackgroundColor">setBackgroundColor</a>() to set the color, or <a href="http://doc.qt.io/qt-5/qmovie.html#backgroundColor">backgroundColor</a>() to retrieve the current background color.</p>
/// <p><a href="http://doc.qt.io/qt-5/qmovie.html#currentFrameNumber">currentFrameNumber</a>() returns the sequence number of the current frame. The first frame in the animation has the sequence number 0. <a href="http://doc.qt.io/qt-5/qmovie.html#frameCount">frameCount</a>() returns the total number of frames in the animation, if the image format supports this. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#loopCount">loopCount</a>() to get the number of times the movie should loop before finishing. <a href="http://doc.qt.io/qt-5/qmovie.html#nextFrameDelay">nextFrameDelay</a>() returns the number of milliseconds the current frame should be displayed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> can be instructed to cache frames of an animation by calling <a href="http://doc.qt.io/qt-5/qmovie.html#cacheMode-prop">setCacheMode</a>().</p>
/// <p>Call <a href="http://doc.qt.io/qt-5/qmovie.html#supportedFormats">supportedFormats</a>() for a list of formats that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> supports.</p></div>
#[repr(C)]
pub struct QMovie {
    _unused: u8,
}
impl QMovie {
    /// <p>This signal is emitted after <a href="http://doc.qt.io/qt-5/qmovie.html#start">QMovie::start</a>() has been called, and <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> has entered <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">QMovie::Running</a> state.</p>
    ///
    /// Returns a built-in Qt signal `QMovie::started` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#started">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted after <a href="http://doc.qt.io/qt-5/qmovie.html#start">QMovie::start</a>() has been called, and <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> has entered <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">QMovie::Running</a> state.</p></div>
    #[inline(always)]
    pub fn started(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2started()\0"),
            )
        }
    }

    /// <p>This signal is emitted when the current frame has been resized to <i>size</i>. This effect is sometimes used in animations as an alternative to replacing the frame. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() to get a copy of the updated frame.</p>
    ///
    /// Returns a built-in Qt signal `QMovie::resized` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#resized">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the current frame has been resized to <i>size</i>. This effect is sometimes used in animations as an alternative to replacing the frame. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() to get a copy of the updated frame.</p></div>
    #[inline(always)]
    pub fn resized(&self) -> ::qt_core::Signal<(*const ::qt_core::QSize,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2resized(const QSize&)\0"),
            )
        }
    }

    /// <p>This signal is emitted when the rect <i>rect</i> in the current frame has been updated. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() to get a copy of the updated frame.</p>
    ///
    /// Returns a built-in Qt signal `QMovie::updated` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#updated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the rect <i>rect</i> in the current frame has been updated. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() to get a copy of the updated frame.</p></div>
    #[inline(always)]
    pub fn updated(&self) -> ::qt_core::Signal<(*const ::qt_core::QRect,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2updated(const QRect&)\0"),
            )
        }
    }

    /// <p>This signal is emitted every time the state of the movie changes. The new state is specified by <i>state</i>.</p>
    ///
    /// Returns a built-in Qt signal `QMovie::stateChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted every time the state of the movie changes. The new state is specified by <i>state</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#state">QMovie::state</a>().</p></div>
    #[inline(always)]
    pub fn state_changed(&self) -> ::qt_core::Signal<(crate::q_movie::MovieState,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2stateChanged(QMovie::MovieState)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted by <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> when the error <i>error</i> occurred during playback. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will stop the movie, and enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">QMovie::NotRunning</a> state.</p>
    ///
    /// Returns a built-in Qt signal `QMovie::error` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#error">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted by <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> when the error <i>error</i> occurred during playback. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will stop the movie, and enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">QMovie::NotRunning</a> state.</p></div>
    #[inline(always)]
    pub fn error(&self) -> ::qt_core::Signal<(crate::q_image_reader::ImageReaderError,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2error(QImageReader::ImageReaderError)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the movie has finished.</p>
    ///
    /// Returns a built-in Qt signal `QMovie::finished` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#finished">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the movie has finished.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#stop">QMovie::stop</a>().</p></div>
    #[inline(always)]
    pub fn finished(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2finished()\0"),
            )
        }
    }

    /// <p>This signal is emitted when the frame number has changed to <i>frameNumber</i>. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() to get a copy of the frame.</p>
    ///
    /// Returns a built-in Qt signal `QMovie::frameChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#frameChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the frame number has changed to <i>frameNumber</i>. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() to get a copy of the frame.</p>
    /// <p>This function was introduced in  Qt 4.1.</p></div>
    #[inline(always)]
    pub fn frame_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2frameChanged(int)\0"),
            )
        }
    }

    /// <p>Starts the movie. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state, and start emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>() as the movie progresses.</p>
    ///
    /// Returns a built-in Qt slot `QMovie::start` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#start">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts the movie. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state, and start emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>() as the movie progresses.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> is in the <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Paused</a> state, this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>(false). If <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> is already in the <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state, this function does nothing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#stop">stop</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>().</p></div>
    #[inline(always)]
    pub fn slot_start(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1start()\0"),
            )
        }
    }

    /// <p>Jumps to the next frame. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    ///
    /// Returns a built-in Qt slot `QMovie::jumpToNextFrame` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#jumpToNextFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Jumps to the next frame. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub fn slot_jump_to_next_frame(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1jumpToNextFrame()\0"),
            )
        }
    }

    /// <p>If <i>paused</i> is true, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Paused</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(Paused); otherwise it will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(Running).</p>
    ///
    /// Returns a built-in Qt slot `QMovie::setPaused` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>paused</i> is true, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Paused</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(Paused); otherwise it will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(Running).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#state">state</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_paused(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setPaused(bool)\0"),
            )
        }
    }

    /// <p>Stops the movie. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> enters <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">NotRunning</a> state, and stops emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>(). If <a href="http://doc.qt.io/qt-5/qmovie.html#start">start</a>() is called again, the movie will restart from the beginning.</p>
    ///
    /// Returns a built-in Qt slot `QMovie::stop` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#stop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Stops the movie. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> enters <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">NotRunning</a> state, and stops emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>(). If <a href="http://doc.qt.io/qt-5/qmovie.html#start">start</a>() is called again, the movie will restart from the beginning.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> is already in the <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">NotRunning</a> state, this function does nothing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#start">start</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>().</p></div>
    #[inline(always)]
    pub fn slot_stop(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1stop()\0"),
            )
        }
    }

    /// <p>This property holds the movie's speed</p>
    ///
    /// Returns a built-in Qt slot `QMovie::setSpeed` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#speed-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the movie's speed</p>
    /// <p>The speed is measured in percentage of the original movie speed. The default speed is 100%. Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qmovie.html#QMovie">QMovie</a></span> movie(<span class="string">"racecar.gif"</span>);
    ///   movie<span class="operator">.</span>setSpeed(<span class="number">200</span>); <span class="comment">// 2x speed</span>
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>speed</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSpeed</b></span>(int <i>percentSpeed</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_speed(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSpeed(int)\0"),
            )
        }
    }

    /// <p>Returns the background color of the movie. If no background color has been assigned, an invalid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QMovie::backgroundColor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#backgroundColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the background color of the movie. If no background color has been assigned, an invalid <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#setBackgroundColor">setBackgroundColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn background_color(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMovie_backgroundColor(self as *const crate::QMovie);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the movie's cache mode</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMovie::CacheMode QMovie::cacheMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#cacheMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the movie's cache mode</p>
    /// <p>Caching frames can be useful when the underlying animation format handler that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> relies on to decode the animation data does not support jumping to particular frames in the animation, or even "rewinding" the animation to the beginning (for looping). Furthermore, if the image data comes from a sequential device, it is not possible for the underlying animation handler to seek back to frames whose data has already been read (making looping altogether impossible).</p>
    /// <p>To aid in such situations, a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object can be instructed to cache the frames, at the added memory cost of keeping the frames in memory for the lifetime of the object.</p>
    /// <p>By default, this property is set to <a href="http://doc.qt.io/qt-5/qmovie.html#CacheMode-enum">CacheNone</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> CacheMode </td><td class="memItemRight bottomAlign"><span class="name"><b>cacheMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCacheMode</b></span>(CacheMode <i>mode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#CacheMode-enum">QMovie::CacheMode</a>.</p></div>
    #[inline(always)]
    pub unsafe fn cache_mode(&self) -> crate::q_movie::CacheMode {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_cacheMode(self as *const crate::QMovie)
    }

    /// <p>Returns the sequence number of the current frame. The number of the first frame in the movie is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMovie::currentFrameNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#currentFrameNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the sequence number of the current frame. The number of the first frame in the movie is 0.</p></div>
    #[inline(always)]
    pub unsafe fn current_frame_number(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_currentFrameNumber(self as *const crate::QMovie)
    }

    /// <p>Returns the current frame as a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QMovie::currentImage() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current frame as a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_image(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMovie_currentImage(self as *const crate::QMovie);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current frame as a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QMovie::currentPixmap() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current frame as a <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_pixmap(&self) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMovie_currentPixmap(self as *const crate::QMovie);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the device <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> reads image data from. If no device has currently been assigned, 0 is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIODevice* QMovie::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> reads image data from. If no device has currently been assigned, 0 is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#setDevice">setDevice</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#fileName">fileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device(&self) -> ::cpp_core::MutPtr<::qt_core::QIODevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_device(self as *const crate::QMovie);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the name of the file that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> reads image data from. If no file name has been assigned, or if the assigned device is not a file, an empty <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QMovie::fileName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#fileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the file that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> reads image data from. If no file name has been assigned, or if the assigned device is not a file, an empty <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#setFileName">setFileName</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#device">device</a>().</p></div>
    #[inline(always)]
    pub unsafe fn file_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_fileName(self as *const crate::QMovie);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the format that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> uses when decoding image data. If no format has been assigned, an empty QByteArray() is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QMovie::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> uses when decoding image data. If no format has been assigned, an empty QByteArray() is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_format(self as *const crate::QMovie);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of frames in the movie.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMovie::frameCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#frameCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of frames in the movie.</p>
    /// <p>Certain animation formats do not support this feature, in which case 0 is returned.</p></div>
    #[inline(always)]
    pub unsafe fn frame_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_frameCount(self as *const crate::QMovie)
    }

    /// <p>Returns the rect of the last frame. If no frame has yet been updated, an invalid <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QMovie::frameRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#frameRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the rect of the last frame. If no frame has yet been updated, an invalid <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn frame_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMovie_frameRect(self as *const crate::QMovie);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the movie is valid (e.g., the image data is readable and the image format is supported); otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QMovie::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the movie is valid (e.g., the image data is readable and the image format is supported); otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_isValid(self as *const crate::QMovie)
    }

    /// <p>Jumps to frame number <i>frameNumber</i>. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QMovie::jumpToFrame(int frameNumber)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#jumpToFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Jumps to frame number <i>frameNumber</i>. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn jump_to_frame(&mut self, frame_number: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_jumpToFrame(self as *mut crate::QMovie, frame_number)
    }

    /// <p>Jumps to the next frame. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] bool QMovie::jumpToNextFrame()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#jumpToNextFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Jumps to the next frame. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn jump_to_next_frame(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_jumpToNextFrame(self as *mut crate::QMovie)
    }

    /// <p>Returns the most recent error that occurred while attempting to read image data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImageReader::ImageReaderError QMovie::lastError() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#lastError">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the most recent error that occurred while attempting to read image data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#lastErrorString">lastErrorString</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn last_error(&self) -> crate::q_image_reader::ImageReaderError {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_lastError(self as *const crate::QMovie)
    }

    /// <p>Returns a human-readable representation of the most recent error that occurred while attempting to read image data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QMovie::lastErrorString() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#lastErrorString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a human-readable representation of the most recent error that occurred while attempting to read image data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#lastError">lastError</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn last_error_string(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMovie_lastErrorString(self as *const crate::QMovie);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of times the movie will loop before it finishes. If the movie will only play once (no looping), loopCount returns 0. If the movie loops forever, loopCount returns -1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMovie::loopCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#loopCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of times the movie will loop before it finishes. If the movie will only play once (no looping), loopCount returns 0. If the movie loops forever, loopCount returns -1.</p>
    /// <p>Note that, if the image data comes from a sequential device (e.g. a socket), <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> can only loop the movie if the <a href="http://doc.qt.io/qt-5/qmovie.html#cacheMode-prop">cacheMode</a> is set to <a href="http://doc.qt.io/qt-5/qmovie.html#CacheMode-enum">QMovie::CacheAll</a>.</p></div>
    #[inline(always)]
    pub unsafe fn loop_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_loopCount(self as *const crate::QMovie)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QMovie::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMovie_metaObject(self as *const crate::QMovie);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object, passing the <i>parent</i> object to <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>'s constructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMovie::QMovie(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#QMovie">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object, passing the <i>parent</i> object to <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>'s constructor.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#setFileName">setFileName</a>(), <a href="http://doc.qt.io/qt-5/qmovie.html#setDevice">setDevice</a>(), and <a href="http://doc.qt.io/qt-5/qmovie.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_QMovie(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>device</i>, which it assumes is open and readable. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMovie::QMovie(QIODevice* device, const QByteArray& format = …, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#QMovie-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>device</i>, which it assumes is open and readable. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    /// <p>The <i>parent</i> object is passed to <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>'s constructor.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device_q_byte_array_q_object(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_QMovie1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>fileName</i>. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMovie::QMovie(const QString& fileName, const QByteArray& format = …, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#QMovie-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>fileName</i>. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    /// <p>The <i>parent</i> object is passed to <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>'s constructor.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_byte_array_q_object(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_QMovie2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> class is a convenience class for playing movies with <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMovie::QMovie()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> class is a convenience class for playing movies with <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a>.</p>
    /// <p>This class is used to show simple animations without sound. If you want to display video and media content, use the <a href="http://doc.qt.io/qt-5/qtmultimedia-index.html">Qt Multimedia</a> multimedia framework instead.</p>
    /// <p>First, create a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object by passing either the name of a file or a pointer to a <a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> containing an animated image format to <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>'s constructor. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#isValid">isValid</a>() to check if the image data is valid, before starting the movie. To start the movie, call <a href="http://doc.qt.io/qt-5/qmovie.html#start">start</a>(). <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state, and emit <a href="http://doc.qt.io/qt-5/qmovie.html#started">started</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(). To get the current state of the movie, call <a href="http://doc.qt.io/qt-5/qmovie.html#state">state</a>().</p>
    /// <p>To display the movie in your application, you can pass your <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object to <a href="http://doc.qt.io/qt-5/qlabel.html#setMovie">QLabel::setMovie</a>(). Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlabel.html">QLabel</a></span> label;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qmovie.html#QMovie">QMovie</a></span> <span class="operator">*</span>movie <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmovie.html#QMovie">QMovie</a></span>(<span class="string">"animations/fire.gif"</span>);
    ///
    ///   label<span class="operator">.</span>setMovie(movie);
    ///   movie<span class="operator">-</span><span class="operator">&gt;</span>start();
    ///
    /// </pre>
    /// <p>Whenever a new frame is available in the movie, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will emit <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>(). If the size of the frame changes, <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>() is emitted. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#currentImage">currentImage</a>() or <a href="http://doc.qt.io/qt-5/qmovie.html#currentPixmap">currentPixmap</a>() to get a copy of the current frame. When the movie is done, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> emits <a href="http://doc.qt.io/qt-5/qmovie.html#finished">finished</a>(). If any error occurs during playback (i.e, the image file is corrupt), <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will emit <a href="http://doc.qt.io/qt-5/qmovie.html#error">error</a>().</p>
    /// <p>You can control the speed of the movie playback by calling <a href="http://doc.qt.io/qt-5/qmovie.html#speed-prop">setSpeed</a>(), which takes the percentage of the original speed as an argument. Pause the movie by calling <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>(true). <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will then enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Paused</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(). If you call <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>(false), <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will reenter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state and start the movie again. To stop the movie, call <a href="http://doc.qt.io/qt-5/qmovie.html#stop">stop</a>().</p>
    /// <p>Certain animation formats allow you to set the background color. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#setBackgroundColor">setBackgroundColor</a>() to set the color, or <a href="http://doc.qt.io/qt-5/qmovie.html#backgroundColor">backgroundColor</a>() to retrieve the current background color.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qmovie.html#currentFrameNumber">currentFrameNumber</a>() returns the sequence number of the current frame. The first frame in the animation has the sequence number 0. <a href="http://doc.qt.io/qt-5/qmovie.html#frameCount">frameCount</a>() returns the total number of frames in the animation, if the image format supports this. You can call <a href="http://doc.qt.io/qt-5/qmovie.html#loopCount">loopCount</a>() to get the number of times the movie should loop before finishing. <a href="http://doc.qt.io/qt-5/qmovie.html#nextFrameDelay">nextFrameDelay</a>() returns the number of milliseconds the current frame should be displayed.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> can be instructed to cache frames of an animation by calling <a href="http://doc.qt.io/qt-5/qmovie.html#cacheMode-prop">setCacheMode</a>().</p>
    /// <p>Call <a href="http://doc.qt.io/qt-5/qmovie.html#supportedFormats">supportedFormats</a>() for a list of formats that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> supports.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_QMovie3();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>device</i>, which it assumes is open and readable. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMovie::QMovie(QIODevice* device, const QByteArray& format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#QMovie-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>device</i>, which it assumes is open and readable. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    /// <p>The <i>parent</i> object is passed to <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>'s constructor.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device_q_byte_array(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_QMovie4(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>device</i>, which it assumes is open and readable. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMovie::QMovie(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#QMovie-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>device</i>, which it assumes is open and readable. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    /// <p>The <i>parent</i> object is passed to <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>'s constructor.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> ::cpp_core::CppBox<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_QMovie5(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>fileName</i>. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMovie::QMovie(const QString& fileName, const QByteArray& format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#QMovie-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>fileName</i>. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    /// <p>The <i>parent</i> object is passed to <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>'s constructor.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_byte_array(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_QMovie6(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>fileName</i>. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QMovie::QMovie(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#QMovie-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use read image data from <i>fileName</i>. If <i>format</i> is not empty, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use the image format <i>format</i> for decoding the image data. Otherwise, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format.</p>
    /// <p>The <i>parent</i> object is passed to <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a>'s constructor.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_QMovie7(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of milliseconds <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will wait before updating the next frame in the animation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMovie::nextFrameDelay() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#nextFrameDelay">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of milliseconds <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will wait before updating the next frame in the animation.</p></div>
    #[inline(always)]
    pub unsafe fn next_frame_delay(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_nextFrameDelay(self as *const crate::QMovie)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QMovie::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_qt_metacall(
            self as *mut crate::QMovie,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QMovie::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_qt_metacast(
            self as *mut crate::QMovie,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the scaled size of frames.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QMovie::scaledSize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#scaledSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the scaled size of frames.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#setScaledSize">setScaledSize</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#scaledSize">QImageReader::scaledSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn scaled_size(&mut self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_scaledSize(self as *mut crate::QMovie);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>For image formats that support it, this function sets the background color to <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMovie::setBackgroundColor(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#setBackgroundColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For image formats that support it, this function sets the background color to <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#backgroundColor">backgroundColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_background_color(
        &mut self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_setBackgroundColor(
            self as *mut crate::QMovie,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>This property holds the movie's cache mode</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMovie::setCacheMode(QMovie::CacheMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#cacheMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the movie's cache mode</p>
    /// <p>Caching frames can be useful when the underlying animation format handler that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> relies on to decode the animation data does not support jumping to particular frames in the animation, or even "rewinding" the animation to the beginning (for looping). Furthermore, if the image data comes from a sequential device, it is not possible for the underlying animation handler to seek back to frames whose data has already been read (making looping altogether impossible).</p>
    /// <p>To aid in such situations, a <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object can be instructed to cache the frames, at the added memory cost of keeping the frames in memory for the lifetime of the object.</p>
    /// <p>By default, this property is set to <a href="http://doc.qt.io/qt-5/qmovie.html#CacheMode-enum">CacheNone</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> CacheMode </td><td class="memItemRight bottomAlign"><span class="name"><b>cacheMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCacheMode</b></span>(CacheMode <i>mode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#CacheMode-enum">QMovie::CacheMode</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_cache_mode(&mut self, mode: crate::q_movie::CacheMode) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_setCacheMode(self as *mut crate::QMovie, mode)
    }

    /// <p>Sets the current device to <i>device</i>. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will read image data from this device when the movie is running.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMovie::setDevice(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#setDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the current device to <i>device</i>. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will read image data from this device when the movie is running.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#device">device</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_device(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_setDevice(
            self as *mut crate::QMovie,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the name of the file that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> reads image data from, to <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMovie::setFileName(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#setFileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the name of the file that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> reads image data from, to <i>fileName</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#fileName">fileName</a>(), <a href="http://doc.qt.io/qt-5/qmovie.html#setDevice">setDevice</a>(), and <a href="http://doc.qt.io/qt-5/qmovie.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_file_name(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_setFileName(
            self as *mut crate::QMovie,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the format that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use when decoding image data, to <i>format</i>. By default, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format of the image data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMovie::setFormat(const QByteArray& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format that <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will use when decoding image data, to <i>format</i>. By default, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will attempt to guess the format of the image data.</p>
    /// <p>You can call <a href="http://doc.qt.io/qt-5/qmovie.html#supportedFormats">supportedFormats</a>() for the full list of formats <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> supports.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#format">format</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_setFormat(
            self as *mut crate::QMovie,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>If <i>paused</i> is true, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Paused</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(Paused); otherwise it will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(Running).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QMovie::setPaused(bool paused)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>paused</i> is true, <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Paused</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(Paused); otherwise it will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state and emit <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>(Running).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#state">state</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_paused(&mut self, paused: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_setPaused(self as *mut crate::QMovie, paused)
    }

    /// <p>Sets the scaled frame size to <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QMovie::setScaledSize(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#setScaledSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the scaled frame size to <i>size</i>.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#scaledSize">scaledSize</a>() and <a href="http://doc.qt.io/qt-5/qimagereader.html#setScaledSize">QImageReader::setScaledSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_scaled_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_setScaledSize(
            self as *mut crate::QMovie,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>This property holds the movie's speed</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QMovie::setSpeed(int percentSpeed)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#speed-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the movie's speed</p>
    /// <p>The speed is measured in percentage of the original movie speed. The default speed is 100%. Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qmovie.html#QMovie">QMovie</a></span> movie(<span class="string">"racecar.gif"</span>);
    ///   movie<span class="operator">.</span>setSpeed(<span class="number">200</span>); <span class="comment">// 2x speed</span>
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>speed</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSpeed</b></span>(int <i>percentSpeed</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_speed(&mut self, percent_speed: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_setSpeed(self as *mut crate::QMovie, percent_speed)
    }

    /// <p>This property holds the movie's speed</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QMovie::speed() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#speed-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the movie's speed</p>
    /// <p>The speed is measured in percentage of the original movie speed. The default speed is 100%. Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qmovie.html#QMovie">QMovie</a></span> movie(<span class="string">"racecar.gif"</span>);
    ///   movie<span class="operator">.</span>setSpeed(<span class="number">200</span>); <span class="comment">// 2x speed</span>
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>speed</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSpeed</b></span>(int <i>percentSpeed</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn speed(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_speed(self as *const crate::QMovie)
    }

    /// <p>Starts the movie. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state, and start emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>() as the movie progresses.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QMovie::start()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#start">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts the movie. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> will enter <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state, and start emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>() as the movie progresses.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> is in the <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Paused</a> state, this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>(false). If <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> is already in the <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">Running</a> state, this function does nothing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#stop">stop</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>().</p></div>
    #[inline(always)]
    pub unsafe fn start(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_start(self as *mut crate::QMovie)
    }

    /// <p>Returns the current state of <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMovie::MovieState QMovie::state() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#state">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current state of <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">MovieState</a> and <a href="http://doc.qt.io/qt-5/qmovie.html#stateChanged">stateChanged</a>().</p></div>
    #[inline(always)]
    pub unsafe fn state(&self) -> crate::q_movie::MovieState {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_state(self as *const crate::QMovie)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Stops the movie. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> enters <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">NotRunning</a> state, and stops emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>(). If <a href="http://doc.qt.io/qt-5/qmovie.html#start">start</a>() is called again, the movie will restart from the beginning.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QMovie::stop()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#stop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Stops the movie. <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> enters <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">NotRunning</a> state, and stops emitting <a href="http://doc.qt.io/qt-5/qmovie.html#updated">updated</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#resized">resized</a>(). If <a href="http://doc.qt.io/qt-5/qmovie.html#start">start</a>() is called again, the movie will restart from the beginning.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> is already in the <a href="http://doc.qt.io/qt-5/qmovie.html#MovieState-enum">NotRunning</a> state, this function does nothing.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmovie.html#start">start</a>() and <a href="http://doc.qt.io/qt-5/qmovie.html#setPaused">setPaused</a>().</p></div>
    #[inline(always)]
    pub unsafe fn stop(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_stop(self as *mut crate::QMovie)
    }

    /// <p>Returns the list of image formats supported by <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QMovie::supportedFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#supportedFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of image formats supported by <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a>.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimagereader.html#supportedImageFormats">QImageReader::supportedImageFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supported_formats() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_supportedFormats();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QMovie::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QMovie::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QMovie_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> class represents an offscreen surface in the underlying platform.</p>
///
/// C++ class: <span style='color: green;'>```QOffscreenSurface```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> class represents an offscreen surface in the underlying platform.</p>
/// <p><a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> is intended to be used with <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> to allow rendering with OpenGL in an arbitrary thread without the need to create a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>.</p>
/// <p>Even though the surface is typically renderable, the surface's pixels are not accessible. <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> should only be used to create OpenGL resources such as textures or framebuffer objects.</p>
/// <p>An application will typically use <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> to perform some time-consuming tasks in a separate thread in order to avoid stalling the main rendering thread. Resources created in the <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a>'s context can be shared with the main OpenGL context. Some common use cases are asynchronous texture uploads or rendering into a <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>.</p>
/// <p>How the offscreen surface is implemented depends on the underlying platform, but it will typically use a pixel buffer (pbuffer). If the platform doesn't implement or support offscreen surfaces, <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> will use an invisible <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> internally.</p>
/// <p><b>Note: </b>Due to the fact that <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> is backed by a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> on some platforms, cross-platform applications must ensure that <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>() is only called on the main (GUI) thread. The <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> is then safe to be used with <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent()</a> on other threads, but the initialization and destruction must always happen on the main (GUI) thread.</p><p><b>Note: </b>In order to create an offscreen surface that is guaranteed to be compatible with a given context and window, make sure to set the format to the context's or the window's actual format, that is, the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> returned from <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">QOpenGLContext::format</a>() or <a href="http://doc.qt.io/qt-5/qwindow.html#format">QWindow::format</a>() <i>after the context or window has been created</i>. Passing the format returned from <a href="http://doc.qt.io/qt-5/qwindow.html#requestedFormat">QWindow::requestedFormat</a>() to <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setFormat">setFormat</a>() may result in an incompatible offscreen surface since the underlying windowing system interface may offer a different set of configurations for window and pbuffer surfaces.</p><p><b>Note: </b>Some platforms may utilize a surfaceless context extension (for example EGL_KHR_surfaceless_context) when available. In this case there will be no underlying native surface. For the use cases of <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> (rendering to FBOs, texture upload) this is not a problem.</p></div>
#[repr(C)]
pub struct QOffscreenSurface {
    _unused: u8,
}
impl QOffscreenSurface {
    /// <p>This signal is emitted when an offscreen surface's <i>screen</i> changes, either by being set explicitly with <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setScreen">setScreen</a>(), or automatically when the window's screen is removed.</p>
    ///
    /// Returns a built-in Qt signal `QOffscreenSurface::screenChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#screenChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when an offscreen surface's <i>screen</i> changes, either by being set explicitly with <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setScreen">setScreen</a>(), or automatically when the window's screen is removed.</p></div>
    #[inline(always)]
    pub fn screen_changed(&self) -> ::qt_core::Signal<(*mut crate::QScreen,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2screenChanged(QScreen*)\0"),
            )
        }
    }

    /// Returns a built-in Qt slot `QOffscreenSurface::screenDestroyed` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn slot_screen_destroyed(&self) -> ::qt_core::Receiver<(*mut ::qt_core::QObject,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1screenDestroyed(QObject*)\0"),
            )
        }
    }

    /// <p>Allocates the platform resources associated with the offscreen surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOffscreenSurface::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Allocates the platform resources associated with the offscreen surface.</p>
    /// <p>It is at this point that the surface format set using <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setFormat">setFormat</a>() gets resolved into an actual native surface.</p>
    /// <p>Call <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#destroy">destroy</a>() to free the platform resources if necessary.</p>
    /// <p><b>Note: </b>Some platforms require this function to be called on the main (GUI) thread.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#destroy">destroy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_create(self as *mut crate::QOffscreenSurface)
    }

    /// <p>Releases the native platform resources associated with this offscreen surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOffscreenSurface::destroy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#destroy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases the native platform resources associated with this offscreen surface.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn destroy(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_destroy(
            self as *mut crate::QOffscreenSurface,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#format">QSurface::format</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSurfaceFormat QOffscreenSurface::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#format">QSurface::format</a>().</p>
    /// <p>Returns the actual format of this offscreen surface.</p>
    /// <p>After the offscreen surface has been created, this function will return the actual surface format of the surface. It might differ from the requested format if the requested format could not be fulfilled by the platform.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setFormat">setFormat</a>(), <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>(), and <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#requestedFormat">requestedFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_format(
            self as *const crate::QOffscreenSurface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this offscreen surface is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOffscreenSurface::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this offscreen surface is valid; otherwise returns <code>false</code>.</p>
    /// <p>The offscreen surface is valid if the platform resources have been successfuly allocated.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_isValid(
            self as *const crate::QOffscreenSurface,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOffscreenSurface::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_metaObject(
            self as *const crate::QOffscreenSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns an optional native handle to which the offscreen surface is connected.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void* QOffscreenSurface::nativeHandle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#nativeHandle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an optional native handle to which the offscreen surface is connected.</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setNativeHandle">setNativeHandle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn native_handle(&self) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_nativeHandle(
            self as *const crate::QOffscreenSurface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Creates an offscreen surface for the <i>targetScreen</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOffscreenSurface::QOffscreenSurface(QScreen* screen = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#QOffscreenSurface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates an offscreen surface for the <i>targetScreen</i>.</p>
    /// <p>The underlying platform surface is not created until <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>() is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setScreen">setScreen</a>() and <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
    ) -> ::cpp_core::CppBox<crate::QOffscreenSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_QOffscreenSurface(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> class represents an offscreen surface in the underlying platform.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOffscreenSurface::QOffscreenSurface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> class represents an offscreen surface in the underlying platform.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> is intended to be used with <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> to allow rendering with OpenGL in an arbitrary thread without the need to create a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>.</p>
    /// <p>Even though the surface is typically renderable, the surface's pixels are not accessible. <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> should only be used to create OpenGL resources such as textures or framebuffer objects.</p>
    /// <p>An application will typically use <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> to perform some time-consuming tasks in a separate thread in order to avoid stalling the main rendering thread. Resources created in the <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a>'s context can be shared with the main OpenGL context. Some common use cases are asynchronous texture uploads or rendering into a <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>.</p>
    /// <p>How the offscreen surface is implemented depends on the underlying platform, but it will typically use a pixel buffer (pbuffer). If the platform doesn't implement or support offscreen surfaces, <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> will use an invisible <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> internally.</p>
    /// <p><b>Note: </b>Due to the fact that <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> is backed by a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> on some platforms, cross-platform applications must ensure that <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>() is only called on the main (GUI) thread. The <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> is then safe to be used with <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent()</a> on other threads, but the initialization and destruction must always happen on the main (GUI) thread.</p><p><b>Note: </b>In order to create an offscreen surface that is guaranteed to be compatible with a given context and window, make sure to set the format to the context's or the window's actual format, that is, the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> returned from <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">QOpenGLContext::format</a>() or <a href="http://doc.qt.io/qt-5/qwindow.html#format">QWindow::format</a>() <i>after the context or window has been created</i>. Passing the format returned from <a href="http://doc.qt.io/qt-5/qwindow.html#requestedFormat">QWindow::requestedFormat</a>() to <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setFormat">setFormat</a>() may result in an incompatible offscreen surface since the underlying windowing system interface may offer a different set of configurations for window and pbuffer surfaces.</p><p><b>Note: </b>Some platforms may utilize a surfaceless context extension (for example EGL_KHR_surfaceless_context) when available. In this case there will be no underlying native surface. For the use cases of <a href="http://doc.qt.io/qt-5/qoffscreensurface.html">QOffscreenSurface</a> (rendering to FBOs, texture upload) this is not a problem.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOffscreenSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_QOffscreenSurface1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates an offscreen surface for the <i>targetScreen</i> with the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOffscreenSurface::QOffscreenSurface(QScreen* screen, QObject* parent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#QOffscreenSurface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates an offscreen surface for the <i>targetScreen</i> with the given <i>parent</i>.</p>
    /// <p>The underlying platform surface is not created until <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>() is called.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setScreen">setScreen</a>() and <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_2a(
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QOffscreenSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_QOffscreenSurface4(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOffscreenSurface::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_qt_metacall(
            self as *mut crate::QOffscreenSurface,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOffscreenSurface::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_qt_metacast(
            self as *mut crate::QOffscreenSurface,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the requested surfaceformat of this offscreen surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat QOffscreenSurface::requestedFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#requestedFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the requested surfaceformat of this offscreen surface.</p>
    /// <p>If the requested format was not supported by the platform implementation, the requestedFormat will differ from the actual offscreen surface format.</p>
    /// <p>This is the value set with <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setFormat">setFormat</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setFormat">setFormat</a>() and <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn requested_format(&self) -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_requestedFormat(
            self as *const crate::QOffscreenSurface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the screen to which the offscreen surface is connected.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen* QOffscreenSurface::screen() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#screen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the screen to which the offscreen surface is connected.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setScreen">setScreen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn screen(&self) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_screen(
            self as *const crate::QOffscreenSurface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the offscreen surface <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOffscreenSurface::setFormat(const QSurfaceFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the offscreen surface <i>format</i>.</p>
    /// <p>The surface format will be resolved in the <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>() function. Calling this function after <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>() will not re-resolve the surface format of the native surface.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#format">format</a>(), <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>(), and <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#destroy">destroy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSurfaceFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_setFormat(
            self as *mut crate::QOffscreenSurface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSurfaceFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the native handle to which the offscreen surface is connected to <i>handle</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOffscreenSurface::setNativeHandle(void* handle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setNativeHandle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the native handle to which the offscreen surface is connected to <i>handle</i>.</p>
    /// <p>The native handle will be resolved in the <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>() function. Calling this function after <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#create">create</a>() will not re-create a native surface.</p>
    /// <p><b>Note: </b>The interpretation of the native handle is platform specific. Only some platforms will support adopting native handles of offscreen surfaces and platforms that do not implement this support will ignore the handle.</p><p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#nativeHandle">nativeHandle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_native_handle(
        &mut self,
        handle: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_setNativeHandle(
            self as *mut crate::QOffscreenSurface,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(handle)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the screen to which the offscreen surface is connected.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOffscreenSurface::setScreen(QScreen* screen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#setScreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the screen to which the offscreen surface is connected.</p>
    /// <p>If the offscreen surface has been created, it will be recreated on the <i>newScreen</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qoffscreensurface.html#screen">screen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_screen(
        &mut self,
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_setScreen(
            self as *mut crate::QOffscreenSurface,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#size">QSurface::size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSize QOffscreenSurface::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#size">QSurface::size</a>().</p>
    /// <p>Returns the size of the offscreen surface.</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_size(
            self as *const crate::QOffscreenSurface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#surfaceType">QSurface::surfaceType</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSurface::SurfaceType QOffscreenSurface::surfaceType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#surfaceType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#surfaceType">QSurface::surfaceType</a>().</p>
    /// <p>Returns the surface type of the offscreen surface.</p>
    /// <p>The surface type of an offscreen surface is always <a href="http://doc.qt.io/qt-5/qsurface.html#SurfaceType-enum">QSurface::OpenGLSurface</a>.</p></div>
    #[inline(always)]
    pub unsafe fn surface_type(&self) -> crate::q_surface::SurfaceType {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_surfaceType(
            self as *const crate::QOffscreenSurface,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOffscreenSurface::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOffscreenSurface::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_opengl_buffer {
    //! C++ type: <span style='color: green;'>```QOpenGLBuffer```</span>

    /// <p>This enum defines the type of OpenGL buffer object to create with <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLBuffer::Type```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#Type-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the type of OpenGL buffer object to create with <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Type(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Type {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Type(value)
        }
    }

    impl From<Type> for ::std::os::raw::c_int {
        fn from(value: Type) -> Self {
            value.0
        }
    }

    impl Type {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Type {
        /// Vertex buffer object for use when specifying vertex arrays. (C++ enum variant: <span style='color: green;'>```VertexBuffer = 34962```</span>)
        #[allow(non_upper_case_globals)]
        pub const VertexBuffer: crate::q_opengl_buffer::Type = crate::q_opengl_buffer::Type(34962);
        /// Index buffer object for use with <code>glDrawElements()</code>. (C++ enum variant: <span style='color: green;'>```IndexBuffer = 34963```</span>)
        #[allow(non_upper_case_globals)]
        pub const IndexBuffer: crate::q_opengl_buffer::Type = crate::q_opengl_buffer::Type(34963);
        /// Pixel pack buffer object for reading pixel data from the OpenGL server (for example, with <code>glReadPixels()</code>). Not supported under OpenGL/ES. (C++ enum variant: <span style='color: green;'>```PixelPackBuffer = 35051```</span>)
        #[allow(non_upper_case_globals)]
        pub const PixelPackBuffer: crate::q_opengl_buffer::Type =
            crate::q_opengl_buffer::Type(35051);
        /// Pixel unpack buffer object for writing pixel data to the OpenGL server (for example, with <code>glTexImage2D()</code>). Not supported under OpenGL/ES. (C++ enum variant: <span style='color: green;'>```PixelUnpackBuffer = 35052```</span>)
        #[allow(non_upper_case_globals)]
        pub const PixelUnpackBuffer: crate::q_opengl_buffer::Type =
            crate::q_opengl_buffer::Type(35052);
    }

    /// <p>This enum defines the usage pattern of a <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> object.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLBuffer::UsagePattern```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#UsagePattern-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the usage pattern of a <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> object.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct UsagePattern(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for UsagePattern {
        fn from(value: ::std::os::raw::c_int) -> Self {
            UsagePattern(value)
        }
    }

    impl From<UsagePattern> for ::std::os::raw::c_int {
        fn from(value: UsagePattern) -> Self {
            value.0
        }
    }

    impl UsagePattern {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl UsagePattern {
        /// The data will be set once and used a few times for drawing operations. Under OpenGL/ES 1.1 this is identical to StaticDraw. (C++ enum variant: <span style='color: green;'>```StreamDraw = 35040```</span>)
        #[allow(non_upper_case_globals)]
        pub const StreamDraw: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35040);
        /// The data will be set once and used a few times for reading data back from the OpenGL server. Not supported under OpenGL/ES. (C++ enum variant: <span style='color: green;'>```StreamRead = 35041```</span>)
        #[allow(non_upper_case_globals)]
        pub const StreamRead: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35041);
        /// The data will be set once and used a few times for reading data back from the OpenGL server for use in further drawing operations. Not supported under OpenGL/ES. (C++ enum variant: <span style='color: green;'>```StreamCopy = 35042```</span>)
        #[allow(non_upper_case_globals)]
        pub const StreamCopy: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35042);
        /// The data will be set once and used many times for drawing operations. (C++ enum variant: <span style='color: green;'>```StaticDraw = 35044```</span>)
        #[allow(non_upper_case_globals)]
        pub const StaticDraw: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35044);
        /// The data will be set once and used many times for reading data back from the OpenGL server. Not supported under OpenGL/ES. (C++ enum variant: <span style='color: green;'>```StaticRead = 35045```</span>)
        #[allow(non_upper_case_globals)]
        pub const StaticRead: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35045);
        /// The data will be set once and used many times for reading data back from the OpenGL server for use in further drawing operations. Not supported under OpenGL/ES. (C++ enum variant: <span style='color: green;'>```StaticCopy = 35046```</span>)
        #[allow(non_upper_case_globals)]
        pub const StaticCopy: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35046);
        /// The data will be modified repeatedly and used many times for drawing operations. (C++ enum variant: <span style='color: green;'>```DynamicDraw = 35048```</span>)
        #[allow(non_upper_case_globals)]
        pub const DynamicDraw: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35048);
        /// The data will be modified repeatedly and used many times for reading data back from the OpenGL server. Not supported under OpenGL/ES. (C++ enum variant: <span style='color: green;'>```DynamicRead = 35049```</span>)
        #[allow(non_upper_case_globals)]
        pub const DynamicRead: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35049);
        /// The data will be modified repeatedly and used many times for reading data back from the OpenGL server for use in further drawing operations. Not supported under OpenGL/ES. (C++ enum variant: <span style='color: green;'>```DynamicCopy = 35050```</span>)
        #[allow(non_upper_case_globals)]
        pub const DynamicCopy: crate::q_opengl_buffer::UsagePattern =
            crate::q_opengl_buffer::UsagePattern(35050);
    }

    /// <p>This enum defines the access mode for <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#map">QOpenGLBuffer::map</a>().</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLBuffer::Access```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#Access-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the access mode for <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#map">QOpenGLBuffer::map</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Access(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Access {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Access(value)
        }
    }

    impl From<Access> for ::std::os::raw::c_int {
        fn from(value: Access) -> Self {
            value.0
        }
    }

    impl Access {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Access {
        /// The buffer will be mapped for reading only. (C++ enum variant: <span style='color: green;'>```ReadOnly = 35000```</span>)
        #[allow(non_upper_case_globals)]
        pub const ReadOnly: crate::q_opengl_buffer::Access = crate::q_opengl_buffer::Access(35000);
        /// The buffer will be mapped for writing only. (C++ enum variant: <span style='color: green;'>```WriteOnly = 35001```</span>)
        #[allow(non_upper_case_globals)]
        pub const WriteOnly: crate::q_opengl_buffer::Access = crate::q_opengl_buffer::Access(35001);
        /// The buffer will be mapped for reading and writing. (C++ enum variant: <span style='color: green;'>```ReadWrite = 35002```</span>)
        #[allow(non_upper_case_globals)]
        pub const ReadWrite: crate::q_opengl_buffer::Access = crate::q_opengl_buffer::Access(35002);
    }

    /// <p>This enum defines the access mode bits for <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#mapRange">QOpenGLBuffer::mapRange</a>().</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLBuffer::RangeAccessFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#RangeAccessFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the access mode bits for <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#mapRange">QOpenGLBuffer::mapRange</a>().</p>
    ///
    /// <p>The RangeAccessFlags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;RangeAccessFlag&gt;. It stores an OR combination of RangeAccessFlag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RangeAccessFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RangeAccessFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RangeAccessFlag(value)
        }
    }

    impl From<RangeAccessFlag> for ::std::os::raw::c_int {
        fn from(value: RangeAccessFlag) -> Self {
            value.0
        }
    }

    impl RangeAccessFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RangeAccessFlag {
        /// The buffer will be mapped for reading. (C++ enum variant: <span style='color: green;'>```RangeRead = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const RangeRead: crate::q_opengl_buffer::RangeAccessFlag =
            crate::q_opengl_buffer::RangeAccessFlag(1);
        /// The buffer will be mapped for writing. (C++ enum variant: <span style='color: green;'>```RangeWrite = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const RangeWrite: crate::q_opengl_buffer::RangeAccessFlag =
            crate::q_opengl_buffer::RangeAccessFlag(2);
        /// Discard the previous contents of the specified range. (C++ enum variant: <span style='color: green;'>```RangeInvalidate = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const RangeInvalidate: crate::q_opengl_buffer::RangeAccessFlag =
            crate::q_opengl_buffer::RangeAccessFlag(4);
        /// Discard the previous contents of the entire buffer. (C++ enum variant: <span style='color: green;'>```RangeInvalidateBuffer = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const RangeInvalidateBuffer: crate::q_opengl_buffer::RangeAccessFlag =
            crate::q_opengl_buffer::RangeAccessFlag(8);
        /// Indicates that modifications are to be flushed explicitly via <code>glFlushMappedBufferRange</code>. (C++ enum variant: <span style='color: green;'>```RangeFlushExplicit = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const RangeFlushExplicit: crate::q_opengl_buffer::RangeAccessFlag =
            crate::q_opengl_buffer::RangeAccessFlag(16);
        /// Indicates that pending operations should not be synchronized before returning from <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#mapRange">mapRange</a>(). (C++ enum variant: <span style='color: green;'>```RangeUnsynchronized = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const RangeUnsynchronized: crate::q_opengl_buffer::RangeAccessFlag =
            crate::q_opengl_buffer::RangeAccessFlag(32);
    }

    impl From<crate::q_opengl_buffer::RangeAccessFlag>
        for ::qt_core::QFlags<crate::q_opengl_buffer::RangeAccessFlag>
    {
        fn from(value: crate::q_opengl_buffer::RangeAccessFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_opengl_buffer::RangeAccessFlag>>> std::ops::BitOr<T>
        for crate::q_opengl_buffer::RangeAccessFlag
    {
        type Output = ::qt_core::QFlags<crate::q_opengl_buffer::RangeAccessFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_opengl_buffer::RangeAccessFlag> {
            Into::<::qt_core::QFlags<crate::q_opengl_buffer::RangeAccessFlag>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> class provides functions for creating and managing OpenGL buffer objects.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLBuffer```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> class provides functions for creating and managing OpenGL buffer objects.</p>
/// <p>Buffer objects are created in the OpenGL server so that the client application can avoid uploading vertices, indices, texture image data, etc every time they are needed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> objects can be copied around as a reference to the underlying OpenGL buffer object:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#QOpenGLBuffer">QOpenGLBuffer</a></span> buffer1(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#QOpenGLBuffer">QOpenGLBuffer</a></span><span class="operator">::</span>IndexBuffer);
///   buffer1<span class="operator">.</span>create();
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#QOpenGLBuffer">QOpenGLBuffer</a></span> buffer2 <span class="operator">=</span> buffer1;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> performs a shallow copy when objects are copied in this manner, but does not implement copy-on-write semantics. The original object will be affected whenever the copy is modified.</p></div>
#[repr(C)]
pub struct QOpenGLBuffer {
    _unused: u8,
}
impl QOpenGLBuffer {
    /// <p>Allocates <i>count</i> bytes of space to the buffer, initialized to the contents of <i>data</i>. Any previous contents will be removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLBuffer::allocate(const void* data, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#allocate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Allocates <i>count</i> bytes of space to the buffer, initialized to the contents of <i>data</i>. Any previous contents will be removed.</p>
    /// <p>It is assumed that <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() has been called on this buffer and that it has been bound to the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#read">read</a>(), and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#write">write</a>().</p></div>
    #[inline(always)]
    pub unsafe fn allocate_2a(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_allocate(
            self as *mut crate::QOpenGLBuffer,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLBuffer::allocate(int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#allocate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Allocates <i>count</i> bytes of space to the buffer. Any previous contents will be removed.</p>
    /// <p>It is assumed that <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() has been called on this buffer and that it has been bound to the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#write">write</a>().</p></div>
    #[inline(always)]
    pub unsafe fn allocate_1a(&mut self, count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_allocate1(
            self as *mut crate::QOpenGLBuffer,
            count,
        )
    }

    /// <p>Binds the buffer associated with this object to the current OpenGL context. Returns <code>false</code> if binding was not possible, usually because <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#type">type</a>() is not supported on this OpenGL implementation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLBuffer::bind()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds the buffer associated with this object to the current OpenGL context. Returns <code>false</code> if binding was not possible, usually because <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#type">type</a>() is not supported on this OpenGL implementation.</p>
    /// <p>The buffer must be bound to the same <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> current when <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() was called, or to another <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> that is sharing with it. Otherwise, false will be returned from this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#release">release</a>() and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_bind(self as *mut crate::QOpenGLBuffer)
    }

    /// <p>Returns the OpenGL identifier associated with this buffer; zero if the buffer has not been created.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLBuffer::bufferId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bufferId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the OpenGL identifier associated with this buffer; zero if the buffer has not been created.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#isCreated">isCreated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn buffer_id(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_bufferId(self as *const crate::QOpenGLBuffer)
    }

    /// <p>Assigns a shallow copy of <i>other</i> to this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLBuffer& QOpenGLBuffer::operator=(const QOpenGLBuffer& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns a shallow copy of <i>other</i> to this object.</p>
    /// <p>Note: <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> does not implement copy-on-write semantics, so <i>other</i> will be affected whenever the copy is modified.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLBuffer>>,
    ) -> ::cpp_core::MutRef<crate::QOpenGLBuffer> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_operator_(
            self as *mut crate::QOpenGLBuffer,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLBuffer>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Creates the buffer object in the OpenGL server. Returns <code>true</code> if the object was created; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLBuffer::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates the buffer object in the OpenGL server. Returns <code>true</code> if the object was created; false otherwise.</p>
    /// <p>This function must be called with a current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>. The buffer will be bound to and can only be used in that context (or any other context that is shared with it).</p>
    /// <p>This function will return false if the OpenGL implementation does not support buffers, or there is no current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#isCreated">isCreated</a>(), <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#allocate">allocate</a>(), <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#write">write</a>(), and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#destroy">destroy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_create(self as *mut crate::QOpenGLBuffer)
    }

    /// <p>Destroys this buffer object, including the storage being used in the OpenGL server. All references to the buffer will become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLBuffer::destroy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#destroy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys this buffer object, including the storage being used in the OpenGL server. All references to the buffer will become invalid.</p></div>
    #[inline(always)]
    pub unsafe fn destroy(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_destroy(self as *mut crate::QOpenGLBuffer)
    }

    /// <p>Returns <code>true</code> if this buffer has been created; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLBuffer::isCreated() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#isCreated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this buffer has been created; false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#destroy">destroy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_created(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_isCreated(self as *const crate::QOpenGLBuffer)
    }

    /// <p>Maps the contents of this buffer into the application's memory space and returns a pointer to it. Returns null if memory mapping is not possible. The <i>access</i> parameter indicates the type of access to be performed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void* QOpenGLBuffer::map(QOpenGLBuffer::Access access)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#map">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps the contents of this buffer into the application's memory space and returns a pointer to it. Returns null if memory mapping is not possible. The <i>access</i> parameter indicates the type of access to be performed.</p>
    /// <p>It is assumed that <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() has been called on this buffer and that it has been bound to the current context.</p>
    /// <p><b>Note: </b>This function is only supported under OpenGL ES 2.0 or earlier if the <code>GL_OES_mapbuffer</code> extension is present.</p><p><b>Note: </b>On OpenGL ES 3.0 and newer, or, in case if desktop OpenGL, if <code>GL_ARB_map_buffer_range</code> is supported, this function uses <code>glMapBufferRange</code> instead of <code>glMapBuffer</code>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#unmap">unmap</a>(), <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bind">bind</a>(), and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#mapRange">mapRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map(
        &mut self,
        access: crate::q_opengl_buffer::Access,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_map(
            self as *mut crate::QOpenGLBuffer,
            access,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Maps the range specified by <i>offset</i> and <i>count</i> of the contents of this buffer into the application's memory space and returns a pointer to it. Returns null if memory mapping is not possible. The <i>access</i> parameter specifies a combination of access flags.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void* QOpenGLBuffer::mapRange(int offset, int count, QFlags<QOpenGLBuffer::RangeAccessFlag> access)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#mapRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps the range specified by <i>offset</i> and <i>count</i> of the contents of this buffer into the application's memory space and returns a pointer to it. Returns null if memory mapping is not possible. The <i>access</i> parameter specifies a combination of access flags.</p>
    /// <p>It is assumed that <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() has been called on this buffer and that it has been bound to the current context.</p>
    /// <p><b>Note: </b>This function is not available on OpenGL ES 2.0 and earlier.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#unmap">unmap</a>(), <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>(), and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_range(
        &mut self,
        offset: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
        access: ::qt_core::QFlags<crate::q_opengl_buffer::RangeAccessFlag>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_mapRange(
            self as *mut crate::QOpenGLBuffer,
            offset,
            count,
            access.to_int(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Constructs a new buffer object of type <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#Type-enum">QOpenGLBuffer::VertexBuffer</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLBuffer::QOpenGLBuffer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#QOpenGLBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new buffer object of type <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#Type-enum">QOpenGLBuffer::VertexBuffer</a>.</p>
    /// <p>Note: this constructor just creates the <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> instance. The actual buffer object in the OpenGL server is not created until <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLBuffer> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_QOpenGLBuffer();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new buffer object of <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLBuffer::QOpenGLBuffer(QOpenGLBuffer::Type type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#QOpenGLBuffer-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new buffer object of <i>type</i>.</p>
    /// <p>Note: this constructor just creates the <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> instance. The actual buffer object in the OpenGL server is not created until <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() is called.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        type_: crate::q_opengl_buffer::Type,
    ) -> ::cpp_core::CppBox<crate::QOpenGLBuffer> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_QOpenGLBuffer1(type_);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a shallow copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLBuffer::QOpenGLBuffer(const QOpenGLBuffer& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#QOpenGLBuffer-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a shallow copy of <i>other</i>.</p>
    /// <p>Note: <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> does not implement copy-on-write semantics, so <i>other</i> will be affected whenever the copy is modified.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLBuffer>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLBuffer> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_QOpenGLBuffer2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLBuffer>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reads the <i>count</i> bytes in this buffer starting at <i>offset</i> into <i>data</i>. Returns <code>true</code> on success; false if reading from the buffer is not supported. Buffer reading is not supported under OpenGL/ES.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLBuffer::read(int offset, void* data, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#read">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reads the <i>count</i> bytes in this buffer starting at <i>offset</i> into <i>data</i>. Returns <code>true</code> on success; false if reading from the buffer is not supported. Buffer reading is not supported under OpenGL/ES.</p>
    /// <p>It is assumed that this buffer has been bound to the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#write">write</a>() and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn read(
        &mut self,
        offset: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        count: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_read(
            self as *mut crate::QOpenGLBuffer,
            offset,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            count,
        )
    }

    /// <p>Releases the buffer associated with this object from the current OpenGL context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLBuffer::release()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#release">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases the buffer associated with this object from the current OpenGL context.</p>
    /// <p>This function must be called with the same <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> current as when <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bind">bind</a>() was called on the buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn release_mut(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_release(self as *mut crate::QOpenGLBuffer)
    }

    /// <p>Releases the buffer associated with <i>type</i> in the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLBuffer::release(QOpenGLBuffer::Type type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#release-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases the buffer associated with <i>type</i> in the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p>This function is a direct call to <code>glBindBuffer(type, 0)</code> for use when the caller does not know which <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a> has been bound to the context but wants to make sure that it is released.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#QOpenGLBuffer">QOpenGLBuffer</a></span><span class="operator">::</span>release(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#QOpenGLBuffer">QOpenGLBuffer</a></span><span class="operator">::</span>VertexBuffer);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn release(type_: crate::q_opengl_buffer::Type) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_release1(type_)
    }

    /// <p>Sets the usage pattern for this buffer object to <i>value</i>. This function must be called before <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#allocate">allocate</a>() or <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#write">write</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLBuffer::setUsagePattern(QOpenGLBuffer::UsagePattern value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#setUsagePattern">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the usage pattern for this buffer object to <i>value</i>. This function must be called before <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#allocate">allocate</a>() or <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#write">write</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#usagePattern">usagePattern</a>(), <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#allocate">allocate</a>(), and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#write">write</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_usage_pattern(&mut self, value: crate::q_opengl_buffer::UsagePattern) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_setUsagePattern(
            self as *mut crate::QOpenGLBuffer,
            value,
        )
    }

    /// <p>Returns the size of the data in this buffer, for reading operations. Returns -1 if fetching the buffer size is not supported, or the buffer has not been created.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLBuffer::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the data in this buffer, for reading operations. Returns -1 if fetching the buffer size is not supported, or the buffer has not been created.</p>
    /// <p>It is assumed that this buffer has been bound to the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#isCreated">isCreated</a>() and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_size(self as *const crate::QOpenGLBuffer)
    }

    /// <p>Returns the type of buffer represented by this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLBuffer::Type QOpenGLBuffer::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of buffer represented by this object.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_opengl_buffer::Type {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_type(self as *const crate::QOpenGLBuffer)
    }

    /// <p>Unmaps the buffer after it was mapped into the application's memory space with a previous call to <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#map">map</a>(). Returns <code>true</code> if the unmap succeeded; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLBuffer::unmap()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#unmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unmaps the buffer after it was mapped into the application's memory space with a previous call to <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#map">map</a>(). Returns <code>true</code> if the unmap succeeded; false otherwise.</p>
    /// <p>It is assumed that this buffer has been bound to the current context, and that it was previously mapped with <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#map">map</a>().</p>
    /// <p><b>Note: </b>This function is only supported under OpenGL ES 2.0 and earlier if the <code>GL_OES_mapbuffer</code> extension is present.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#map">map</a>().</p></div>
    #[inline(always)]
    pub unsafe fn unmap(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_unmap(self as *mut crate::QOpenGLBuffer)
    }

    /// <p>Returns the usage pattern for this buffer object. The default value is <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#UsagePattern-enum">StaticDraw</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLBuffer::UsagePattern QOpenGLBuffer::usagePattern() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#usagePattern">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the usage pattern for this buffer object. The default value is <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#UsagePattern-enum">StaticDraw</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#setUsagePattern">setUsagePattern</a>().</p></div>
    #[inline(always)]
    pub unsafe fn usage_pattern(&self) -> crate::q_opengl_buffer::UsagePattern {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_usagePattern(self as *const crate::QOpenGLBuffer)
    }

    /// <p>Replaces the <i>count</i> bytes of this buffer starting at <i>offset</i> with the contents of <i>data</i>. Any other bytes in the buffer will be left unmodified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLBuffer::write(int offset, const void* data, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#write">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the <i>count</i> bytes of this buffer starting at <i>offset</i> with the contents of <i>data</i>. Any other bytes in the buffer will be left unmodified.</p>
    /// <p>It is assumed that <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>() has been called on this buffer and that it has been bound to the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#read">read</a>(), and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#allocate">allocate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn write(
        &mut self,
        offset: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_write(
            self as *mut crate::QOpenGLBuffer,
            offset,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            count,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> class is the base class of a family of classes that expose all functions for each OpenGL version and profile.</p>
///
/// C++ class: <span style='color: green;'>```QAbstractOpenGLFunctions```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> class is the base class of a family of classes that expose all functions for each OpenGL version and profile.</p>
/// <p>OpenGL implementations on different platforms are able to link to a variable number of OpenGL functions depending upon the OpenGL ABI on that platform. For example, on Microsoft Windows only functions up to those in OpenGL 1.1 can be linked to at build time. All other functions must be resolved at runtime. The traditional solution to this has been to use either <a href="http://doc.qt.io/qt-5/qopenglcontext.html#getProcAddress">QOpenGLContext::getProcAddress</a>() or <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>. The former is tedious and error prone and means dealing directly with function pointers. The latter only exposes those functions common to OpenGL ES 2 and desktop OpenGL. There is however much new OpenGL functionality that is useful when writing real world OpenGL applications.</p>
/// <p>Qt now provides a family of classes which all inherit from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> which expose every core OpenGL function by way of a corresponding member function. There is a class for every valid combination of OpenGL version and profile. Each class follows the naming convention:</p>
/// <pre class="cpp plain">
///
///   QOpenGLFunctions_&lt;MAJOR VERSION&gt;_&lt;MINOR VERSION&gt;[_PROFILE]
///
/// </pre>
/// <p>For OpenGL versions 1.0 through to 3.0 there are no profiles, leading to the classes:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-0.html">QOpenGLFunctions_1_0</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-1.html">QOpenGLFunctions_1_1</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-2.html">QOpenGLFunctions_1_2</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-3.html">QOpenGLFunctions_1_3</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-4.html">QOpenGLFunctions_1_4</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-5.html">QOpenGLFunctions_1_5</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-2-0.html">QOpenGLFunctions_2_0</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-2-1.html">QOpenGLFunctions_2_1</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-0.html">QOpenGLFunctions_3_0</a></li>
/// </ul>
/// <p>where each class inherits from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a>.</p>
/// <p>OpenGL version 3.1 removed many deprecated functions leading to a much simpler and generic API.</p>
/// <p>With OpenGL 3.2 the concept of profiles was introduced. Two profiles are currently defined for OpenGL: Core and Compatibility.</p>
/// <p>The Core profile does not include any of the functions that were removed in OpenGL 3.1. The Compatibility profile contains all functions in the Core profile of the same version plus all of the functions that were removed in OpenGL 3.1. In this way the Compatibility profile classes allow use of newer OpenGL functionality but also allows you to keep using your legacy OpenGL code. For new OpenGL code the Core profile should be preferred.</p>
/// <p>Please note that some vendors, notably Apple, do not implement the Compatibility profile. Therefore if you wish to target new OpenGL features on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> then you should ensure that you request a Core profile context via <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setProfile">QSurfaceFormat::setProfile</a>().</p>
/// <p>Qt provides classes for all version and Core and Compatibility profile combinations. The classes for OpenGL versions 3.1 through to 4.3 are:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-1.html">QOpenGLFunctions_3_1</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-core.html">QOpenGLFunctions_3_2_Core</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-compatibility.html">QOpenGLFunctions_3_2_Compatibility</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-3-core.html">QOpenGLFunctions_3_3_Core</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-3-compatibility.html">QOpenGLFunctions_3_3_Compatibility</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-0-core.html">QOpenGLFunctions_4_0_Core</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-0-compatibility.html">QOpenGLFunctions_4_0_Compatibility</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-1-core.html">QOpenGLFunctions_4_1_Core</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-1-compatibility.html">QOpenGLFunctions_4_1_Compatibility</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-2-core.html">QOpenGLFunctions_4_2_Core</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-2-compatibility.html">QOpenGLFunctions_4_2_Compatibility</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-3-core.html">QOpenGLFunctions_4_3_Core</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-3-compatibility.html">QOpenGLFunctions_4_3_Compatibility</a></li>
/// </ul>
/// <p>where each class inherits from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a>.</p>
/// <p>A pointer to an object of the class corresponding to the version and profile of OpenGL in use can be obtained from <a href="http://doc.qt.io/qt-5/qopenglcontext.html#versionFunctions-1">QOpenGLContext::versionFunctions</a>(). If obtained in this way, note that the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> retains ownership of the object. This is so that only one instance need be created.</p>
/// <p>Before calling any of the exposed OpenGL functions you must ensure that the object has resolved the function pointers to the OpenGL functions. This only needs to be done once per instance with initializeOpenGLFunctions(). Once initialized, the object can be used to call any OpenGL function for the corresponding version and profile. Note that initializeOpenGLFunctions() can fail in some circumstances so check the return value. Situations in which initialization can fail are if you have a functions object for a version or profile that contains functions that are not part of the context being used to resolve the function pointers.</p>
/// <p>If you exclusively use function objects then you will get compile time errors if you attempt to use a function not included in that version and profile. This is obviously a lot easier to debug than undefined behavior at run time.</p></div>
#[repr(C)]
pub struct QAbstractOpenGLFunctions {
    _unused: u8,
}
impl QAbstractOpenGLFunctions {
    /// <p>The <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> class is the base class of a family of classes that expose all functions for each OpenGL version and profile.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractOpenGLFunctions& QAbstractOpenGLFunctions::operator=(const QAbstractOpenGLFunctions& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> class is the base class of a family of classes that expose all functions for each OpenGL version and profile.</p>
    /// <p>OpenGL implementations on different platforms are able to link to a variable number of OpenGL functions depending upon the OpenGL ABI on that platform. For example, on Microsoft Windows only functions up to those in OpenGL 1.1 can be linked to at build time. All other functions must be resolved at runtime. The traditional solution to this has been to use either <a href="http://doc.qt.io/qt-5/qopenglcontext.html#getProcAddress">QOpenGLContext::getProcAddress</a>() or <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>. The former is tedious and error prone and means dealing directly with function pointers. The latter only exposes those functions common to OpenGL ES 2 and desktop OpenGL. There is however much new OpenGL functionality that is useful when writing real world OpenGL applications.</p>
    /// <p>Qt now provides a family of classes which all inherit from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> which expose every core OpenGL function by way of a corresponding member function. There is a class for every valid combination of OpenGL version and profile. Each class follows the naming convention:</p>
    /// <pre class="cpp plain">
    ///
    ///   QOpenGLFunctions_&lt;MAJOR VERSION&gt;_&lt;MINOR VERSION&gt;[_PROFILE]
    ///
    /// </pre>
    /// <p>For OpenGL versions 1.0 through to 3.0 there are no profiles, leading to the classes:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-0.html">QOpenGLFunctions_1_0</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-1.html">QOpenGLFunctions_1_1</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-2.html">QOpenGLFunctions_1_2</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-3.html">QOpenGLFunctions_1_3</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-4.html">QOpenGLFunctions_1_4</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-5.html">QOpenGLFunctions_1_5</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-2-0.html">QOpenGLFunctions_2_0</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-2-1.html">QOpenGLFunctions_2_1</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-0.html">QOpenGLFunctions_3_0</a></li>
    /// </ul>
    /// <p>where each class inherits from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a>.</p>
    /// <p>OpenGL version 3.1 removed many deprecated functions leading to a much simpler and generic API.</p>
    /// <p>With OpenGL 3.2 the concept of profiles was introduced. Two profiles are currently defined for OpenGL: Core and Compatibility.</p>
    /// <p>The Core profile does not include any of the functions that were removed in OpenGL 3.1. The Compatibility profile contains all functions in the Core profile of the same version plus all of the functions that were removed in OpenGL 3.1. In this way the Compatibility profile classes allow use of newer OpenGL functionality but also allows you to keep using your legacy OpenGL code. For new OpenGL code the Core profile should be preferred.</p>
    /// <p>Please note that some vendors, notably Apple, do not implement the Compatibility profile. Therefore if you wish to target new OpenGL features on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> then you should ensure that you request a Core profile context via <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setProfile">QSurfaceFormat::setProfile</a>().</p>
    /// <p>Qt provides classes for all version and Core and Compatibility profile combinations. The classes for OpenGL versions 3.1 through to 4.3 are:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-1.html">QOpenGLFunctions_3_1</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-core.html">QOpenGLFunctions_3_2_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-compatibility.html">QOpenGLFunctions_3_2_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-3-core.html">QOpenGLFunctions_3_3_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-3-compatibility.html">QOpenGLFunctions_3_3_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-0-core.html">QOpenGLFunctions_4_0_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-0-compatibility.html">QOpenGLFunctions_4_0_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-1-core.html">QOpenGLFunctions_4_1_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-1-compatibility.html">QOpenGLFunctions_4_1_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-2-core.html">QOpenGLFunctions_4_2_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-2-compatibility.html">QOpenGLFunctions_4_2_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-3-core.html">QOpenGLFunctions_4_3_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-3-compatibility.html">QOpenGLFunctions_4_3_Compatibility</a></li>
    /// </ul>
    /// <p>where each class inherits from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a>.</p>
    /// <p>A pointer to an object of the class corresponding to the version and profile of OpenGL in use can be obtained from <a href="http://doc.qt.io/qt-5/qopenglcontext.html#versionFunctions-1">QOpenGLContext::versionFunctions</a>(). If obtained in this way, note that the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> retains ownership of the object. This is so that only one instance need be created.</p>
    /// <p>Before calling any of the exposed OpenGL functions you must ensure that the object has resolved the function pointers to the OpenGL functions. This only needs to be done once per instance with initializeOpenGLFunctions(). Once initialized, the object can be used to call any OpenGL function for the corresponding version and profile. Note that initializeOpenGLFunctions() can fail in some circumstances so check the return value. Situations in which initialization can fail are if you have a functions object for a version or profile that contains functions that are not part of the context being used to resolve the function pointers.</p>
    /// <p>If you exclusively use function objects then you will get compile time errors if you attempt to use a function not included in that version and profile. This is obviously a lot easier to debug than undefined behavior at run time.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.9.7", cpp_lib_version="5.11.3", cpp_lib_version="5.12.2")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.9.7",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAbstractOpenGLFunctions>>,
    ) -> ::cpp_core::MutRef<crate::QAbstractOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractOpenGLFunctions_operator_(
            self as *mut crate::QAbstractOpenGLFunctions,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QAbstractOpenGLFunctions>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual bool QAbstractOpenGLFunctions::initializeOpenGLFunctions()```</span>.
    #[inline(always)]
    pub unsafe fn initialize_opengl_functions(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractOpenGLFunctions_initializeOpenGLFunctions(
            self as *mut crate::QAbstractOpenGLFunctions,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> class is the base class of a family of classes that expose all functions for each OpenGL version and profile.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QAbstractOpenGLFunctions::QAbstractOpenGLFunctions(const QAbstractOpenGLFunctions& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> class is the base class of a family of classes that expose all functions for each OpenGL version and profile.</p>
    /// <p>OpenGL implementations on different platforms are able to link to a variable number of OpenGL functions depending upon the OpenGL ABI on that platform. For example, on Microsoft Windows only functions up to those in OpenGL 1.1 can be linked to at build time. All other functions must be resolved at runtime. The traditional solution to this has been to use either <a href="http://doc.qt.io/qt-5/qopenglcontext.html#getProcAddress">QOpenGLContext::getProcAddress</a>() or <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>. The former is tedious and error prone and means dealing directly with function pointers. The latter only exposes those functions common to OpenGL ES 2 and desktop OpenGL. There is however much new OpenGL functionality that is useful when writing real world OpenGL applications.</p>
    /// <p>Qt now provides a family of classes which all inherit from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> which expose every core OpenGL function by way of a corresponding member function. There is a class for every valid combination of OpenGL version and profile. Each class follows the naming convention:</p>
    /// <pre class="cpp plain">
    ///
    ///   QOpenGLFunctions_&lt;MAJOR VERSION&gt;_&lt;MINOR VERSION&gt;[_PROFILE]
    ///
    /// </pre>
    /// <p>For OpenGL versions 1.0 through to 3.0 there are no profiles, leading to the classes:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-0.html">QOpenGLFunctions_1_0</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-1.html">QOpenGLFunctions_1_1</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-2.html">QOpenGLFunctions_1_2</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-3.html">QOpenGLFunctions_1_3</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-4.html">QOpenGLFunctions_1_4</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-1-5.html">QOpenGLFunctions_1_5</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-2-0.html">QOpenGLFunctions_2_0</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-2-1.html">QOpenGLFunctions_2_1</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-0.html">QOpenGLFunctions_3_0</a></li>
    /// </ul>
    /// <p>where each class inherits from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a>.</p>
    /// <p>OpenGL version 3.1 removed many deprecated functions leading to a much simpler and generic API.</p>
    /// <p>With OpenGL 3.2 the concept of profiles was introduced. Two profiles are currently defined for OpenGL: Core and Compatibility.</p>
    /// <p>The Core profile does not include any of the functions that were removed in OpenGL 3.1. The Compatibility profile contains all functions in the Core profile of the same version plus all of the functions that were removed in OpenGL 3.1. In this way the Compatibility profile classes allow use of newer OpenGL functionality but also allows you to keep using your legacy OpenGL code. For new OpenGL code the Core profile should be preferred.</p>
    /// <p>Please note that some vendors, notably Apple, do not implement the Compatibility profile. Therefore if you wish to target new OpenGL features on <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> then you should ensure that you request a Core profile context via <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setProfile">QSurfaceFormat::setProfile</a>().</p>
    /// <p>Qt provides classes for all version and Core and Compatibility profile combinations. The classes for OpenGL versions 3.1 through to 4.3 are:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-1.html">QOpenGLFunctions_3_1</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-core.html">QOpenGLFunctions_3_2_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-compatibility.html">QOpenGLFunctions_3_2_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-3-core.html">QOpenGLFunctions_3_3_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-3-3-compatibility.html">QOpenGLFunctions_3_3_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-0-core.html">QOpenGLFunctions_4_0_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-0-compatibility.html">QOpenGLFunctions_4_0_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-1-core.html">QOpenGLFunctions_4_1_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-1-compatibility.html">QOpenGLFunctions_4_1_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-2-core.html">QOpenGLFunctions_4_2_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-2-compatibility.html">QOpenGLFunctions_4_2_Compatibility</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-3-core.html">QOpenGLFunctions_4_3_Core</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglfunctions-4-3-compatibility.html">QOpenGLFunctions_4_3_Compatibility</a></li>
    /// </ul>
    /// <p>where each class inherits from <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a>.</p>
    /// <p>A pointer to an object of the class corresponding to the version and profile of OpenGL in use can be obtained from <a href="http://doc.qt.io/qt-5/qopenglcontext.html#versionFunctions-1">QOpenGLContext::versionFunctions</a>(). If obtained in this way, note that the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> retains ownership of the object. This is so that only one instance need be created.</p>
    /// <p>Before calling any of the exposed OpenGL functions you must ensure that the object has resolved the function pointers to the OpenGL functions. This only needs to be done once per instance with initializeOpenGLFunctions(). Once initialized, the object can be used to call any OpenGL function for the corresponding version and profile. Note that initializeOpenGLFunctions() can fail in some circumstances so check the return value. Situations in which initialization can fail are if you have a functions object for a version or profile that contains functions that are not part of the context being used to resolve the function pointers.</p>
    /// <p>If you exclusively use function objects then you will get compile time errors if you attempt to use a function not included in that version and profile. This is obviously a lot easier to debug than undefined behavior at run time.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.9.7", cpp_lib_version="5.11.3", cpp_lib_version="5.12.2")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.9.7",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QAbstractOpenGLFunctions>>,
    ) -> ::cpp_core::CppBox<crate::QAbstractOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QAbstractOpenGLFunctions_QAbstractOpenGLFunctions(::cpp_core::CastInto::<::cpp_core::Ref<crate::QAbstractOpenGLFunctions>>::cast_into(other).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> class represents the version and if applicable the profile of an OpenGL context.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLVersionProfile```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> class represents the version and if applicable the profile of an OpenGL context.</p>
/// <p>An object of this class can be passed to <a href="http://doc.qt.io/qt-5/qopenglcontext.html#versionFunctions-1">QOpenGLContext::versionFunctions</a>() to request a functions object for a specific version and profile of OpenGL.</p>
/// <p>It also contains some helper functions to check if a version supports profiles or is a legacy version.</p></div>
#[repr(C)]
pub struct QOpenGLVersionProfile {
    _unused: u8,
}
impl QOpenGLVersionProfile {
    /// <p>Assigns the version and profile of <i>rhs</i> to this <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLVersionProfile& QOpenGLVersionProfile::operator=(const QOpenGLVersionProfile& rhs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the version and profile of <i>rhs</i> to this <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        rhs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLVersionProfile>>,
    ) -> ::cpp_core::MutRef<crate::QOpenGLVersionProfile> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_operator_(
            self as *mut crate::QOpenGLVersionProfile,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLVersionProfile>>::cast_into(rhs)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if profiles are supported by the OpenGL version returned by <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#version">version</a>(). Only OpenGL versions &gt;= 3.2 support profiles.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLVersionProfile::hasProfiles() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#hasProfiles">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if profiles are supported by the OpenGL version returned by <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#version">version</a>(). Only OpenGL versions &gt;= 3.2 support profiles.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#profile">profile</a>() and <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#version">version</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_profiles(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_hasProfiles(
            self as *const crate::QOpenGLVersionProfile,
        )
    }

    /// <p>Returns <code>true</code> is the OpenGL version returned by <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#version">version</a>() contains deprecated functions and does not support profiles i.e. if the OpenGL version is &lt;= 3.1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLVersionProfile::isLegacyVersion() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#isLegacyVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> is the OpenGL version returned by <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#version">version</a>() contains deprecated functions and does not support profiles i.e. if the OpenGL version is &lt;= 3.1.</p></div>
    #[inline(always)]
    pub unsafe fn is_legacy_version(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_isLegacyVersion(
            self as *const crate::QOpenGLVersionProfile,
        )
    }

    /// <p>Returns <code>true</code> if the version number is valid. Note that for a default constructed <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object this function will return <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLVersionProfile::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the version number is valid. Note that for a default constructed <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object this function will return <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#setVersion">setVersion</a>() and <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#version">version</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_isValid(
            self as *const crate::QOpenGLVersionProfile,
        )
    }

    /// <p>Creates a default invalid <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLVersionProfile::QOpenGLVersionProfile()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#QOpenGLVersionProfile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a default invalid <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLVersionProfile> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_QOpenGLVersionProfile();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object initialised with the version and profile from <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLVersionProfile::QOpenGLVersionProfile(const QSurfaceFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#QOpenGLVersionProfile-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object initialised with the version and profile from <i>format</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSurfaceFormat>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLVersionProfile> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_QOpenGLVersionProfile1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSurfaceFormat>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLVersionProfile::QOpenGLVersionProfile(const QOpenGLVersionProfile& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#QOpenGLVersionProfile-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLVersionProfile>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLVersionProfile> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_QOpenGLVersionProfile2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLVersionProfile>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the OpenGL profile. Only makes sense if profiles are supported by this version.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat::OpenGLContextProfile QOpenGLVersionProfile::profile() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#profile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the OpenGL profile. Only makes sense if profiles are supported by this version.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#setProfile">setProfile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn profile(&self) -> crate::q_surface_format::OpenGLContextProfile {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_profile(
            self as *const crate::QOpenGLVersionProfile,
        )
    }

    /// <p>Sets the OpenGL profile <i>profile</i>. Only makes sense if profiles are supported by this version.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLVersionProfile::setProfile(QSurfaceFormat::OpenGLContextProfile profile)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#setProfile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the OpenGL profile <i>profile</i>. Only makes sense if profiles are supported by this version.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#profile">profile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_profile(&mut self, profile: crate::q_surface_format::OpenGLContextProfile) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_setProfile(
            self as *mut crate::QOpenGLVersionProfile,
            profile,
        )
    }

    /// <p>Sets the major and minor version numbers to <i>majorVersion</i> and <i>minorVersion</i> respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLVersionProfile::setVersion(int majorVersion, int minorVersion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#setVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the major and minor version numbers to <i>majorVersion</i> and <i>minorVersion</i> respectively.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#version">version</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_version(
        &mut self,
        major_version: ::std::os::raw::c_int,
        minor_version: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_setVersion(
            self as *mut crate::QOpenGLVersionProfile,
            major_version,
            minor_version,
        )
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;int,int&gt; where the components represent the major and minor OpenGL version numbers respectively.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<int, int> QOpenGLVersionProfile::version() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#version">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;int,int&gt; where the components represent the major and minor OpenGL version numbers respectively.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#setVersion">setVersion</a>().</p></div>
    #[inline(always)]
    pub unsafe fn version(&self) -> ::cpp_core::CppBox<crate::QPairOfIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_version(
            self as *const crate::QOpenGLVersionProfile,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopenglcontextgroup.html">QOpenGLContextGroup</a> class represents a group of contexts sharing OpenGL resources.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLContextGroup```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglcontextgroup.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglcontextgroup.html">QOpenGLContextGroup</a> class represents a group of contexts sharing OpenGL resources.</p>
/// <p><a href="http://doc.qt.io/qt-5/qopenglcontextgroup.html">QOpenGLContextGroup</a> is automatically created and managed by <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> instances. Its purpose is to identify all the contexts that are sharing resources.</p></div>
#[repr(C)]
pub struct QOpenGLContextGroup {
    _unused: u8,
}
impl QOpenGLContextGroup {
    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qopenglcontextgroup.html">QOpenGLContextGroup</a> corresponding to the current context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLContextGroup* QOpenGLContextGroup::currentContextGroup()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontextgroup.html#currentContextGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qopenglcontextgroup.html">QOpenGLContextGroup</a> corresponding to the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">QOpenGLContext::currentContext</a>().</p></div>
    #[inline(always)]
    pub unsafe fn current_context_group() -> ::cpp_core::MutPtr<crate::QOpenGLContextGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_currentContextGroup();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLContextGroup::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_metaObject(
            self as *const crate::QOpenGLContextGroup,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLContextGroup::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_qt_metacall(
            self as *mut crate::QOpenGLContextGroup,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLContextGroup::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_qt_metacast(
            self as *mut crate::QOpenGLContextGroup,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns all the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> objects in this share group.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*> QOpenGLContextGroup::shares() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontextgroup.html#shares">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns all the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> objects in this share group.</p></div>
    #[inline(always)]
    pub unsafe fn shares(&self) -> ::cpp_core::CppBox<crate::QListOfQOpenglContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_shares(
            self as *const crate::QOpenGLContextGroup,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLContextGroup::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLContextGroup::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_opengl_context {
    //! C++ type: <span style='color: green;'>```QOpenGLContext```</span>

    /// <p>This enum defines the type of the underlying OpenGL implementation.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLContext::OpenGLModuleType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#OpenGLModuleType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the type of the underlying OpenGL implementation.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.3.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct OpenGLModuleType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for OpenGLModuleType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            OpenGLModuleType(value)
        }
    }

    impl From<OpenGLModuleType> for ::std::os::raw::c_int {
        fn from(value: OpenGLModuleType) -> Self {
            value.0
        }
    }

    impl OpenGLModuleType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl OpenGLModuleType {
        /// OpenGL (C++ enum variant: <span style='color: green;'>```LibGL = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const LibGL: crate::q_opengl_context::OpenGLModuleType =
            crate::q_opengl_context::OpenGLModuleType(0);
        /// OpenGL ES 2.0 or higher (C++ enum variant: <span style='color: green;'>```LibGLES = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const LibGLES: crate::q_opengl_context::OpenGLModuleType =
            crate::q_opengl_context::OpenGLModuleType(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> class represents a native OpenGL context, enabling OpenGL rendering on a <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a>.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLContext```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglcontext.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> class represents a native OpenGL context, enabling OpenGL rendering on a <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> represents the OpenGL state of an underlying OpenGL context. To set up a context, set its screen and format such that they match those of the surface or surfaces with which the context is meant to be used, if necessary make it share resources with other contexts with <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setShareContext">setShareContext</a>(), and finally call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>(). Use the return value or <a href="http://doc.qt.io/qt-5/qopenglcontext.html#isValid">isValid</a>() to check if the context was successfully initialized.</p>
/// <p>A context can be made current against a given surface by calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>(). When OpenGL rendering is done, call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">swapBuffers</a>() to swap the front and back buffers of the surface, so that the newly rendered content becomes visible. To be able to support certain platforms, <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> requires that you call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>() again before starting rendering a new frame, after calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">swapBuffers</a>().</p>
/// <p>If the context is temporarily not needed, such as when the application is not rendering, it can be useful to delete it in order to free resources. You can connect to the <a href="http://doc.qt.io/qt-5/qopenglcontext.html#aboutToBeDestroyed">aboutToBeDestroyed</a>() signal to clean up any resources that have been allocated with different ownership from the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> itself.</p>
/// <p>Once a <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> has been made current, you can render to it in a platform independent way by using Qt's OpenGL enablers such as <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>, <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a>, <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a>, and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>. It is also possible to use the platform's OpenGL API directly, without using the Qt enablers, although potentially at the cost of portability. The latter is necessary when wanting to use OpenGL 1.x or OpenGL ES 1.x.</p>
/// <p>For more information about the OpenGL API, refer to the official <a href="http://www.opengl.org">OpenGL documentation</a>.</p>
/// <p>For an example of how to use <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> see the <a href="http://doc.qt.io/qt-5/qtgui-openglwindow-example.html">OpenGL Window</a> example.</p>
/// <a name="thread-affinity"></a></div>
#[repr(C)]
pub struct QOpenGLContext {
    _unused: u8,
}
impl QOpenGLContext {
    /// <p>This signal is emitted before the underlying native OpenGL context is destroyed, such that users may clean up OpenGL resources that might otherwise be left dangling in the case of shared OpenGL contexts.</p>
    ///
    /// Returns a built-in Qt signal `QOpenGLContext::aboutToBeDestroyed` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#aboutToBeDestroyed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted before the underlying native OpenGL context is destroyed, such that users may clean up OpenGL resources that might otherwise be left dangling in the case of shared OpenGL contexts.</p>
    /// <p>If you wish to make the context current in order to do clean-up, make sure to only connect to the signal using a direct connection.</p></div>
    #[inline(always)]
    pub fn about_to_be_destroyed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2aboutToBeDestroyed()\0"),
            )
        }
    }

    /// <p>Returns <code>true</code> if the <i>first</i> and <i>second</i> contexts are sharing OpenGL resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLContext::areSharing(QOpenGLContext* first, QOpenGLContext* second)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#areSharing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <i>first</i> and <i>second</i> contexts are sharing OpenGL resources.</p></div>
    #[inline(always)]
    pub unsafe fn are_sharing(
        first: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
        second: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_areSharing(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(first)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(second)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Attempts to create the OpenGL context with the current configuration.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLContext::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to create the OpenGL context with the current configuration.</p>
    /// <p>The current configuration includes the format, the share context, and the screen.</p>
    /// <p>If the OpenGL implementation on your system does not support the requested version of OpenGL context, then <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> will try to create the closest matching version. The actual created context properties can be queried using the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> returned by the <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">format</a>() function. For example, if you request a context that supports OpenGL 4.3 Core profile but the driver and/or hardware only supports version 3.2 Core profile contexts then you will get a 3.2 Core profile context.</p>
    /// <p>Returns <code>true</code> if the native context was successfully created and is ready to be used with <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>(), <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">swapBuffers</a>(), etc.</p>
    /// <p><b>Note: </b>If the context already exists, this function destroys the existing context first, and then creates a new one.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>() and <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_create(self as *mut crate::QOpenGLContext)
    }

    /// <p>Returns the last context which called <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a> in the current thread, or 0, if no context is current.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLContext* QOpenGLContext::currentContext()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the last context which called <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a> in the current thread, or 0, if no context is current.</p></div>
    #[inline(always)]
    pub unsafe fn current_context() -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_currentContext();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Call this to get the default framebuffer object for the current surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLContext::defaultFramebufferObject() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#defaultFramebufferObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Call this to get the default framebuffer object for the current surface.</p>
    /// <p>On some platforms (for instance, iOS) the default framebuffer object depends on the surface being rendered to, and might be different from 0. Thus, instead of calling glBindFramebuffer(0), you should call glBindFramebuffer(ctx-&gt;defaultFramebufferObject()) if you want your application to work across different Qt platforms.</p>
    /// <p>If you use the glBindFramebuffer() in <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> you do not have to worry about this, as it automatically binds the current context's defaultFramebufferObject() when 0 is passed.</p>
    /// <p><b>Note: </b>Widgets that render via framebuffer objects, like <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a> and <a href="http://doc.qt.io/qt-5/qquickwidget.html">QQuickWidget</a>, will override the value returned from this function when painting is active, because at that time the correct "default" framebuffer is the widget's associated backing framebuffer, not the platform-specific one belonging to the top-level window's surface. This ensures the expected behavior for this function and other classes relying on it (for example, <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#bindDefault">QOpenGLFramebufferObject::bindDefault</a>() or <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#release">QOpenGLFramebufferObject::release</a>()).</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>.</p></div>
    #[inline(always)]
    pub unsafe fn default_framebuffer_object(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_defaultFramebufferObject(
            self as *const crate::QOpenGLContext,
        )
    }

    /// <p>Convenience function for calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a> with a 0 surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLContext::doneCurrent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#doneCurrent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function for calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a> with a 0 surface.</p>
    /// <p>This results in no context being current in the current thread.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>() and <a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">currentContext</a>().</p></div>
    #[inline(always)]
    pub unsafe fn done_current(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_doneCurrent(self as *mut crate::QOpenGLContext)
    }

    /// <p>Returns the set of OpenGL extensions supported by this context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray> QOpenGLContext::extensions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#extensions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the set of OpenGL extensions supported by this context.</p>
    /// <p>The context or a sharing context must be current.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#hasExtension">hasExtension</a>().</p></div>
    #[inline(always)]
    pub unsafe fn extensions(&self) -> ::cpp_core::CppBox<crate::QSetOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_extensions(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Get the <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> instance for this context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLExtraFunctions* QOpenGLContext::extraFunctions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#extraFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Get the <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> instance for this context.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> offers this as a convenient way to access <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> without having to manage it manually.</p>
    /// <p>The context or a sharing context must be current.</p>
    /// <p>The returned <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> instance is ready to be used and it does not need initializeOpenGLFunctions() to be called.</p>
    /// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> contains functionality that is not guaranteed to be available at runtime. Runtime availability depends on the platform, graphics driver, and the OpenGL version requested by the application.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> and <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a>.</p></div>
    #[inline(always)]
    pub unsafe fn extra_functions(&self) -> ::cpp_core::MutPtr<crate::QOpenGLExtraFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_extraFunctions(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the format of the underlying platform context, if <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() has been called.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurfaceFormat QOpenGLContext::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format of the underlying platform context, if <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() has been called.</p>
    /// <p>Otherwise, returns the requested format.</p>
    /// <p>The requested and the actual format may differ. Requesting a given OpenGL version does not mean the resulting context will target exactly the requested version. It is only guaranteed that the version/profile/options combination for the created context is compatible with the request, as long as the driver is able to provide such a context.</p>
    /// <p>For example, requesting an OpenGL version 3.x core profile context may result in an OpenGL 4.x core profile context. Similarly, a request for OpenGL 2.1 may result in an OpenGL 3.0 context with deprecated functions enabled. Finally, depending on the driver, unsupported versions may result in either a context creation failure or in a context for the highest supported version.</p>
    /// <p>Similar differences are possible in the buffer sizes, for example, the resulting context may have a larger depth buffer than requested. This is perfectly normal.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QSurfaceFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_format(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Get the <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instance for this context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFunctions* QOpenGLContext::functions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#functions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Get the <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instance for this context.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> offers this as a convenient way to access <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> without having to manage it manually.</p>
    /// <p>The context or a sharing context must be current.</p>
    /// <p>The returned <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instance is ready to be used and it does not need initializeOpenGLFunctions() to be called.</p></div>
    #[inline(always)]
    pub unsafe fn functions(&self) -> ::cpp_core::MutPtr<crate::QOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_functions(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Resolves the function pointer to an OpenGL extension function, identified by <i>procName</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void (*FN_PTR)() QOpenGLContext::getProcAddress(const QByteArray& procName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#getProcAddress">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resolves the function pointer to an OpenGL extension function, identified by <i>procName</i></p>
    /// <p>Returns 0 if no such function can be found.</p></div>
    #[inline(always)]
    pub unsafe fn get_proc_address_q_byte_array(
        &self,
        proc_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::std::option::Option<extern "C" fn()> {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_getProcAddress(
            self as *const crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(proc_name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void (*FN_PTR)() QOpenGLContext::getProcAddress(const char* procName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#getProcAddress-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.8.</p></div>
    #[inline(always)]
    pub unsafe fn get_proc_address_char(
        &self,
        proc_name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::std::option::Option<extern "C" fn()> {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_getProcAddress1(
            self as *const crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(proc_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the application-wide shared OpenGL context, if present. Otherwise, returns a null pointer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLContext* QOpenGLContext::globalShareContext()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#globalShareContext">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the application-wide shared OpenGL context, if present. Otherwise, returns a null pointer.</p>
    /// <p>This is useful if you need to upload OpenGL objects (buffers, textures, etc.) before creating or showing a <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a> or <a href="http://doc.qt.io/qt-5/qquickwidget.html">QQuickWidget</a>.</p>
    /// <p><b>Note: </b>You must set the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_ShareOpenGLContexts</a> flag on <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> before creating the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> object, otherwise Qt may not create a global shared context.</p><p><b>Warning:</b> Do not attempt to make the context returned by this function current on any surface. Instead, you can create a new context which shares with the global one, and then make the new context current.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_ShareOpenGLContexts</a>, <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setShareContext">setShareContext</a>(), and <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn global_share_context() -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_globalShareContext();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns <code>true</code> if this OpenGL context supports the specified OpenGL <i>extension</i>, <code>false</code> otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLContext::hasExtension(const QByteArray& extension) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#hasExtension">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this OpenGL context supports the specified OpenGL <i>extension</i>, <code>false</code> otherwise.</p>
    /// <p>The context or a sharing context must be current.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#extensions">extensions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_extension(
        &self,
        extension: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_hasExtension(
            self as *const crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(extension)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns true if the context is an OpenGL ES context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLContext::isOpenGLES() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#isOpenGLES">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if the context is an OpenGL ES context.</p>
    /// <p>If the context has not yet been created, the result is based on the requested format set via <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setFormat">setFormat</a>().</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">format</a>(), and <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_opengl_e_s(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_isOpenGLES(self as *const crate::QOpenGLContext)
    }

    /// <p>Returns if this context is valid, i.e. has been successfully created.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLContext::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns if this context is valid, i.e. has been successfully created.</p>
    /// <p>On some platforms the return value of <code>false</code> for a context that was successfully created previously indicates that the OpenGL context was lost.</p>
    /// <p>The typical way to handle context loss scenarios in applications is to check via this function whenever <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>() fails and returns <code>false</code>. If this function then returns <code>false</code>, recreate the underlying native OpenGL context by calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>(), call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>() again and then reinitialize all OpenGL resources.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_isValid(self as *const crate::QOpenGLContext)
    }

    /// <p>Makes the context current in the current thread, against the given <i>surface</i>. Returns <code>true</code> if successful; otherwise returns <code>false</code>. The latter may happen if the surface is not exposed, or the graphics hardware is not available due to e.g. the application being suspended.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLContext::makeCurrent(QSurface* surface)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the context current in the current thread, against the given <i>surface</i>. Returns <code>true</code> if successful; otherwise returns <code>false</code>. The latter may happen if the surface is not exposed, or the graphics hardware is not available due to e.g. the application being suspended.</p>
    /// <p>If <i>surface</i> is 0 this is equivalent to calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#doneCurrent">doneCurrent</a>().</p>
    /// <p>Avoid calling this function from a different thread than the one the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> instance lives in. If you wish to use <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> from a different thread you should first call make sure it's not current in the current thread, by calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#doneCurrent">doneCurrent</a>() if necessary. Then call <a href="http://doc.qt.io/qt-5/qobject.html#moveToThread">moveToThread</a>(otherThread) before using it in the other thread.</p>
    /// <p>By default Qt employs a check that enforces the above condition on the thread affinity. It is still possible to disable this check by setting the <code>Qt::AA_DontCheckOpenGLContextThreadAffinity</code> application attribute. Be sure to understand the consequences of using QObjects from outside the thread they live in, as explained in the <a href="http://doc.qt.io/qt-5/qobject.html#thread-affinity">QObject thread affinity</a> documentation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#functions">functions</a>(), <a href="http://doc.qt.io/qt-5/qopenglcontext.html#doneCurrent">doneCurrent</a>(), and <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_DontCheckOpenGLContextThreadAffinity</a>.</p></div>
    #[inline(always)]
    pub unsafe fn make_current(
        &mut self,
        surface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QSurface>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_makeCurrent(
            self as *mut crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QSurface>>::cast_into(surface)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLContext::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_metaObject(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the native handle for the context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant QOpenGLContext::nativeHandle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#nativeHandle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the native handle for the context.</p>
    /// <p>This function provides access to the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>'s underlying native context. The returned variant contains a platform-specific value type. These classes can be found in the module <a href="http://doc.qt.io/qt-5/qtplatformheaders-module.html">QtPlatformHeaders</a>.</p>
    /// <p>On platforms where retrieving the native handle is not supported, or if neither <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() nor <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setNativeHandle">setNativeHandle</a>() was called, a null variant is returned.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#setNativeHandle">setNativeHandle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn native_handle(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_nativeHandle(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a new OpenGL context instance with parent object <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLContext::QOpenGLContext(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#QOpenGLContext">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new OpenGL context instance with parent object <i>parent</i>.</p>
    /// <p>Before it can be used you need to set the proper format and call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() and <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_QOpenGLContext(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> class represents a native OpenGL context, enabling OpenGL rendering on a <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLContext::QOpenGLContext()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> class represents a native OpenGL context, enabling OpenGL rendering on a <a href="http://doc.qt.io/qt-5/qsurface.html">QSurface</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> represents the OpenGL state of an underlying OpenGL context. To set up a context, set its screen and format such that they match those of the surface or surfaces with which the context is meant to be used, if necessary make it share resources with other contexts with <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setShareContext">setShareContext</a>(), and finally call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>(). Use the return value or <a href="http://doc.qt.io/qt-5/qopenglcontext.html#isValid">isValid</a>() to check if the context was successfully initialized.</p>
    /// <p>A context can be made current against a given surface by calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>(). When OpenGL rendering is done, call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">swapBuffers</a>() to swap the front and back buffers of the surface, so that the newly rendered content becomes visible. To be able to support certain platforms, <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> requires that you call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>() again before starting rendering a new frame, after calling <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">swapBuffers</a>().</p>
    /// <p>If the context is temporarily not needed, such as when the application is not rendering, it can be useful to delete it in order to free resources. You can connect to the <a href="http://doc.qt.io/qt-5/qopenglcontext.html#aboutToBeDestroyed">aboutToBeDestroyed</a>() signal to clean up any resources that have been allocated with different ownership from the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> itself.</p>
    /// <p>Once a <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> has been made current, you can render to it in a platform independent way by using Qt's OpenGL enablers such as <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>, <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a>, <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a>, and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>. It is also possible to use the platform's OpenGL API directly, without using the Qt enablers, although potentially at the cost of portability. The latter is necessary when wanting to use OpenGL 1.x or OpenGL ES 1.x.</p>
    /// <p>For more information about the OpenGL API, refer to the official <a href="http://www.opengl.org">OpenGL documentation</a>.</p>
    /// <p>For an example of how to use <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> see the <a href="http://doc.qt.io/qt-5/qtgui-openglwindow-example.html">OpenGL Window</a> example.</p>
    /// <a name="thread-affinity"></a></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_QOpenGLContext1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the platform-specific handle for the OpenGL implementation that is currently in use. (for example, a HMODULE on Windows)</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void* QOpenGLContext::openGLModuleHandle()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#openGLModuleHandle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the platform-specific handle for the OpenGL implementation that is currently in use. (for example, a HMODULE on Windows)</p>
    /// <p>On platforms that do not use dynamic GL switch the return value is null.</p>
    /// <p>The library might be GL-only, meaning that windowing system interface functions (for example EGL) may live in another, separate library.</p>
    /// <p><b>Note: </b>This function requires that the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> instance is already created.</p><p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#openGLModuleType">openGLModuleType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn opengl_module_handle() -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_openGLModuleHandle();
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the underlying OpenGL implementation type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLContext::OpenGLModuleType QOpenGLContext::openGLModuleType()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#openGLModuleType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the underlying OpenGL implementation type.</p>
    /// <p>On platforms where the OpenGL implementation is not dynamically loaded, the return value is determined during compile time and never changes.</p>
    /// <p><b>Note: </b>A desktop OpenGL implementation may be capable of creating ES-compatible contexts too. Therefore in most cases it is more appropriate to check <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#renderableType">QSurfaceFormat::renderableType</a>() or use the convenience function <a href="http://doc.qt.io/qt-5/qopenglcontext.html#isOpenGLES">isOpenGLES</a>().</p><p><b>Note: </b>This function requires that the <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> instance is already created.</p><p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn opengl_module_type() -> crate::q_opengl_context::OpenGLModuleType {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_openGLModuleType()
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLContext::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_qt_metacall(
            self as *mut crate::QOpenGLContext,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLContext::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_qt_metacast(
            self as *mut crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the screen the context was created for.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen* QOpenGLContext::screen() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#screen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the screen the context was created for.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#setScreen">setScreen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn screen(&self) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_screen(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the <i>format</i> the OpenGL context should be compatible with. You need to call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() before it takes effect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLContext::setFormat(const QSurfaceFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>format</i> the OpenGL context should be compatible with. You need to call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() before it takes effect.</p>
    /// <p>When the format is not explicitly set via this function, the format returned by <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#defaultFormat">QSurfaceFormat::defaultFormat</a>() will be used. This means that when having multiple contexts, individual calls to this function can be replaced by one single call to <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDefaultFormat">QSurfaceFormat::setDefaultFormat</a>() before creating the first context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSurfaceFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_setFormat(
            self as *mut crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSurfaceFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Set the native handles for this context. When <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() is called and a native handle is set, configuration settings, like <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">format</a>(), are ignored since this <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> will wrap an already created native context instead of creating a new one from scratch.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLContext::setNativeHandle(const QVariant& handle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setNativeHandle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the native handles for this context. When <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() is called and a native handle is set, configuration settings, like <a href="http://doc.qt.io/qt-5/qopenglcontext.html#format">format</a>(), are ignored since this <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> will wrap an already created native context instead of creating a new one from scratch.</p>
    /// <p>On some platforms the native context handle is not sufficient and other related handles (for example, for a window or display) have to be provided in addition. Therefore <i>handle</i> is variant containing a platform-specific value type. These classes can be found in the <a href="http://doc.qt.io/qt-5/qtplatformheaders-module.html">QtPlatformHeaders</a> module.</p>
    /// <p>When <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() is called with native handles set, <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> does not take ownership of the handles, so destroying the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> does not destroy the native context.</p>
    /// <p><b>Note: </b>Some frameworks track the current context and surfaces internally. Making the adopted <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> current via Qt will have no effect on such other frameworks' internal state. Therefore a subsequent <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a> done via the other framework may have no effect. It is therefore advisable to make explicit calls to make no context and surface current to reset the other frameworks' internal state after performing OpenGL operations via Qt.</p><p><b>Note: </b>Using foreign contexts with Qt windows and Qt contexts with windows and surfaces created by other frameworks may give unexpected results, depending on the platform, due to potential mismatches in context and window pixel formats. To make sure this does not happen, avoid making contexts and surfaces from different frameworks current together. Instead, prefer approaches based on context sharing where OpenGL resources like textures are accessible both from Qt's and the foreign framework's contexts.</p><p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#nativeHandle">nativeHandle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_native_handle(
        &mut self,
        handle: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_setNativeHandle(
            self as *mut crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(handle)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the <i>screen</i> the OpenGL context should be valid for. You need to call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() before it takes effect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLContext::setScreen(QScreen* screen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setScreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>screen</i> the OpenGL context should be valid for. You need to call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() before it takes effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#screen">screen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_screen(
        &mut self,
        screen: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_setScreen(
            self as *mut crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(screen)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Makes this context share textures, shaders, and other OpenGL resources with <i>shareContext</i>. You need to call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() before it takes effect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLContext::setShareContext(QOpenGLContext* shareContext)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#setShareContext">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes this context share textures, shaders, and other OpenGL resources with <i>shareContext</i>. You need to call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#create">create</a>() before it takes effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#shareContext">shareContext</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_share_context(
        &mut self,
        share_context: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_setShareContext(
            self as *mut crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(
                share_context,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the share context this context was created with.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* QOpenGLContext::shareContext() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#shareContext">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the share context this context was created with.</p>
    /// <p>If the underlying platform was not able to support the requested sharing, this will return 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#setShareContext">setShareContext</a>().</p></div>
    #[inline(always)]
    pub unsafe fn share_context(&self) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_shareContext(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the share group this context belongs to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContextGroup* QOpenGLContext::shareGroup() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#shareGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the share group this context belongs to.</p></div>
    #[inline(always)]
    pub unsafe fn share_group(&self) -> ::cpp_core::MutPtr<crate::QOpenGLContextGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_shareGroup(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the platform supports OpenGL rendering outside the main (gui) thread.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLContext::supportsThreadedOpenGL()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#supportsThreadedOpenGL">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the platform supports OpenGL rendering outside the main (gui) thread.</p>
    /// <p>The value is controlled by the platform plugin in use and may also depend on the graphics drivers.</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn supports_threaded_opengl() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_supportsThreadedOpenGL()
    }

    /// <p>Returns the surface the context has been made current with.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSurface* QOpenGLContext::surface() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#surface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the surface the context has been made current with.</p>
    /// <p>This is the surface passed as an argument to <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn surface(&self) -> ::cpp_core::MutPtr<crate::QSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_surface(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Swap the back and front buffers of <i>surface</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLContext::swapBuffers(QSurface* surface)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swap the back and front buffers of <i>surface</i>.</p>
    /// <p>Call this to finish a frame of OpenGL rendering, and make sure to call <a href="http://doc.qt.io/qt-5/qopenglcontext.html#makeCurrent">makeCurrent</a>() again before you begin a new frame.</p></div>
    #[inline(always)]
    pub unsafe fn swap_buffers(
        &mut self,
        surface: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QSurface>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_swapBuffers(
            self as *mut crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QSurface>>::cast_into(surface)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLContext::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLContext::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pointer to an object that provides access to all functions for the <i>versionProfile</i> of this context. There is no need to call QAbstractOpenGLFunctions::initializeOpenGLFunctions() as long as this context is current. It is also possible to call this function when the context is not current, but in that case it is the caller's responsibility to ensure proper initialization by calling QAbstractOpenGLFunctions::initializeOpenGLFunctions() afterwards.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractOpenGLFunctions* QOpenGLContext::versionFunctions(const QOpenGLVersionProfile& versionProfile = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#versionFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to an object that provides access to all functions for the <i>versionProfile</i> of this context. There is no need to call QAbstractOpenGLFunctions::initializeOpenGLFunctions() as long as this context is current. It is also possible to call this function when the context is not current, but in that case it is the caller's responsibility to ensure proper initialization by calling QAbstractOpenGLFunctions::initializeOpenGLFunctions() afterwards.</p>
    /// <p>Usually one would use the template version of this function to automatically have the result cast to the correct type.</p></div>
    #[inline(always)]
    pub unsafe fn version_functions_1a(
        &self,
        version_profile: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLVersionProfile>>,
    ) -> ::cpp_core::MutPtr<crate::QAbstractOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_versionFunctions(
            self as *const crate::QOpenGLContext,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLVersionProfile>>::cast_into(
                version_profile,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to an object that provides access to all functions for the <i>versionProfile</i> of this context. There is no need to call QAbstractOpenGLFunctions::initializeOpenGLFunctions() as long as this context is current. It is also possible to call this function when the context is not current, but in that case it is the caller's responsibility to ensure proper initialization by calling QAbstractOpenGLFunctions::initializeOpenGLFunctions() afterwards.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractOpenGLFunctions* QOpenGLContext::versionFunctions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#versionFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to an object that provides access to all functions for the <i>versionProfile</i> of this context. There is no need to call QAbstractOpenGLFunctions::initializeOpenGLFunctions() as long as this context is current. It is also possible to call this function when the context is not current, but in that case it is the caller's responsibility to ensure proper initialization by calling QAbstractOpenGLFunctions::initializeOpenGLFunctions() afterwards.</p>
    /// <p>Usually one would use the template version of this function to automatically have the result cast to the correct type.</p></div>
    #[inline(always)]
    pub unsafe fn version_functions_0a(
        &self,
    ) -> ::cpp_core::MutPtr<crate::QAbstractOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_versionFunctions1(
            self as *const crate::QOpenGLContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

pub mod q_opengl_debug_message {
    //! C++ type: <span style='color: green;'>```QOpenGLDebugMessage```</span>

    /// <p>The Source enum defines the source of the debug message.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLDebugMessage::Source```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The Source enum defines the source of the debug message.</p>
    ///
    /// <p>The Sources type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;Source&gt;. It stores an OR combination of Source values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Source(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Source {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Source(value)
        }
    }

    impl From<Source> for ::std::os::raw::c_int {
        fn from(value: Source) -> Self {
            value.0
        }
    }

    impl Source {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Source {
        /// The source of the message is invalid; this is the source of a default-constructed <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html">QOpenGLDebugMessage</a> object. (C++ enum variant: <span style='color: green;'>```InvalidSource = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const InvalidSource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(0);
        /// The message was generated in response to OpenGL API calls. (C++ enum variant: <span style='color: green;'>```APISource = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const APISource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(1);
        /// The message was generated by the window system. (C++ enum variant: <span style='color: green;'>```WindowSystemSource = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const WindowSystemSource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(2);
        /// The message was generated by the shader compiler. (C++ enum variant: <span style='color: green;'>```ShaderCompilerSource = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const ShaderCompilerSource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(4);
        /// The message was generated by a third party, for instance an OpenGL framework a or debugging toolkit. (C++ enum variant: <span style='color: green;'>```ThirdPartySource = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const ThirdPartySource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(8);
        /// The message was generated by the application itself. (C++ enum variant: <span style='color: green;'>```ApplicationSource = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const ApplicationSource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(16);
        /// The message was generated by a source not included in this enumeration. (C++ enum variant: <span style='color: green;'>```OtherSource = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const OtherSource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(32);
        /// C++ enum variant: <span style='color: green;'>```LastSource = 32```</span>
        #[allow(non_upper_case_globals)]
        pub const LastSource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(32);
        /// This value corresponds to a mask of all possible message sources. (C++ enum variant: <span style='color: green;'>```AnySource = -1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnySource: crate::q_opengl_debug_message::Source =
            crate::q_opengl_debug_message::Source(-1);
    }

    /// <p>The Type enum defines the type of the debug message.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLDebugMessage::Type```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The Type enum defines the type of the debug message.</p>
    ///
    /// <p>The Types type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;Type&gt;. It stores an OR combination of Type values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Type(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Type {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Type(value)
        }
    }

    impl From<Type> for ::std::os::raw::c_int {
        fn from(value: Type) -> Self {
            value.0
        }
    }

    impl Type {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Type {
        /// The type of the message is invalid; this is the type of a default-constructed <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html">QOpenGLDebugMessage</a> object. (C++ enum variant: <span style='color: green;'>```InvalidType = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const InvalidType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(0);
        /// The message represents an error. (C++ enum variant: <span style='color: green;'>```ErrorType = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ErrorType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(1);
        /// The message represents an usage of deprecated behavior. (C++ enum variant: <span style='color: green;'>```DeprecatedBehaviorType = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const DeprecatedBehaviorType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(2);
        /// The message represents an usage of undefined behavior. (C++ enum variant: <span style='color: green;'>```UndefinedBehaviorType = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const UndefinedBehaviorType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(4);
        /// The message represents an usage of vendor-specific behavior, that might pose portability concerns. (C++ enum variant: <span style='color: green;'>```PortabilityType = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const PortabilityType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(8);
        /// The message represents a performance issue. (C++ enum variant: <span style='color: green;'>```PerformanceType = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const PerformanceType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(16);
        /// The message represents a type not included in this enumeration. (C++ enum variant: <span style='color: green;'>```OtherType = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const OtherType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(32);
        /// The message represents a marker in the debug log. (C++ enum variant: <span style='color: green;'>```MarkerType = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const MarkerType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(64);
        /// The message represents a debug group push operation. (C++ enum variant: <span style='color: green;'>```GroupPushType = 128```</span>)
        #[allow(non_upper_case_globals)]
        pub const GroupPushType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(128);
        /// The message represents a debug group pop operation. (C++ enum variant: <span style='color: green;'>```GroupPopType = 256```</span>)
        #[allow(non_upper_case_globals)]
        pub const GroupPopType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(256);
        /// C++ enum variant: <span style='color: green;'>```LastType = 256```</span>
        #[allow(non_upper_case_globals)]
        pub const LastType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(256);
        /// This value corresponds to a mask of all possible message types. (C++ enum variant: <span style='color: green;'>```AnyType = -1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnyType: crate::q_opengl_debug_message::Type =
            crate::q_opengl_debug_message::Type(-1);
    }

    /// <p>The Severity enum defines the severity of the debug message.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLDebugMessage::Severity```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The Severity enum defines the severity of the debug message.</p>
    ///
    /// <p>The Severities type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;Severity&gt;. It stores an OR combination of Severity values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Severity(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Severity {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Severity(value)
        }
    }

    impl From<Severity> for ::std::os::raw::c_int {
        fn from(value: Severity) -> Self {
            value.0
        }
    }

    impl Severity {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Severity {
        /// The severity of the message is invalid; this is the severity of a default-constructed <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html">QOpenGLDebugMessage</a> object. (C++ enum variant: <span style='color: green;'>```InvalidSeverity = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const InvalidSeverity: crate::q_opengl_debug_message::Severity =
            crate::q_opengl_debug_message::Severity(0);
        /// The message has a high severity. (C++ enum variant: <span style='color: green;'>```HighSeverity = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const HighSeverity: crate::q_opengl_debug_message::Severity =
            crate::q_opengl_debug_message::Severity(1);
        /// The message has a medium severity. (C++ enum variant: <span style='color: green;'>```MediumSeverity = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const MediumSeverity: crate::q_opengl_debug_message::Severity =
            crate::q_opengl_debug_message::Severity(2);
        /// The message has a low severity. (C++ enum variant: <span style='color: green;'>```LowSeverity = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const LowSeverity: crate::q_opengl_debug_message::Severity =
            crate::q_opengl_debug_message::Severity(4);
        /// The message is a notification. (C++ enum variant: <span style='color: green;'>```NotificationSeverity = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const NotificationSeverity: crate::q_opengl_debug_message::Severity =
            crate::q_opengl_debug_message::Severity(8);
        /// C++ enum variant: <span style='color: green;'>```LastSeverity = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const LastSeverity: crate::q_opengl_debug_message::Severity =
            crate::q_opengl_debug_message::Severity(8);
        /// This value corresponds to a mask of all possible message severities. (C++ enum variant: <span style='color: green;'>```AnySeverity = -1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnySeverity: crate::q_opengl_debug_message::Severity =
            crate::q_opengl_debug_message::Severity(-1);
    }

    impl From<crate::q_opengl_debug_message::Source>
        for ::qt_core::QFlags<crate::q_opengl_debug_message::Source>
    {
        fn from(value: crate::q_opengl_debug_message::Source) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_opengl_debug_message::Source>>> std::ops::BitOr<T>
        for crate::q_opengl_debug_message::Source
    {
        type Output = ::qt_core::QFlags<crate::q_opengl_debug_message::Source>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_opengl_debug_message::Source> {
            Into::<::qt_core::QFlags<crate::q_opengl_debug_message::Source>>::into(self) | rhs
        }
    }

    impl From<crate::q_opengl_debug_message::Type>
        for ::qt_core::QFlags<crate::q_opengl_debug_message::Type>
    {
        fn from(value: crate::q_opengl_debug_message::Type) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_opengl_debug_message::Type>>> std::ops::BitOr<T>
        for crate::q_opengl_debug_message::Type
    {
        type Output = ::qt_core::QFlags<crate::q_opengl_debug_message::Type>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_opengl_debug_message::Type> {
            Into::<::qt_core::QFlags<crate::q_opengl_debug_message::Type>>::into(self) | rhs
        }
    }

    impl From<crate::q_opengl_debug_message::Severity>
        for ::qt_core::QFlags<crate::q_opengl_debug_message::Severity>
    {
        fn from(value: crate::q_opengl_debug_message::Severity) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_opengl_debug_message::Severity>>> std::ops::BitOr<T>
        for crate::q_opengl_debug_message::Severity
    {
        type Output = ::qt_core::QFlags<crate::q_opengl_debug_message::Severity>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_opengl_debug_message::Severity> {
            Into::<::qt_core::QFlags<crate::q_opengl_debug_message::Severity>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html">QOpenGLDebugMessage</a> class wraps an OpenGL debug message.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLDebugMessage```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html">QOpenGLDebugMessage</a> class wraps an OpenGL debug message.</p>
/// <p>Debug messages are usually created by the OpenGL server and then read by OpenGL clients (either from the OpenGL internal debug log, or logged in real-time). A debug message has a textual representation, a vendor-specific numeric id, a source, a type and a severity.</p>
/// <p>It's also possible for applications or third-party libraries and toolkits to create and insert messages in the debug log. In order to do so, you can use the <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">createApplicationMessage</a>() or the <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">createThirdPartyMessage</a>() static functions.</p></div>
#[repr(C)]
pub struct QOpenGLDebugMessage {
    _unused: u8,
}
impl QOpenGLDebugMessage {
    /// <p>Assigns the message <i>debugMessage</i> to this object, and returns a reference to the copy.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QOpenGLDebugMessage::operator=(const QOpenGLDebugMessage& debugMessage)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the message <i>debugMessage</i> to this object, and returns a reference to the copy.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        debug_message: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_operator_(
            self as *mut crate::QOpenGLDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(
                debug_message,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ApplicationSource</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLDebugMessage QOpenGLDebugMessage::createApplicationMessage(const QString& text, GLuint id = …, QOpenGLDebugMessage::Severity severity = …, QOpenGLDebugMessage::Type type = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ApplicationSource</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">QOpenGLDebugLogger::logMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">createThirdPartyMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_application_message_4a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        id: u32,
        severity: crate::q_opengl_debug_message::Severity,
        type_: crate::q_opengl_debug_message::Type,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_createApplicationMessage(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            id,
            severity,
            type_,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ApplicationSource</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLDebugMessage QOpenGLDebugMessage::createApplicationMessage(const QString& text, GLuint id = …, QOpenGLDebugMessage::Severity severity = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ApplicationSource</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">QOpenGLDebugLogger::logMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">createThirdPartyMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_application_message_3a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        id: u32,
        severity: crate::q_opengl_debug_message::Severity,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_createApplicationMessage1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            id,
            severity,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ApplicationSource</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLDebugMessage QOpenGLDebugMessage::createApplicationMessage(const QString& text, GLuint id = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ApplicationSource</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">QOpenGLDebugLogger::logMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">createThirdPartyMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_application_message_2a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        id: u32,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_createApplicationMessage2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ApplicationSource</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLDebugMessage QOpenGLDebugMessage::createApplicationMessage(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ApplicationSource</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">QOpenGLDebugLogger::logMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">createThirdPartyMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_application_message_1a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_createApplicationMessage3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ThirdPartySource</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLDebugMessage QOpenGLDebugMessage::createThirdPartyMessage(const QString& text, GLuint id = …, QOpenGLDebugMessage::Severity severity = …, QOpenGLDebugMessage::Type type = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ThirdPartySource</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">QOpenGLDebugLogger::logMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">createApplicationMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_third_party_message_4a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        id: u32,
        severity: crate::q_opengl_debug_message::Severity,
        type_: crate::q_opengl_debug_message::Type,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_createThirdPartyMessage(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            id,
            severity,
            type_,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ThirdPartySource</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLDebugMessage QOpenGLDebugMessage::createThirdPartyMessage(const QString& text, GLuint id = …, QOpenGLDebugMessage::Severity severity = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ThirdPartySource</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">QOpenGLDebugLogger::logMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">createApplicationMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_third_party_message_3a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        id: u32,
        severity: crate::q_opengl_debug_message::Severity,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_createThirdPartyMessage1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            id,
            severity,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ThirdPartySource</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLDebugMessage QOpenGLDebugMessage::createThirdPartyMessage(const QString& text, GLuint id = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ThirdPartySource</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">QOpenGLDebugLogger::logMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">createApplicationMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_third_party_message_2a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        id: u32,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_createThirdPartyMessage2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            id,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ThirdPartySource</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QOpenGLDebugMessage QOpenGLDebugMessage::createThirdPartyMessage(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs and returns a debug message with <i>text</i> as its text, <i>id</i> as id, <i>severity</i> as severity, and <i>type</i> as type. The message source will be set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">ThirdPartySource</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">QOpenGLDebugLogger::logMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">createApplicationMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_third_party_message_1a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_createThirdPartyMessage3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the id of the debug message. Ids are generally vendor-specific.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLDebugMessage::id() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#id">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the id of the debug message. Ids are generally vendor-specific.</p></div>
    #[inline(always)]
    pub unsafe fn id(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_id(
            self as *const crate::QOpenGLDebugMessage,
        )
    }

    /// <p>Returns the textual message contained by this debug message.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QOpenGLDebugMessage::message() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#message">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the textual message contained by this debug message.</p></div>
    #[inline(always)]
    pub unsafe fn message(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_message(
            self as *const crate::QOpenGLDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a debug message with an empty message string, id set to 0, source set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">InvalidSource</a>, type set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">InvalidType</a>, and severity set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">InvalidSeverity</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLDebugMessage::QOpenGLDebugMessage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#QOpenGLDebugMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a debug message with an empty message string, id set to 0, source set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">InvalidSource</a>, type set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">InvalidType</a>, and severity set to <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">InvalidSeverity</a>.</p>
    /// <p><b>Note: </b>This constructor should not be used to create a debug message; instead, use the <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">createApplicationMessage</a>() or the <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">createThirdPartyMessage</a>() static functions.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createApplicationMessage">createApplicationMessage</a>() and <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#createThirdPartyMessage">createThirdPartyMessage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_QOpenGLDebugMessage();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a debug message as a copy of <i>debugMessage</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLDebugMessage::QOpenGLDebugMessage(const QOpenGLDebugMessage& debugMessage)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#QOpenGLDebugMessage-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a debug message as a copy of <i>debugMessage</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        debug_message: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_QOpenGLDebugMessage1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(
                debug_message,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the severity of the debug message.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage::Severity QOpenGLDebugMessage::severity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#severity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the severity of the debug message.</p></div>
    #[inline(always)]
    pub unsafe fn severity(&self) -> crate::q_opengl_debug_message::Severity {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_severity(
            self as *const crate::QOpenGLDebugMessage,
        )
    }

    /// <p>Returns the source of the debug message.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage::Source QOpenGLDebugMessage::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#source">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the source of the debug message.</p></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> crate::q_opengl_debug_message::Source {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_source(
            self as *const crate::QOpenGLDebugMessage,
        )
    }

    /// <p>Swaps the message <i>debugMessage</i> with this message. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugMessage::swap(QOpenGLDebugMessage& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps the message <i>debugMessage</i> with this message. This operation is very fast and never fails.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_swap(
            self as *mut crate::QOpenGLDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QOpenGLDebugMessage>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the type of the debug message.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage::Type QOpenGLDebugMessage::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of the debug message.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_opengl_debug_message::Type {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_type(
            self as *const crate::QOpenGLDebugMessage,
        )
    }
}

pub mod q_opengl_debug_logger {
    //! C++ type: <span style='color: green;'>```QOpenGLDebugLogger```</span>

    /// <p>The LoggingMode enum defines the logging mode of the logger object.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLDebugLogger::LoggingMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#LoggingMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The LoggingMode enum defines the logging mode of the logger object.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct LoggingMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for LoggingMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            LoggingMode(value)
        }
    }

    impl From<LoggingMode> for ::std::os::raw::c_int {
        fn from(value: LoggingMode) -> Self {
            value.0
        }
    }

    impl LoggingMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl LoggingMode {
        /// Messages from the OpenGL server are logged asynchronously. This means that messages can be logged some time after the corresponding OpenGL actions that caused them, and even be received in an out-of-order fashion, depending on the OpenGL implementation. This mode has a very low performance penalty, as OpenGL implementations are heavily threaded and asynchronous by nature. (C++ enum variant: <span style='color: green;'>```AsynchronousLogging = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const AsynchronousLogging: crate::q_opengl_debug_logger::LoggingMode =
            crate::q_opengl_debug_logger::LoggingMode(0);
        /// Messages from the OpenGL server are logged synchronously and sequentially. This has a severe performance hit, as OpenGL implementations are very asynchronous by nature; but it's very useful to debug OpenGL problems, as OpenGL guarantees that the messages generated by a OpenGL command will be logged before the corresponding command execution has returned. Therefore, you can install a breakpoint on the <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">messageLogged</a>() signal and see in the backtrace which OpenGL command caused it; the only caveat is that if you are using OpenGL from multiple threads you may need to force direct connection when connecting to the <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">messageLogged</a>() signal. (C++ enum variant: <span style='color: green;'>```SynchronousLogging = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const SynchronousLogging: crate::q_opengl_debug_logger::LoggingMode =
            crate::q_opengl_debug_logger::LoggingMode(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> enables logging of OpenGL debugging messages.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLDebugLogger```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> enables logging of OpenGL debugging messages.</p>
/// <a name="introduction"></a></div>
#[repr(C)]
pub struct QOpenGLDebugLogger {
    _unused: u8,
}
impl QOpenGLDebugLogger {
    /// <p>Inserts the message <i>debugMessage</i> into the OpenGL debug log. This provides a way for applications or libraries to insert custom messages that can ease the debugging of OpenGL applications.</p>
    ///
    /// Returns a built-in Qt slot `QOpenGLDebugLogger::logMessage` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts the message <i>debugMessage</i> into the OpenGL debug log. This provides a way for applications or libraries to insert custom messages that can ease the debugging of OpenGL applications.</p>
    /// <p><b>Note: </b><i>debugMessage</i> must have <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ApplicationSource</a> or <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ThirdPartySource</a> as its source, and a valid type and severity, otherwise it will not be inserted into the log.</p><p><b>Note: </b>The object must be initialized before logging can happen.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#initialize">initialize</a>().</p></div>
    #[inline(always)]
    pub fn slot_log_message(&self) -> ::qt_core::Receiver<(*const crate::QOpenGLDebugMessage,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1logMessage(const QOpenGLDebugMessage&)\0",
                ),
            )
        }
    }

    /// <p>Starts logging messages coming from the OpenGL server. When a new message is received, the signal <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">messageLogged</a>() is emitted, carrying the logged message as argument.</p>
    ///
    /// Returns a built-in Qt slot `QOpenGLDebugLogger::startLogging` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts logging messages coming from the OpenGL server. When a new message is received, the signal <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">messageLogged</a>() is emitted, carrying the logged message as argument.</p>
    /// <p><i>loggingMode</i> specifies whether the logging must be asynchronous (the default) or synchronous.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> will record the values of <code>GL_DEBUG_OUTPUT</code> and <code>GL_DEBUG_OUTPUT_SYNCHRONOUS</code> when logging is started, and set them back when logging is stopped. Moreover, any user-defined OpenGL debug callback installed when this function is invoked will be restored when logging is stopped; <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> will ensure that the pre-existing callback will still be invoked when logging.</p>
    /// <p><b>Note: </b>It's not possible to change the logging mode without stopping and starting logging again. This might change in a future version of Qt.</p><p><b>Note: </b>The object must be initialized before logging can happen.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#stopLogging">stopLogging</a>() and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#initialize">initialize</a>().</p></div>
    #[inline(always)]
    pub fn slot_start_logging(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_opengl_debug_logger::LoggingMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1startLogging(QOpenGLDebugLogger::LoggingMode)\0",
                ),
            )
        }
    }

    /// <p>Stops logging messages from the OpenGL server.</p>
    ///
    /// Returns a built-in Qt slot `QOpenGLDebugLogger::stopLogging` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#stopLogging">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Stops logging messages from the OpenGL server.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">startLogging</a>().</p></div>
    #[inline(always)]
    pub fn slot_stop_logging(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1stopLogging()\0"),
            )
        }
    }

    /// <p>This signal is emitted when a debug message (wrapped by the <i>debugMessage</i> argument) is logged from the OpenGL server.</p>
    ///
    /// Returns a built-in Qt signal `QOpenGLDebugLogger::messageLogged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when a debug message (wrapped by the <i>debugMessage</i> argument) is logged from the OpenGL server.</p>
    /// <p>Depending on the OpenGL implementation, this signal can be emitted from other threads than the one(s) the receiver(s) lives in, and even different from the thread the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> in which this object has been initialized lives in. Moreover, the signal could be emitted from multiple threads at the same time. This is normally not a problem, as Qt will utilize a queued connection for cross-thread signal emissions, but if you force the connection type to Direct then you must be aware of the potential races in the slots connected to this signal.</p>
    /// <p>If logging have been started in <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#LoggingMode-enum">SynchronousLogging</a> mode, OpenGL guarantees that this signal will be emitted from the same thread the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> has been bound to, and no concurrent invocations will ever happen.</p>
    /// <p><b>Note: </b>Logging must have been started, or this signal will not be emitted.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">startLogging</a>().</p></div>
    #[inline(always)]
    pub fn message_logged(&self) -> ::qt_core::Signal<(*const crate::QOpenGLDebugMessage,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2messageLogged(const QOpenGLDebugMessage&)\0",
                ),
            )
        }
    }

    /// <p>Disables the logging of messages with the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::disableMessages(QFlags<QOpenGLDebugMessage::Source> sources = …, QFlags<QOpenGLDebugMessage::Type> types = …, QFlags<QOpenGLDebugMessage::Severity> severities = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disables the logging of messages with the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    /// <p>The logging will be disabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_messages_q_flags_source_q_flags_type_q_flags_severity(
        &mut self,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
        types: ::qt_core::QFlags<crate::q_opengl_debug_message::Type>,
        severities: ::qt_core::QFlags<crate::q_opengl_debug_message::Severity>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_disableMessages(
            self as *mut crate::QOpenGLDebugLogger,
            sources.to_int(),
            types.to_int(),
            severities.to_int(),
        )
    }

    /// <p>Disables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::disableMessages(const QVector<GLuint>& ids, QFlags<QOpenGLDebugMessage::Source> sources = …, QFlags<QOpenGLDebugMessage::Type> types = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    /// <p>The logging will be disabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_messages_q_vector_of_u32_q_flags_source_q_flags_type(
        &mut self,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
        types: ::qt_core::QFlags<crate::q_opengl_debug_message::Type>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_disableMessages1(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(ids)
                .as_raw_ptr(),
            sources.to_int(),
            types.to_int(),
        )
    }

    /// <p>Disables the logging of messages with the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::disableMessages(QFlags<QOpenGLDebugMessage::Source> sources = …, QFlags<QOpenGLDebugMessage::Type> types = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disables the logging of messages with the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    /// <p>The logging will be disabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_messages_q_flags_source_q_flags_type(
        &mut self,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
        types: ::qt_core::QFlags<crate::q_opengl_debug_message::Type>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_disableMessages2(
            self as *mut crate::QOpenGLDebugLogger,
            sources.to_int(),
            types.to_int(),
        )
    }

    /// <p>Disables the logging of messages with the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::disableMessages(QFlags<QOpenGLDebugMessage::Source> sources = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disables the logging of messages with the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    /// <p>The logging will be disabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_messages_q_flags_source(
        &mut self,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_disableMessages3(
            self as *mut crate::QOpenGLDebugLogger,
            sources.to_int(),
        )
    }

    /// <p>Disables the logging of messages with the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::disableMessages()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disables the logging of messages with the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    /// <p>The logging will be disabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_messages(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_disableMessages4(
            self as *mut crate::QOpenGLDebugLogger,
        )
    }

    /// <p>Disables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::disableMessages(const QVector<GLuint>& ids, QFlags<QOpenGLDebugMessage::Source> sources = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    /// <p>The logging will be disabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_messages_q_vector_of_u32_q_flags_source(
        &mut self,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_disableMessages5(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(ids)
                .as_raw_ptr(),
            sources.to_int(),
        )
    }

    /// <p>Disables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::disableMessages(const QVector<GLuint>& ids)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    /// <p>The logging will be disabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_messages_q_vector_of_u32(
        &mut self,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_disableMessages6(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(ids)
                .as_raw_ptr(),
        )
    }

    /// <p>Enables the logging of messages from the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::enableMessages(QFlags<QOpenGLDebugMessage::Source> sources = …, QFlags<QOpenGLDebugMessage::Type> types = …, QFlags<QOpenGLDebugMessage::Severity> severities = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables the logging of messages from the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    /// <p>The logging will be enabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_messages_q_flags_source_q_flags_type_q_flags_severity(
        &mut self,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
        types: ::qt_core::QFlags<crate::q_opengl_debug_message::Type>,
        severities: ::qt_core::QFlags<crate::q_opengl_debug_message::Severity>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_enableMessages(
            self as *mut crate::QOpenGLDebugLogger,
            sources.to_int(),
            types.to_int(),
            severities.to_int(),
        )
    }

    /// <p>Enables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::enableMessages(const QVector<GLuint>& ids, QFlags<QOpenGLDebugMessage::Source> sources = …, QFlags<QOpenGLDebugMessage::Type> types = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    /// <p>The logging will be enabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_messages_q_vector_of_u32_q_flags_source_q_flags_type(
        &mut self,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
        types: ::qt_core::QFlags<crate::q_opengl_debug_message::Type>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_enableMessages1(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(ids)
                .as_raw_ptr(),
            sources.to_int(),
            types.to_int(),
        )
    }

    /// <p>Enables the logging of messages from the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::enableMessages(QFlags<QOpenGLDebugMessage::Source> sources = …, QFlags<QOpenGLDebugMessage::Type> types = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables the logging of messages from the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    /// <p>The logging will be enabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_messages_q_flags_source_q_flags_type(
        &mut self,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
        types: ::qt_core::QFlags<crate::q_opengl_debug_message::Type>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_enableMessages2(
            self as *mut crate::QOpenGLDebugLogger,
            sources.to_int(),
            types.to_int(),
        )
    }

    /// <p>Enables the logging of messages from the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::enableMessages(QFlags<QOpenGLDebugMessage::Source> sources = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables the logging of messages from the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    /// <p>The logging will be enabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_messages_q_flags_source(
        &mut self,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_enableMessages3(
            self as *mut crate::QOpenGLDebugLogger,
            sources.to_int(),
        )
    }

    /// <p>Enables the logging of messages from the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::enableMessages()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables the logging of messages from the given <i>sources</i>, of the given <i>types</i> and with the given <i>severities</i> and any message id.</p>
    /// <p>The logging will be enabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_messages(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_enableMessages4(
            self as *mut crate::QOpenGLDebugLogger,
        )
    }

    /// <p>Enables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::enableMessages(const QVector<GLuint>& ids, QFlags<QOpenGLDebugMessage::Source> sources = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    /// <p>The logging will be enabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_messages_q_vector_of_u32_q_flags_source(
        &mut self,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
        sources: ::qt_core::QFlags<crate::q_opengl_debug_message::Source>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_enableMessages5(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(ids)
                .as_raw_ptr(),
            sources.to_int(),
        )
    }

    /// <p>Enables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::enableMessages(const QVector<GLuint>& ids)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables the logging of messages with the given <i>ids</i>, from the given <i>sources</i> and of the given <i>types</i> and any severity.</p>
    /// <p>The logging will be enabled in the current control group.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_messages_q_vector_of_u32(
        &mut self,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_enableMessages6(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(ids)
                .as_raw_ptr(),
        )
    }

    /// <p>Initializes the object in the current OpenGL context. The context must support the <code>GL_KHR_debug</code> extension for the initialization to succeed. The object must be initialized before any logging can happen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLDebugLogger::initialize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#initialize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Initializes the object in the current OpenGL context. The context must support the <code>GL_KHR_debug</code> extension for the initialization to succeed. The object must be initialized before any logging can happen.</p>
    /// <p>It is safe to call this function multiple times from the same context.</p>
    /// <p>This function can also be used to change the context of a previously initialized object; note that in this case the object must not be logging when you call this function.</p>
    /// <p>Returns <code>true</code> if the logger is successfully initialized; false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p></div>
    #[inline(always)]
    pub unsafe fn initialize(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_initialize(
            self as *mut crate::QOpenGLDebugLogger,
        )
    }

    /// <p>Returns <code>true</code> if this object is currently logging, false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLDebugLogger::isLogging() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#isLogging">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this object is currently logging, false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">startLogging</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_logging(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_isLogging(
            self as *const crate::QOpenGLDebugLogger,
        )
    }

    /// <p>Inserts the message <i>debugMessage</i> into the OpenGL debug log. This provides a way for applications or libraries to insert custom messages that can ease the debugging of OpenGL applications.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QOpenGLDebugLogger::logMessage(const QOpenGLDebugMessage& debugMessage)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts the message <i>debugMessage</i> into the OpenGL debug log. This provides a way for applications or libraries to insert custom messages that can ease the debugging of OpenGL applications.</p>
    /// <p><b>Note: </b><i>debugMessage</i> must have <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ApplicationSource</a> or <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ThirdPartySource</a> as its source, and a valid type and severity, otherwise it will not be inserted into the log.</p><p><b>Note: </b>The object must be initialized before logging can happen.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#initialize">initialize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn log_message(
        &mut self,
        debug_message: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_logMessage(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(
                debug_message,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Reads all the available messages in the OpenGL internal debug log and returns them. Moreover, this function will clear the internal debug log, so that subsequent invocations will not return messages that were already returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage> QOpenGLDebugLogger::loggedMessages() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#loggedMessages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reads all the available messages in the OpenGL internal debug log and returns them. Moreover, this function will clear the internal debug log, so that subsequent invocations will not return messages that were already returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">startLogging</a>().</p></div>
    #[inline(always)]
    pub unsafe fn logged_messages(&self) -> ::cpp_core::CppBox<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_loggedMessages(
            self as *const crate::QOpenGLDebugLogger,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the logging mode passed to <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">startLogging</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugLogger::LoggingMode QOpenGLDebugLogger::loggingMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#loggingMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the logging mode passed to <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">startLogging</a>().</p>
    /// <p>Note that logging must have been started or the value of this property will be meaningless.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> LoggingMode </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#loggingMode">loggingMode</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">startLogging</a>() and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#isLogging">isLogging</a>().</p></div>
    #[inline(always)]
    pub unsafe fn logging_mode(&self) -> crate::q_opengl_debug_logger::LoggingMode {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_loggingMode(
            self as *const crate::QOpenGLDebugLogger,
        )
    }

    /// <p>Returns the maximum supported length, in bytes, for the text of the messages passed to <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">logMessage</a>(). This is also the maximum length of a debug group name, as pushing or popping groups will automatically log a message with the debug group name as the message text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```qint64 QOpenGLDebugLogger::maximumMessageLength() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#maximumMessageLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum supported length, in bytes, for the text of the messages passed to <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#logMessage">logMessage</a>(). This is also the maximum length of a debug group name, as pushing or popping groups will automatically log a message with the debug group name as the message text.</p>
    /// <p>If a message text is too long, it will be automatically truncated by <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a>.</p>
    /// <p><b>Note: </b>Message texts are encoded in UTF-8 when they get passed to OpenGL, so their size in bytes does not usually match the amount of UTF-16 code units, as returned f.i. by <a href="http://doc.qt.io/qt-5/qstring.html#length">QString::length</a>(). (It does if the message contains 7-bit ASCII only data, which is typical for debug messages.)</p></div>
    #[inline(always)]
    pub unsafe fn maximum_message_length(&self) -> i64 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_maximumMessageLength(
            self as *const crate::QOpenGLDebugLogger,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLDebugLogger::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_metaObject(
            self as *const crate::QOpenGLDebugLogger,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a new logger object with the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLDebugLogger::QOpenGLDebugLogger(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#QOpenGLDebugLogger">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new logger object with the given <i>parent</i>.</p>
    /// <p><b>Note: </b>The object must be initialized before logging can happen.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#initialize">initialize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugLogger> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_QOpenGLDebugLogger(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> enables logging of OpenGL debugging messages.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLDebugLogger::QOpenGLDebugLogger()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> enables logging of OpenGL debugging messages.</p>
    /// <a name="introduction"></a></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLDebugLogger> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_QOpenGLDebugLogger1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Pops the topmost debug group from the debug groups stack. If the group is successfully popped, OpenGL will automatically log a message with message, id and source matching those of the popped group, type <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">QOpenGLDebugMessage::GroupPopType</a> and severity <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">QOpenGLDebugMessage::NotificationSeverity</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::popGroup()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Pops the topmost debug group from the debug groups stack. If the group is successfully popped, OpenGL will automatically log a message with message, id and source matching those of the popped group, type <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">QOpenGLDebugMessage::GroupPopType</a> and severity <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">QOpenGLDebugMessage::NotificationSeverity</a>.</p>
    /// <p>Popping a debug group will restore the message filtering settings of the group that becomes the top of the debug groups stack.</p>
    /// <p><b>Note: </b>The object must be initialized before managing debug groups.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">pushGroup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_group(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_popGroup(
            self as *mut crate::QOpenGLDebugLogger,
        )
    }

    /// <p>Pushes a debug group with name <i>name</i>, id <i>id</i>, and source <i>source</i> onto the debug groups stack. If the group is successfully pushed, OpenGL will automatically log a message with message <i>name</i>, id <i>id</i>, source <i>source</i>, type <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">QOpenGLDebugMessage::GroupPushType</a> and severity <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">QOpenGLDebugMessage::NotificationSeverity</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::pushGroup(const QString& name, GLuint id = …, QOpenGLDebugMessage::Source source = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Pushes a debug group with name <i>name</i>, id <i>id</i>, and source <i>source</i> onto the debug groups stack. If the group is successfully pushed, OpenGL will automatically log a message with message <i>name</i>, id <i>id</i>, source <i>source</i>, type <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">QOpenGLDebugMessage::GroupPushType</a> and severity <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">QOpenGLDebugMessage::NotificationSeverity</a>.</p>
    /// <p>The newly pushed group will inherit the same filtering settings of the group that was on the top of the stack; that is, the filtering will not be changed by pushing a new group.</p>
    /// <p><b>Note: </b>The <i>source</i> must either be <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ApplicationSource</a> or <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ThirdPartySource</a>, otherwise the group will not be pushed.</p><p><b>Note: </b>The object must be initialized before managing debug groups.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>().</p></div>
    #[inline(always)]
    pub unsafe fn push_group_3a(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        id: u32,
        source: crate::q_opengl_debug_message::Source,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_pushGroup(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            id,
            source,
        )
    }

    /// <p>Pushes a debug group with name <i>name</i>, id <i>id</i>, and source <i>source</i> onto the debug groups stack. If the group is successfully pushed, OpenGL will automatically log a message with message <i>name</i>, id <i>id</i>, source <i>source</i>, type <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">QOpenGLDebugMessage::GroupPushType</a> and severity <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">QOpenGLDebugMessage::NotificationSeverity</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::pushGroup(const QString& name, GLuint id = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Pushes a debug group with name <i>name</i>, id <i>id</i>, and source <i>source</i> onto the debug groups stack. If the group is successfully pushed, OpenGL will automatically log a message with message <i>name</i>, id <i>id</i>, source <i>source</i>, type <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">QOpenGLDebugMessage::GroupPushType</a> and severity <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">QOpenGLDebugMessage::NotificationSeverity</a>.</p>
    /// <p>The newly pushed group will inherit the same filtering settings of the group that was on the top of the stack; that is, the filtering will not be changed by pushing a new group.</p>
    /// <p><b>Note: </b>The <i>source</i> must either be <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ApplicationSource</a> or <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ThirdPartySource</a>, otherwise the group will not be pushed.</p><p><b>Note: </b>The object must be initialized before managing debug groups.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>().</p></div>
    #[inline(always)]
    pub unsafe fn push_group_2a(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        id: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_pushGroup1(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            id,
        )
    }

    /// <p>Pushes a debug group with name <i>name</i>, id <i>id</i>, and source <i>source</i> onto the debug groups stack. If the group is successfully pushed, OpenGL will automatically log a message with message <i>name</i>, id <i>id</i>, source <i>source</i>, type <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">QOpenGLDebugMessage::GroupPushType</a> and severity <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">QOpenGLDebugMessage::NotificationSeverity</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLDebugLogger::pushGroup(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#pushGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Pushes a debug group with name <i>name</i>, id <i>id</i>, and source <i>source</i> onto the debug groups stack. If the group is successfully pushed, OpenGL will automatically log a message with message <i>name</i>, id <i>id</i>, source <i>source</i>, type <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Type-enum">QOpenGLDebugMessage::GroupPushType</a> and severity <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Severity-enum">QOpenGLDebugMessage::NotificationSeverity</a>.</p>
    /// <p>The newly pushed group will inherit the same filtering settings of the group that was on the top of the stack; that is, the filtering will not be changed by pushing a new group.</p>
    /// <p><b>Note: </b>The <i>source</i> must either be <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ApplicationSource</a> or <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#Source-enum">QOpenGLDebugMessage::ThirdPartySource</a>, otherwise the group will not be pushed.</p><p><b>Note: </b>The object must be initialized before managing debug groups.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#popGroup">popGroup</a>(), <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#enableMessages">enableMessages</a>(), and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#disableMessages">disableMessages</a>().</p></div>
    #[inline(always)]
    pub unsafe fn push_group_1a(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_pushGroup2(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLDebugLogger::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_qt_metacall(
            self as *mut crate::QOpenGLDebugLogger,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLDebugLogger::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_qt_metacast(
            self as *mut crate::QOpenGLDebugLogger,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Starts logging messages coming from the OpenGL server. When a new message is received, the signal <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">messageLogged</a>() is emitted, carrying the logged message as argument.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QOpenGLDebugLogger::startLogging(QOpenGLDebugLogger::LoggingMode loggingMode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts logging messages coming from the OpenGL server. When a new message is received, the signal <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">messageLogged</a>() is emitted, carrying the logged message as argument.</p>
    /// <p><i>loggingMode</i> specifies whether the logging must be asynchronous (the default) or synchronous.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> will record the values of <code>GL_DEBUG_OUTPUT</code> and <code>GL_DEBUG_OUTPUT_SYNCHRONOUS</code> when logging is started, and set them back when logging is stopped. Moreover, any user-defined OpenGL debug callback installed when this function is invoked will be restored when logging is stopped; <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> will ensure that the pre-existing callback will still be invoked when logging.</p>
    /// <p><b>Note: </b>It's not possible to change the logging mode without stopping and starting logging again. This might change in a future version of Qt.</p><p><b>Note: </b>The object must be initialized before logging can happen.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#stopLogging">stopLogging</a>() and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#initialize">initialize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn start_logging_1a(
        &mut self,
        logging_mode: crate::q_opengl_debug_logger::LoggingMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_startLogging(
            self as *mut crate::QOpenGLDebugLogger,
            logging_mode,
        )
    }

    /// <p>Starts logging messages coming from the OpenGL server. When a new message is received, the signal <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">messageLogged</a>() is emitted, carrying the logged message as argument.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QOpenGLDebugLogger::startLogging()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts logging messages coming from the OpenGL server. When a new message is received, the signal <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#messageLogged">messageLogged</a>() is emitted, carrying the logged message as argument.</p>
    /// <p><i>loggingMode</i> specifies whether the logging must be asynchronous (the default) or synchronous.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> will record the values of <code>GL_DEBUG_OUTPUT</code> and <code>GL_DEBUG_OUTPUT_SYNCHRONOUS</code> when logging is started, and set them back when logging is stopped. Moreover, any user-defined OpenGL debug callback installed when this function is invoked will be restored when logging is stopped; <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html">QOpenGLDebugLogger</a> will ensure that the pre-existing callback will still be invoked when logging.</p>
    /// <p><b>Note: </b>It's not possible to change the logging mode without stopping and starting logging again. This might change in a future version of Qt.</p><p><b>Note: </b>The object must be initialized before logging can happen.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#stopLogging">stopLogging</a>() and <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#initialize">initialize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn start_logging_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_startLogging1(
            self as *mut crate::QOpenGLDebugLogger,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Stops logging messages from the OpenGL server.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QOpenGLDebugLogger::stopLogging()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#stopLogging">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Stops logging messages from the OpenGL server.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#startLogging">startLogging</a>().</p></div>
    #[inline(always)]
    pub unsafe fn stop_logging(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_stopLogging(
            self as *mut crate::QOpenGLDebugLogger,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLDebugLogger::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLDebugLogger::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_opengl_functions {
    //! C++ type: <span style='color: green;'>```QOpenGLFunctions```</span>

    /// <p>This enum defines OpenGL and OpenGL ES features whose presence may depend on the implementation.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLFunctions::OpenGLFeature```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#OpenGLFeature-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines OpenGL and OpenGL ES features whose presence may depend on the implementation.</p>
    ///
    /// <p>The OpenGLFeatures type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;OpenGLFeature&gt;. It stores an OR combination of OpenGLFeature values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct OpenGLFeature(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for OpenGLFeature {
        fn from(value: ::std::os::raw::c_int) -> Self {
            OpenGLFeature(value)
        }
    }

    impl From<OpenGLFeature> for ::std::os::raw::c_int {
        fn from(value: OpenGLFeature) -> Self {
            value.0
        }
    }

    impl OpenGLFeature {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl OpenGLFeature {
        /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glActiveTexture">glActiveTexture</a>() function is available. (C++ enum variant: <span style='color: green;'>```Multitexture = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Multitexture: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(1);
        /// Shader functions are available. (C++ enum variant: <span style='color: green;'>```Shaders = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Shaders: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(2);
        /// Vertex and index buffer functions are available. (C++ enum variant: <span style='color: green;'>```Buffers = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Buffers: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(4);
        /// Framebuffer object functions are available. (C++ enum variant: <span style='color: green;'>```Framebuffers = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Framebuffers: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(8);
        /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendColor">glBlendColor</a>() is available. (C++ enum variant: <span style='color: green;'>```BlendColor = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlendColor: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(16);
        /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendEquation">glBlendEquation</a>() is available. (C++ enum variant: <span style='color: green;'>```BlendEquation = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlendEquation: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(32);
        /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendEquationSeparate">glBlendEquationSeparate</a>() is available. (C++ enum variant: <span style='color: green;'>```BlendEquationSeparate = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlendEquationSeparate: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(64);
        /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendFuncSeparate">glBlendFuncSeparate</a>() is available. (C++ enum variant: <span style='color: green;'>```BlendFuncSeparate = 128```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlendFuncSeparate: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(128);
        /// Blend subtract mode is available. (C++ enum variant: <span style='color: green;'>```BlendSubtract = 256```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlendSubtract: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(256);
        /// Compressed texture functions are available. (C++ enum variant: <span style='color: green;'>```CompressedTextures = 512```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompressedTextures: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(512);
        /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glSampleCoverage">glSampleCoverage</a>() function is available. (C++ enum variant: <span style='color: green;'>```Multisample = 1024```</span>)
        #[allow(non_upper_case_globals)]
        pub const Multisample: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(1024);
        /// Separate stencil functions are available. (C++ enum variant: <span style='color: green;'>```StencilSeparate = 2048```</span>)
        #[allow(non_upper_case_globals)]
        pub const StencilSeparate: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(2048);
        /// Non power of two textures are available. (C++ enum variant: <span style='color: green;'>```NPOTTextures = 4096```</span>)
        #[allow(non_upper_case_globals)]
        pub const NPOTTextures: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(4096);
        /// Non power of two textures can use GL_REPEAT as wrap parameter. (C++ enum variant: <span style='color: green;'>```NPOTTextureRepeat = 8192```</span>)
        #[allow(non_upper_case_globals)]
        pub const NPOTTextureRepeat: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(8192);
        /// The fixed function pipeline is available. (C++ enum variant: <span style='color: green;'>```FixedFunctionPipeline = 16384```</span>)
        #[allow(non_upper_case_globals)]
        pub const FixedFunctionPipeline: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(16384);
        /// The GL_RED and GL_RG texture formats are available. (C++ enum variant: <span style='color: green;'>```TextureRGFormats = 32768```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextureRGFormats: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(32768);
        /// Multiple color attachments to framebuffer objects are available. (C++ enum variant: <span style='color: green;'>```MultipleRenderTargets = 65536```</span>)
        #[allow(non_upper_case_globals)]
        pub const MultipleRenderTargets: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(65536);
        /// Advanced blend equations are available. (C++ enum variant: <span style='color: green;'>```BlendEquationAdvanced = 131072```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlendEquationAdvanced: crate::q_opengl_functions::OpenGLFeature =
            crate::q_opengl_functions::OpenGLFeature(131072);
    }

    impl From<crate::q_opengl_functions::OpenGLFeature>
        for ::qt_core::QFlags<crate::q_opengl_functions::OpenGLFeature>
    {
        fn from(value: crate::q_opengl_functions::OpenGLFeature) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_opengl_functions::OpenGLFeature>>> std::ops::BitOr<T>
        for crate::q_opengl_functions::OpenGLFeature
    {
        type Output = ::qt_core::QFlags<crate::q_opengl_functions::OpenGLFeature>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_opengl_functions::OpenGLFeature> {
            Into::<::qt_core::QFlags<crate::q_opengl_functions::OpenGLFeature>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> class provides cross-platform access to the OpenGL ES 2.0 API.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLFunctions```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> class provides cross-platform access to the OpenGL ES 2.0 API.</p>
/// <p>OpenGL ES 2.0 defines a subset of the OpenGL specification that is common across many desktop and embedded OpenGL implementations. However, it can be difficult to use the functions from that subset because they need to be resolved manually on desktop systems.</p>
/// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> provides a guaranteed API that is available on all OpenGL systems and takes care of function resolution on systems that need it. The recommended way to use <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> is by direct inheritance:</p>
/// <pre class="cpp">
///
///   <span class="keyword">class</span> MyGLWindow : <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></span><span class="operator">,</span> <span class="keyword">protected</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span>
///   {
/// &#32;     Q_OBJECT
///   <span class="keyword">public</span>:
/// &#32;     MyGLWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a></span> <span class="operator">*</span>screen <span class="operator">=</span> <span class="number">0</span>);
///
///   <span class="keyword">protected</span>:
/// &#32;     <span class="type">void</span> initializeGL();
/// &#32;     <span class="type">void</span> paintGL();
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span> <span class="operator">*</span>m_context;
///   };
///
///   MyGLWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a></span> <span class="operator">*</span>screen)
/// &#32;   : <span class="type"><a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></span>(screen)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a></span>(parent)
///   {
/// &#32;     setSurfaceType(OpenGLSurface);
/// &#32;     create();
///
/// &#32;     <span class="comment">// Create an OpenGL context</span>
/// &#32;     m_context <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span>;
/// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>create();
///
/// &#32;     <span class="comment">// Setup scene and render it</span>
/// &#32;     initializeGL();
/// &#32;     paintGL();
///   }
///
///   <span class="type">void</span> MyGLWindow<span class="operator">::</span>initializeGL()
///   {
/// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>makeCurrent(<span class="keyword">this</span>);
/// &#32;     initializeOpenGLFunctions();
///   }
///
/// </pre>
/// <p>The <code>paintGL()</code> function can then use any of the OpenGL ES 2.0 functions without explicit resolution, such as <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glActiveTexture">glActiveTexture</a>() in the following example:</p>
/// <pre class="cpp">
///
///   <span class="type">void</span> MyGLWindow<span class="operator">::</span>paintGL()
///   {
/// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>makeCurrent(<span class="keyword">this</span>);
/// &#32;     glActiveTexture(GL_TEXTURE1);
/// &#32;     glBindTexture(GL_TEXTURE_2D<span class="operator">,</span> textureId);
/// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
/// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>swapBuffers(<span class="keyword">this</span>);
/// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>doneCurrent();
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> can also be used directly for ad-hoc invocation of OpenGL ES 2.0 functions on all platforms:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> glFuncs(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext());
///   glFuncs<span class="operator">.</span>glActiveTexture(GL_TEXTURE1);
///
/// </pre>
/// <p>An alternative approach is to query the context's associated <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instance. This is somewhat faster than the previous approach due to avoiding the creation of a new instance, but the difference is fairly small since the internal data structures are shared, and function resolving happens only once for a given context, regardless of the number of <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instances initialized for it.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> <span class="operator">*</span>glFuncs <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext()<span class="operator">-</span><span class="operator">&gt;</span>functions();
///   glFuncs<span class="operator">-</span><span class="operator">&gt;</span>glActiveTexture(GL_TEXTURE1);
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> provides wrappers for all OpenGL ES 2.0 functions, including the common subset of OpenGL 1.x and ES 2.0. While such functions, for example <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glClear">glClear</a>() or <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDrawArrays">glDrawArrays</a>(), can be called also directly, as long as the application links to the platform-specific OpenGL library, calling them via <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> enables the possibility of dynamically loading the OpenGL implementation.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#hasOpenGLFeature">hasOpenGLFeature</a>() and <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#openGLFeatures">openGLFeatures</a>() functions can be used to determine if the OpenGL implementation has a major OpenGL ES 2.0 feature. For example, the following checks if non power of two textures are available:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> funcs(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext());
///   bool npot <span class="operator">=</span> funcs<span class="operator">.</span>hasOpenGLFeature(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span><span class="operator">::</span>NPOTTextures);
///
/// </pre></div>
#[repr(C)]
pub struct QOpenGLFunctions {
    _unused: u8,
}
impl QOpenGLFunctions {
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> class provides cross-platform access to the OpenGL ES 2.0 API.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFunctions& QOpenGLFunctions::operator=(const QOpenGLFunctions& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> class provides cross-platform access to the OpenGL ES 2.0 API.</p>
    /// <p>OpenGL ES 2.0 defines a subset of the OpenGL specification that is common across many desktop and embedded OpenGL implementations. However, it can be difficult to use the functions from that subset because they need to be resolved manually on desktop systems.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> provides a guaranteed API that is available on all OpenGL systems and takes care of function resolution on systems that need it. The recommended way to use <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> is by direct inheritance:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">class</span> MyGLWindow : <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></span><span class="operator">,</span> <span class="keyword">protected</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span>
    ///   {
    /// &#32;     Q_OBJECT
    ///   <span class="keyword">public</span>:
    /// &#32;     MyGLWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a></span> <span class="operator">*</span>screen <span class="operator">=</span> <span class="number">0</span>);
    ///
    ///   <span class="keyword">protected</span>:
    /// &#32;     <span class="type">void</span> initializeGL();
    /// &#32;     <span class="type">void</span> paintGL();
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span> <span class="operator">*</span>m_context;
    ///   };
    ///
    ///   MyGLWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a></span> <span class="operator">*</span>screen)
    /// &#32;   : <span class="type"><a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></span>(screen)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a></span>(parent)
    ///   {
    /// &#32;     setSurfaceType(OpenGLSurface);
    /// &#32;     create();
    ///
    /// &#32;     <span class="comment">// Create an OpenGL context</span>
    /// &#32;     m_context <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span>;
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>create();
    ///
    /// &#32;     <span class="comment">// Setup scene and render it</span>
    /// &#32;     initializeGL();
    /// &#32;     paintGL();
    ///   }
    ///
    ///   <span class="type">void</span> MyGLWindow<span class="operator">::</span>initializeGL()
    ///   {
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>makeCurrent(<span class="keyword">this</span>);
    /// &#32;     initializeOpenGLFunctions();
    ///   }
    ///
    /// </pre>
    /// <p>The <code>paintGL()</code> function can then use any of the OpenGL ES 2.0 functions without explicit resolution, such as <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glActiveTexture">glActiveTexture</a>() in the following example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> MyGLWindow<span class="operator">::</span>paintGL()
    ///   {
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>makeCurrent(<span class="keyword">this</span>);
    /// &#32;     glActiveTexture(GL_TEXTURE1);
    /// &#32;     glBindTexture(GL_TEXTURE_2D<span class="operator">,</span> textureId);
    /// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>swapBuffers(<span class="keyword">this</span>);
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>doneCurrent();
    ///   }
    ///
    /// </pre>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> can also be used directly for ad-hoc invocation of OpenGL ES 2.0 functions on all platforms:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> glFuncs(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext());
    ///   glFuncs<span class="operator">.</span>glActiveTexture(GL_TEXTURE1);
    ///
    /// </pre>
    /// <p>An alternative approach is to query the context's associated <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instance. This is somewhat faster than the previous approach due to avoiding the creation of a new instance, but the difference is fairly small since the internal data structures are shared, and function resolving happens only once for a given context, regardless of the number of <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instances initialized for it.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> <span class="operator">*</span>glFuncs <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext()<span class="operator">-</span><span class="operator">&gt;</span>functions();
    ///   glFuncs<span class="operator">-</span><span class="operator">&gt;</span>glActiveTexture(GL_TEXTURE1);
    ///
    /// </pre>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> provides wrappers for all OpenGL ES 2.0 functions, including the common subset of OpenGL 1.x and ES 2.0. While such functions, for example <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glClear">glClear</a>() or <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDrawArrays">glDrawArrays</a>(), can be called also directly, as long as the application links to the platform-specific OpenGL library, calling them via <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> enables the possibility of dynamically loading the OpenGL implementation.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#hasOpenGLFeature">hasOpenGLFeature</a>() and <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#openGLFeatures">openGLFeatures</a>() functions can be used to determine if the OpenGL implementation has a major OpenGL ES 2.0 feature. For example, the following checks if non power of two textures are available:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> funcs(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext());
    ///   bool npot <span class="operator">=</span> funcs<span class="operator">.</span>hasOpenGLFeature(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span><span class="operator">::</span>NPOTTextures);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLFunctions>>,
    ) -> ::cpp_core::MutRef<crate::QOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_operator_(
            self as *mut crate::QOpenGLFunctions,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLFunctions>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Convenience function that calls glActiveTexture(<i>texture</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glActiveTexture(unsigned int texture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glActiveTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glActiveTexture(<i>texture</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glActiveTexture.xml">glActiveTexture()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_active_texture(&mut self, texture: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glActiveTexture(
            self as *mut crate::QOpenGLFunctions,
            texture,
        )
    }

    /// <p>Convenience function that calls glAttachShader(<i>program</i>, <i>shader</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glAttachShader(GLuint program, GLuint shader)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glAttachShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glAttachShader(<i>program</i>, <i>shader</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glAttachShader.xml">glAttachShader()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_attach_shader(&mut self, program: u32, shader: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glAttachShader(
            self as *mut crate::QOpenGLFunctions,
            program,
            shader,
        )
    }

    /// <p>Convenience function that calls glBindAttribLocation(<i>program</i>, <i>index</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBindAttribLocation(GLuint program, GLuint index, const char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBindAttribLocation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindAttribLocation(<i>program</i>, <i>index</i>, <i>name</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBindAttribLocation.xml">glBindAttribLocation()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_attrib_location(
        &mut self,
        program: u32,
        index: u32,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBindAttribLocation(
            self as *mut crate::QOpenGLFunctions,
            program,
            index,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glBindBuffer(<i>target</i>, <i>buffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBindBuffer(unsigned int target, GLuint buffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBindBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindBuffer(<i>target</i>, <i>buffer</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBindBuffer.xml">glBindBuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_buffer(&mut self, target: ::std::os::raw::c_uint, buffer: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBindBuffer(
            self as *mut crate::QOpenGLFunctions,
            target,
            buffer,
        )
    }

    /// <p>Convenience function that calls glBindFramebuffer(<i>target</i>, <i>framebuffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBindFramebuffer(unsigned int target, GLuint framebuffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBindFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindFramebuffer(<i>target</i>, <i>framebuffer</i>).</p>
    /// <p>Note that Qt will translate a <i>framebuffer</i> argument of 0 to the currently bound <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>'s defaultFramebufferObject().</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBindFramebuffer.xml">glBindFramebuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_framebuffer(&mut self, target: ::std::os::raw::c_uint, framebuffer: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBindFramebuffer(
            self as *mut crate::QOpenGLFunctions,
            target,
            framebuffer,
        )
    }

    /// <p>Convenience function that calls glBindRenderbuffer(<i>target</i>, <i>renderbuffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBindRenderbuffer(unsigned int target, GLuint renderbuffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBindRenderbuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindRenderbuffer(<i>target</i>, <i>renderbuffer</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBindRenderbuffer.xml">glBindRenderbuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_renderbuffer(
        &mut self,
        target: ::std::os::raw::c_uint,
        renderbuffer: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBindRenderbuffer(
            self as *mut crate::QOpenGLFunctions,
            target,
            renderbuffer,
        )
    }

    /// <p>Convenience function that calls glBindTexture(<i>target</i>, <i>texture</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBindTexture(unsigned int target, GLuint texture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBindTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindTexture(<i>target</i>, <i>texture</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBindTexture.xml">glBindTexture()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_texture(&mut self, target: ::std::os::raw::c_uint, texture: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBindTexture(
            self as *mut crate::QOpenGLFunctions,
            target,
            texture,
        )
    }

    /// <p>Convenience function that calls glBlendColor(<i>red</i>, <i>green</i>, <i>blue</i>, <i>alpha</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBlendColor(float red, float green, float blue, float alpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendColor(<i>red</i>, <i>green</i>, <i>blue</i>, <i>alpha</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBlendColor.xml">glBlendColor()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_blend_color(
        &mut self,
        red: ::std::os::raw::c_float,
        green: ::std::os::raw::c_float,
        blue: ::std::os::raw::c_float,
        alpha: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBlendColor(
            self as *mut crate::QOpenGLFunctions,
            red,
            green,
            blue,
            alpha,
        )
    }

    /// <p>Convenience function that calls glBlendEquation(<i>mode</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBlendEquation(unsigned int mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendEquation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendEquation(<i>mode</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBlendEquation.xml">glBlendEquation()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_blend_equation(&mut self, mode: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBlendEquation(
            self as *mut crate::QOpenGLFunctions,
            mode,
        )
    }

    /// <p>Convenience function that calls glBlendEquationSeparate(<i>modeRGB</i>, <i>modeAlpha</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBlendEquationSeparate(unsigned int modeRGB, unsigned int modeAlpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendEquationSeparate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendEquationSeparate(<i>modeRGB</i>, <i>modeAlpha</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBlendEquationSeparate.xml">glBlendEquationSeparate()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_blend_equation_separate(
        &mut self,
        mode_r_g_b: ::std::os::raw::c_uint,
        mode_alpha: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBlendEquationSeparate(
            self as *mut crate::QOpenGLFunctions,
            mode_r_g_b,
            mode_alpha,
        )
    }

    /// <p>Convenience function that calls glBlendFunc(<i>sfactor</i>, <i>dfactor</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBlendFunc(unsigned int sfactor, unsigned int dfactor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendFunc">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendFunc(<i>sfactor</i>, <i>dfactor</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBlendFunc.xml">glBlendFunc()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_blend_func(
        &mut self,
        sfactor: ::std::os::raw::c_uint,
        dfactor: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBlendFunc(
            self as *mut crate::QOpenGLFunctions,
            sfactor,
            dfactor,
        )
    }

    /// <p>Convenience function that calls glBlendFuncSeparate(<i>srcRGB</i>, <i>dstRGB</i>, <i>srcAlpha</i>, <i>dstAlpha</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBlendFuncSeparate(unsigned int srcRGB, unsigned int dstRGB, unsigned int srcAlpha, unsigned int dstAlpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBlendFuncSeparate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendFuncSeparate(<i>srcRGB</i>, <i>dstRGB</i>, <i>srcAlpha</i>, <i>dstAlpha</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBlendFuncSeparate.xml">glBlendFuncSeparate()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_blend_func_separate(
        &mut self,
        src_r_g_b: ::std::os::raw::c_uint,
        dst_r_g_b: ::std::os::raw::c_uint,
        src_alpha: ::std::os::raw::c_uint,
        dst_alpha: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBlendFuncSeparate(
            self as *mut crate::QOpenGLFunctions,
            src_r_g_b,
            dst_r_g_b,
            src_alpha,
            dst_alpha,
        )
    }

    /// <p>Convenience function that calls glBufferData(<i>target</i>, <i>size</i>, <i>data</i>, <i>usage</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBufferData(unsigned int target, long size, const void* data, unsigned int usage)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBufferData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBufferData(<i>target</i>, <i>size</i>, <i>data</i>, <i>usage</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBufferData.xml">glBufferData()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_buffer_data(
        &mut self,
        target: ::std::os::raw::c_uint,
        size: ::std::os::raw::c_long,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        usage: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBufferData(
            self as *mut crate::QOpenGLFunctions,
            target,
            size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            usage,
        )
    }

    /// <p>Convenience function that calls glBufferSubData(<i>target</i>, <i>offset</i>, <i>size</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glBufferSubData(unsigned int target, long offset, long size, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glBufferSubData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBufferSubData(<i>target</i>, <i>offset</i>, <i>size</i>, <i>data</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glBufferSubData.xml">glBufferSubData()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_buffer_sub_data(
        &mut self,
        target: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_long,
        size: ::std::os::raw::c_long,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glBufferSubData(
            self as *mut crate::QOpenGLFunctions,
            target,
            offset,
            size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glCheckFramebufferStatus(<i>target</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QOpenGLFunctions::glCheckFramebufferStatus(unsigned int target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCheckFramebufferStatus">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCheckFramebufferStatus(<i>target</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCheckFramebufferStatus.xml">glCheckFramebufferStatus()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_check_framebuffer_status(
        &mut self,
        target: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCheckFramebufferStatus(
            self as *mut crate::QOpenGLFunctions,
            target,
        )
    }

    /// <p>Convenience function that calls glClear(<i>mask</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glClear(unsigned int mask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glClear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glClear(<i>mask</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glClear.xml">glClear()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_clear(&mut self, mask: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glClear(
            self as *mut crate::QOpenGLFunctions,
            mask,
        )
    }

    /// <p>Convenience function that calls glClearColor(<i>red</i>, <i>green</i>, <i>blue</i>, <i>alpha</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glClearColor(float red, float green, float blue, float alpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glClearColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glClearColor(<i>red</i>, <i>green</i>, <i>blue</i>, <i>alpha</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glClearColor.xml">glClearColor()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_clear_color(
        &mut self,
        red: ::std::os::raw::c_float,
        green: ::std::os::raw::c_float,
        blue: ::std::os::raw::c_float,
        alpha: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glClearColor(
            self as *mut crate::QOpenGLFunctions,
            red,
            green,
            blue,
            alpha,
        )
    }

    /// <p>Convenience function that calls glClearDepth(<i>depth</i>) on desktop OpenGL systems and glClearDepthf(<i>depth</i>) on embedded OpenGL ES systems.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glClearDepthf(float depth)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glClearDepthf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glClearDepth(<i>depth</i>) on desktop OpenGL systems and glClearDepthf(<i>depth</i>) on embedded OpenGL ES systems.</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glClearDepthf.xml">glClearDepthf()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_clear_depthf(&mut self, depth: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glClearDepthf(
            self as *mut crate::QOpenGLFunctions,
            depth,
        )
    }

    /// <p>Convenience function that calls glClearStencil(<i>s</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glClearStencil(GLint s)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glClearStencil">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glClearStencil(<i>s</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glClearStencil.xml">glClearStencil()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_clear_stencil(&mut self, s: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glClearStencil(
            self as *mut crate::QOpenGLFunctions,
            s,
        )
    }

    /// <p>Convenience function that calls glColorMask(<i>red</i>, <i>green</i>, <i>blue</i>, <i>alpha</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glColorMask(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glColorMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glColorMask(<i>red</i>, <i>green</i>, <i>blue</i>, <i>alpha</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glColorMask.xml">glColorMask()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_color_mask(
        &mut self,
        red: ::std::os::raw::c_uchar,
        green: ::std::os::raw::c_uchar,
        blue: ::std::os::raw::c_uchar,
        alpha: ::std::os::raw::c_uchar,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glColorMask(
            self as *mut crate::QOpenGLFunctions,
            red,
            green,
            blue,
            alpha,
        )
    }

    /// <p>Convenience function that calls glCompileShader(<i>shader</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glCompileShader(GLuint shader)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCompileShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCompileShader(<i>shader</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCompileShader.xml">glCompileShader()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_compile_shader(&mut self, shader: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCompileShader(
            self as *mut crate::QOpenGLFunctions,
            shader,
        )
    }

    /// <p>Convenience function that calls glCompressedTexImage2D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>border</i>, <i>imageSize</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glCompressedTexImage2D(unsigned int target, GLint level, unsigned int internalformat, int width, int height, GLint border, int imageSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCompressedTexImage2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCompressedTexImage2D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>border</i>, <i>imageSize</i>, <i>data</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCompressedTexImage2D.xml">glCompressedTexImage2D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_compressed_tex_image_2d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        internalformat: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        border: i32,
        image_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCompressedTexImage2D(
            self as *mut crate::QOpenGLFunctions,
            target,
            level,
            internalformat,
            width,
            height,
            border,
            image_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glCompressedTexSubImage2D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>width</i>, <i>height</i>, <i>format</i>, <i>imageSize</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glCompressedTexSubImage2D(unsigned int target, GLint level, GLint xoffset, GLint yoffset, int width, int height, unsigned int format, int imageSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCompressedTexSubImage2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCompressedTexSubImage2D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>width</i>, <i>height</i>, <i>format</i>, <i>imageSize</i>, <i>data</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCompressedTexSubImage2D.xml">glCompressedTexSubImage2D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_compressed_tex_sub_image_2d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_uint,
        image_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCompressedTexSubImage2D(
            self as *mut crate::QOpenGLFunctions,
            target,
            level,
            xoffset,
            yoffset,
            width,
            height,
            format,
            image_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glCopyTexImage2D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>, <i>border</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glCopyTexImage2D(unsigned int target, GLint level, unsigned int internalformat, GLint x, GLint y, int width, int height, GLint border)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCopyTexImage2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCopyTexImage2D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>, <i>border</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCopyTexImage2D.xml">glCopyTexImage2D()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_copy_tex_image_2d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        internalformat: ::std::os::raw::c_uint,
        x: i32,
        y: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        border: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCopyTexImage2D(
            self as *mut crate::QOpenGLFunctions,
            target,
            level,
            internalformat,
            x,
            y,
            width,
            height,
            border,
        )
    }

    /// <p>Convenience function that calls glCopyTexSubImage2D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glCopyTexSubImage2D(unsigned int target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCopyTexSubImage2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCopyTexSubImage2D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCopyTexSubImage2D.xml">glCopyTexSubImage2D()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_copy_tex_sub_image_2d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        x: i32,
        y: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCopyTexSubImage2D(
            self as *mut crate::QOpenGLFunctions,
            target,
            level,
            xoffset,
            yoffset,
            x,
            y,
            width,
            height,
        )
    }

    /// <p>Convenience function that calls glCreateProgram().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLFunctions::glCreateProgram()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCreateProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCreateProgram().</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCreateProgram.xml">glCreateProgram()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_create_program(&mut self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCreateProgram(
            self as *mut crate::QOpenGLFunctions,
        )
    }

    /// <p>Convenience function that calls glCreateShader(<i>type</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLFunctions::glCreateShader(unsigned int type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCreateShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCreateShader(<i>type</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCreateShader.xml">glCreateShader()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_create_shader(&mut self, type_: ::std::os::raw::c_uint) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCreateShader(
            self as *mut crate::QOpenGLFunctions,
            type_,
        )
    }

    /// <p>Convenience function that calls glCullFace(<i>mode</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glCullFace(unsigned int mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glCullFace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCullFace(<i>mode</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glCullFace.xml">glCullFace()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_cull_face(&mut self, mode: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glCullFace(
            self as *mut crate::QOpenGLFunctions,
            mode,
        )
    }

    /// <p>Convenience function that calls glDeleteBuffers(<i>n</i>, <i>buffers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDeleteBuffers(int n, const GLuint* buffers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDeleteBuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteBuffers(<i>n</i>, <i>buffers</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDeleteBuffers.xml">glDeleteBuffers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_buffers(
        &mut self,
        n: ::std::os::raw::c_int,
        buffers: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDeleteBuffers(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(buffers).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDeleteFramebuffers(<i>n</i>, <i>framebuffers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDeleteFramebuffers(int n, const GLuint* framebuffers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDeleteFramebuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteFramebuffers(<i>n</i>, <i>framebuffers</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDeleteFramebuffers.xml">glDeleteFramebuffers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_framebuffers(
        &mut self,
        n: ::std::os::raw::c_int,
        framebuffers: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDeleteFramebuffers(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(framebuffers).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDeleteProgram(<i>program</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDeleteProgram(GLuint program)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDeleteProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteProgram(<i>program</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDeleteProgram.xml">glDeleteProgram()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_program(&mut self, program: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDeleteProgram(
            self as *mut crate::QOpenGLFunctions,
            program,
        )
    }

    /// <p>Convenience function that calls glDeleteRenderbuffers(<i>n</i>, <i>renderbuffers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDeleteRenderbuffers(int n, const GLuint* renderbuffers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDeleteRenderbuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteRenderbuffers(<i>n</i>, <i>renderbuffers</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDeleteRenderbuffers.xml">glDeleteRenderbuffers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_renderbuffers(
        &mut self,
        n: ::std::os::raw::c_int,
        renderbuffers: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDeleteRenderbuffers(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(renderbuffers).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDeleteShader(<i>shader</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDeleteShader(GLuint shader)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDeleteShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteShader(<i>shader</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDeleteShader.xml">glDeleteShader()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_shader(&mut self, shader: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDeleteShader(
            self as *mut crate::QOpenGLFunctions,
            shader,
        )
    }

    /// <p>Convenience function that calls glDeleteTextures(<i>n</i>, <i>textures</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDeleteTextures(int n, const GLuint* textures)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDeleteTextures">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteTextures(<i>n</i>, <i>textures</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDeleteTextures.xml">glDeleteTextures()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_textures(
        &mut self,
        n: ::std::os::raw::c_int,
        textures: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDeleteTextures(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(textures).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDepthFunc(<i>func</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDepthFunc(unsigned int func)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDepthFunc">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDepthFunc(<i>func</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDepthFunc.xml">glDepthFunc()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_depth_func(&mut self, func: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDepthFunc(
            self as *mut crate::QOpenGLFunctions,
            func,
        )
    }

    /// <p>Convenience function that calls glDepthMask(<i>flag</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDepthMask(unsigned char flag)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDepthMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDepthMask(<i>flag</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDepthMask.xml">glDepthMask()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_depth_mask(&mut self, flag: ::std::os::raw::c_uchar) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDepthMask(
            self as *mut crate::QOpenGLFunctions,
            flag,
        )
    }

    /// <p>Convenience function that calls glDepthRange(<i>zNear</i>, <i>zFar</i>) on desktop OpenGL systems and glDepthRangef(<i>zNear</i>, <i>zFar</i>) on embedded OpenGL ES systems.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDepthRangef(float zNear, float zFar)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDepthRangef">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDepthRange(<i>zNear</i>, <i>zFar</i>) on desktop OpenGL systems and glDepthRangef(<i>zNear</i>, <i>zFar</i>) on embedded OpenGL ES systems.</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDepthRangef.xml">glDepthRangef()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_depth_rangef(
        &mut self,
        z_near: ::std::os::raw::c_float,
        z_far: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDepthRangef(
            self as *mut crate::QOpenGLFunctions,
            z_near,
            z_far,
        )
    }

    /// <p>Convenience function that calls glDetachShader(<i>program</i>, <i>shader</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDetachShader(GLuint program, GLuint shader)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDetachShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDetachShader(<i>program</i>, <i>shader</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDetachShader.xml">glDetachShader()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_detach_shader(&mut self, program: u32, shader: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDetachShader(
            self as *mut crate::QOpenGLFunctions,
            program,
            shader,
        )
    }

    /// <p>Convenience function that calls glDisable(<i>cap</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDisable(unsigned int cap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDisable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDisable(<i>cap</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDisable.xml">glDisable()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_disable(&mut self, cap: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDisable(
            self as *mut crate::QOpenGLFunctions,
            cap,
        )
    }

    /// <p>Convenience function that calls glDisableVertexAttribArray(<i>index</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDisableVertexAttribArray(GLuint index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDisableVertexAttribArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDisableVertexAttribArray(<i>index</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDisableVertexAttribArray.xml">glDisableVertexAttribArray()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_disable_vertex_attrib_array(&mut self, index: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDisableVertexAttribArray(
            self as *mut crate::QOpenGLFunctions,
            index,
        )
    }

    /// <p>Convenience function that calls glDrawArrays(<i>mode</i>, <i>first</i>, <i>count</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDrawArrays(unsigned int mode, GLint first, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDrawArrays">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawArrays(<i>mode</i>, <i>first</i>, <i>count</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDrawArrays.xml">glDrawArrays()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_draw_arrays(
        &mut self,
        mode: ::std::os::raw::c_uint,
        first: i32,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDrawArrays(
            self as *mut crate::QOpenGLFunctions,
            mode,
            first,
            count,
        )
    }

    /// <p>Convenience function that calls glDrawElements(<i>mode</i>, <i>count</i>, <i>type</i>, <i>indices</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glDrawElements(unsigned int mode, int count, unsigned int type, const void* indices)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDrawElements">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawElements(<i>mode</i>, <i>count</i>, <i>type</i>, <i>indices</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glDrawElements.xml">glDrawElements()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_draw_elements(
        &mut self,
        mode: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        indices: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glDrawElements(
            self as *mut crate::QOpenGLFunctions,
            mode,
            count,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(indices)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glEnable(<i>cap</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glEnable(unsigned int cap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glEnable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glEnable(<i>cap</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glEnable.xml">glEnable()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_enable(&mut self, cap: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glEnable(
            self as *mut crate::QOpenGLFunctions,
            cap,
        )
    }

    /// <p>Convenience function that calls glEnableVertexAttribArray(<i>index</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glEnableVertexAttribArray(GLuint index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glEnableVertexAttribArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glEnableVertexAttribArray(<i>index</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glEnableVertexAttribArray.xml">glEnableVertexAttribArray()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_enable_vertex_attrib_array(&mut self, index: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glEnableVertexAttribArray(
            self as *mut crate::QOpenGLFunctions,
            index,
        )
    }

    /// <p>Convenience function that calls glFinish().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glFinish()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glFinish">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFinish().</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glFinish.xml">glFinish()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_finish(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glFinish(self as *mut crate::QOpenGLFunctions)
    }

    /// <p>Convenience function that calls glFlush().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glFlush()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glFlush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFlush().</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glFlush.xml">glFlush()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_flush(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glFlush(self as *mut crate::QOpenGLFunctions)
    }

    /// <p>Convenience function that calls glFramebufferRenderbuffer(<i>target</i>, <i>attachment</i>, <i>renderbuffertarget</i>, <i>renderbuffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glFramebufferRenderbuffer(unsigned int target, unsigned int attachment, unsigned int renderbuffertarget, GLuint renderbuffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glFramebufferRenderbuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFramebufferRenderbuffer(<i>target</i>, <i>attachment</i>, <i>renderbuffertarget</i>, <i>renderbuffer</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glFramebufferRenderbuffer.xml">glFramebufferRenderbuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_framebuffer_renderbuffer(
        &mut self,
        target: ::std::os::raw::c_uint,
        attachment: ::std::os::raw::c_uint,
        renderbuffertarget: ::std::os::raw::c_uint,
        renderbuffer: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glFramebufferRenderbuffer(
            self as *mut crate::QOpenGLFunctions,
            target,
            attachment,
            renderbuffertarget,
            renderbuffer,
        )
    }

    /// <p>Convenience function that calls glFramebufferTexture2D(<i>target</i>, <i>attachment</i>, <i>textarget</i>, <i>texture</i>, <i>level</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glFramebufferTexture2D(unsigned int target, unsigned int attachment, unsigned int textarget, GLuint texture, GLint level)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glFramebufferTexture2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFramebufferTexture2D(<i>target</i>, <i>attachment</i>, <i>textarget</i>, <i>texture</i>, <i>level</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glFramebufferTexture2D.xml">glFramebufferTexture2D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_framebuffer_texture_2d(
        &mut self,
        target: ::std::os::raw::c_uint,
        attachment: ::std::os::raw::c_uint,
        textarget: ::std::os::raw::c_uint,
        texture: u32,
        level: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glFramebufferTexture2D(
            self as *mut crate::QOpenGLFunctions,
            target,
            attachment,
            textarget,
            texture,
            level,
        )
    }

    /// <p>Convenience function that calls glFrontFace(<i>mode</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glFrontFace(unsigned int mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glFrontFace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFrontFace(<i>mode</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glFrontFace.xml">glFrontFace()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_front_face(&mut self, mode: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glFrontFace(
            self as *mut crate::QOpenGLFunctions,
            mode,
        )
    }

    /// <p>Convenience function that calls glGenBuffers(<i>n</i>, <i>buffers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGenBuffers(int n, GLuint* buffers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGenBuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenBuffers(<i>n</i>, <i>buffers</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGenBuffers.xml">glGenBuffers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_buffers(
        &mut self,
        n: ::std::os::raw::c_int,
        buffers: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGenBuffers(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(buffers).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGenFramebuffers(<i>n</i>, <i>framebuffers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGenFramebuffers(int n, GLuint* framebuffers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGenFramebuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenFramebuffers(<i>n</i>, <i>framebuffers</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGenFramebuffers.xml">glGenFramebuffers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_framebuffers(
        &mut self,
        n: ::std::os::raw::c_int,
        framebuffers: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGenFramebuffers(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(framebuffers)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGenRenderbuffers(<i>n</i>, <i>renderbuffers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGenRenderbuffers(int n, GLuint* renderbuffers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGenRenderbuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenRenderbuffers(<i>n</i>, <i>renderbuffers</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGenRenderbuffers.xml">glGenRenderbuffers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_renderbuffers(
        &mut self,
        n: ::std::os::raw::c_int,
        renderbuffers: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGenRenderbuffers(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(renderbuffers)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGenTextures(<i>n</i>, <i>textures</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGenTextures(int n, GLuint* textures)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGenTextures">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenTextures(<i>n</i>, <i>textures</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGenTextures.xml">glGenTextures()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_textures(
        &mut self,
        n: ::std::os::raw::c_int,
        textures: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGenTextures(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(textures).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGenerateMipmap(<i>target</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGenerateMipmap(unsigned int target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGenerateMipmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenerateMipmap(<i>target</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGenerateMipmap.xml">glGenerateMipmap()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_generate_mipmap(&mut self, target: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGenerateMipmap(
            self as *mut crate::QOpenGLFunctions,
            target,
        )
    }

    /// <p>Convenience function that calls glGetActiveAttrib(<i>program</i>, <i>index</i>, <i>bufsize</i>, <i>length</i>, <i>size</i>, <i>type</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetActiveAttrib(GLuint program, GLuint index, int bufsize, int* length, GLint* size, unsigned int* type, char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetActiveAttrib">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetActiveAttrib(<i>program</i>, <i>index</i>, <i>bufsize</i>, <i>length</i>, <i>size</i>, <i>type</i>, <i>name</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetActiveAttrib.xml">glGetActiveAttrib()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_active_attrib(
        &mut self,
        program: u32,
        index: u32,
        bufsize: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        size: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
        type_: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uint>>,
        name: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetActiveAttrib(
            self as *mut crate::QOpenGLFunctions,
            program,
            index,
            bufsize,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(size).as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uint>>::cast_into(type_)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(name)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetActiveUniform(<i>program</i>, <i>index</i>, <i>bufsize</i>, <i>length</i>, <i>size</i>, <i>type</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetActiveUniform(GLuint program, GLuint index, int bufsize, int* length, GLint* size, unsigned int* type, char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetActiveUniform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetActiveUniform(<i>program</i>, <i>index</i>, <i>bufsize</i>, <i>length</i>, <i>size</i>, <i>type</i>, <i>name</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetActiveUniform.xml">glGetActiveUniform()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_active_uniform(
        &mut self,
        program: u32,
        index: u32,
        bufsize: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        size: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
        type_: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uint>>,
        name: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetActiveUniform(
            self as *mut crate::QOpenGLFunctions,
            program,
            index,
            bufsize,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(size).as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uint>>::cast_into(type_)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(name)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetAttachedShaders(<i>program</i>, <i>maxcount</i>, <i>count</i>, <i>shaders</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetAttachedShaders(GLuint program, int maxcount, int* count, GLuint* shaders)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetAttachedShaders">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetAttachedShaders(<i>program</i>, <i>maxcount</i>, <i>count</i>, <i>shaders</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetAttachedShaders.xml">glGetAttachedShaders()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_attached_shaders(
        &mut self,
        program: u32,
        maxcount: ::std::os::raw::c_int,
        count: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        shaders: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetAttachedShaders(
            self as *mut crate::QOpenGLFunctions,
            program,
            maxcount,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(count)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(shaders).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetAttribLocation(<i>program</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLint QOpenGLFunctions::glGetAttribLocation(GLuint program, const char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetAttribLocation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetAttribLocation(<i>program</i>, <i>name</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetAttribLocation.xml">glGetAttribLocation()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_attrib_location(
        &mut self,
        program: u32,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> i32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetAttribLocation(
            self as *mut crate::QOpenGLFunctions,
            program,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetBooleanv(<i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetBooleanv(unsigned int pname, unsigned char* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetBooleanv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetBooleanv(<i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetBooleanv.xml">glGetBooleanv()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_booleanv(
        &mut self,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uchar>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetBooleanv(
            self as *mut crate::QOpenGLFunctions,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uchar>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetBufferParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetBufferParameteriv(unsigned int target, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetBufferParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetBufferParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetBufferParameteriv.xml">glGetBufferParameteriv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_buffer_parameteriv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetBufferParameteriv(
            self as *mut crate::QOpenGLFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetError().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QOpenGLFunctions::glGetError()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetError">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetError().</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetError.xml">glGetError()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_error(&mut self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetError(
            self as *mut crate::QOpenGLFunctions,
        )
    }

    /// <p>Convenience function that calls glGetFloatv(<i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetFloatv(unsigned int pname, float* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetFloatv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetFloatv(<i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetFloatv.xml">glGetFloatv()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_floatv(
        &mut self,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetFloatv(
            self as *mut crate::QOpenGLFunctions,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetFramebufferAttachmentParameteriv(<i>target</i>, <i>attachment</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetFramebufferAttachmentParameteriv(unsigned int target, unsigned int attachment, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetFramebufferAttachmentParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetFramebufferAttachmentParameteriv(<i>target</i>, <i>attachment</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetFramebufferAttachmentParameteriv.xml">glGetFramebufferAttachmentParameteriv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_framebuffer_attachment_parameteriv(
        &mut self,
        target: ::std::os::raw::c_uint,
        attachment: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetFramebufferAttachmentParameteriv(
            self as *mut crate::QOpenGLFunctions,
            target,
            attachment,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetIntegerv(<i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetIntegerv(unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetIntegerv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetIntegerv(<i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetIntegerv.xml">glGetIntegerv()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_integerv(
        &mut self,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetIntegerv(
            self as *mut crate::QOpenGLFunctions,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramInfoLog(<i>program</i>, <i>bufsize</i>, <i>length</i>, <i>infolog</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetProgramInfoLog(GLuint program, int bufsize, int* length, char* infolog)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetProgramInfoLog">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramInfoLog(<i>program</i>, <i>bufsize</i>, <i>length</i>, <i>infolog</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetProgramInfoLog.xml">glGetProgramInfoLog()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_info_log(
        &mut self,
        program: u32,
        bufsize: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        infolog: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetProgramInfoLog(
            self as *mut crate::QOpenGLFunctions,
            program,
            bufsize,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(infolog)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramiv(<i>program</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetProgramiv(GLuint program, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetProgramiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramiv(<i>program</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetProgramiv.xml">glGetProgramiv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_programiv(
        &mut self,
        program: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetProgramiv(
            self as *mut crate::QOpenGLFunctions,
            program,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetRenderbufferParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetRenderbufferParameteriv(unsigned int target, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetRenderbufferParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetRenderbufferParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetRenderbufferParameteriv.xml">glGetRenderbufferParameteriv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_renderbuffer_parameteriv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetRenderbufferParameteriv(
            self as *mut crate::QOpenGLFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetShaderInfoLog(<i>shader</i>, <i>bufsize</i>, <i>length</i>, <i>infolog</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetShaderInfoLog(GLuint shader, int bufsize, int* length, char* infolog)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetShaderInfoLog">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetShaderInfoLog(<i>shader</i>, <i>bufsize</i>, <i>length</i>, <i>infolog</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetShaderInfoLog.xml">glGetShaderInfoLog()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_shader_info_log(
        &mut self,
        shader: u32,
        bufsize: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        infolog: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetShaderInfoLog(
            self as *mut crate::QOpenGLFunctions,
            shader,
            bufsize,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(infolog)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetShaderPrecisionFormat(<i>shadertype</i>, <i>precisiontype</i>, <i>range</i>, <i>precision</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetShaderPrecisionFormat(unsigned int shadertype, unsigned int precisiontype, GLint* range, GLint* precision)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetShaderPrecisionFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetShaderPrecisionFormat(<i>shadertype</i>, <i>precisiontype</i>, <i>range</i>, <i>precision</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetShaderPrecisionFormat.xml">glGetShaderPrecisionFormat()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_shader_precision_format(
        &mut self,
        shadertype: ::std::os::raw::c_uint,
        precisiontype: ::std::os::raw::c_uint,
        range: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
        precision: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetShaderPrecisionFormat(
            self as *mut crate::QOpenGLFunctions,
            shadertype,
            precisiontype,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(range).as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(precision).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetShaderSource(<i>shader</i>, <i>bufsize</i>, <i>length</i>, <i>source</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetShaderSource(GLuint shader, int bufsize, int* length, char* source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetShaderSource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetShaderSource(<i>shader</i>, <i>bufsize</i>, <i>length</i>, <i>source</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetShaderSource.xml">glGetShaderSource()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_shader_source(
        &mut self,
        shader: u32,
        bufsize: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetShaderSource(
            self as *mut crate::QOpenGLFunctions,
            shader,
            bufsize,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(source)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetShaderiv(<i>shader</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetShaderiv(GLuint shader, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetShaderiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetShaderiv(<i>shader</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetShaderiv.xml">glGetShaderiv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_shaderiv(
        &mut self,
        shader: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetShaderiv(
            self as *mut crate::QOpenGLFunctions,
            shader,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetString(<i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLubyte* QOpenGLFunctions::glGetString(unsigned int name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetString">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetString(<i>name</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetString.xml">glGetString()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_string(&mut self, name: ::std::os::raw::c_uint) -> ::cpp_core::Ptr<u8> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetString(
            self as *mut crate::QOpenGLFunctions,
            name,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Convenience function that calls glGetTexParameterfv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetTexParameterfv(unsigned int target, unsigned int pname, float* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetTexParameterfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetTexParameterfv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetTexParameterfv.xml">glGetTexParameterfv()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_tex_parameterfv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetTexParameterfv(
            self as *mut crate::QOpenGLFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetTexParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetTexParameteriv(unsigned int target, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetTexParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetTexParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetTexParameteriv.xml">glGetTexParameteriv()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_tex_parameteriv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetTexParameteriv(
            self as *mut crate::QOpenGLFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetUniformLocation(<i>program</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLint QOpenGLFunctions::glGetUniformLocation(GLuint program, const char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetUniformLocation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetUniformLocation(<i>program</i>, <i>name</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetUniformLocation.xml">glGetUniformLocation()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_uniform_location(
        &mut self,
        program: u32,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> i32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetUniformLocation(
            self as *mut crate::QOpenGLFunctions,
            program,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetUniformfv(<i>program</i>, <i>location</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetUniformfv(GLuint program, GLint location, float* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetUniformfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetUniformfv(<i>program</i>, <i>location</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetUniformfv.xml">glGetUniformfv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_uniformfv(
        &mut self,
        program: u32,
        location: i32,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetUniformfv(
            self as *mut crate::QOpenGLFunctions,
            program,
            location,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetUniformiv(<i>program</i>, <i>location</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetUniformiv(GLuint program, GLint location, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetUniformiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetUniformiv(<i>program</i>, <i>location</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetUniformiv.xml">glGetUniformiv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_uniformiv(
        &mut self,
        program: u32,
        location: i32,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetUniformiv(
            self as *mut crate::QOpenGLFunctions,
            program,
            location,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetVertexAttribPointerv(<i>index</i>, <i>pname</i>, <i>pointer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetVertexAttribPointerv(GLuint index, unsigned int pname, void** pointer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetVertexAttribPointerv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetVertexAttribPointerv(<i>index</i>, <i>pname</i>, <i>pointer</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribPointerv.xml">glGetVertexAttribPointerv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_vertex_attrib_pointerv(
        &mut self,
        index: u32,
        pname: ::std::os::raw::c_uint,
        pointer: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetVertexAttribPointerv(
            self as *mut crate::QOpenGLFunctions,
            index,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(pointer)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetVertexAttribfv(<i>index</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetVertexAttribfv(GLuint index, unsigned int pname, float* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetVertexAttribfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetVertexAttribfv(<i>index</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribfv.xml">glGetVertexAttribfv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_vertex_attribfv(
        &mut self,
        index: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetVertexAttribfv(
            self as *mut crate::QOpenGLFunctions,
            index,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetVertexAttribiv(<i>index</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glGetVertexAttribiv(GLuint index, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glGetVertexAttribiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetVertexAttribiv(<i>index</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glGetVertexAttribiv.xml">glGetVertexAttribiv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_vertex_attribiv(
        &mut self,
        index: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glGetVertexAttribiv(
            self as *mut crate::QOpenGLFunctions,
            index,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glHint(<i>target</i>, <i>mode</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glHint(unsigned int target, unsigned int mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glHint(<i>target</i>, <i>mode</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glHint.xml">glHint()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_hint(&mut self, target: ::std::os::raw::c_uint, mode: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glHint(
            self as *mut crate::QOpenGLFunctions,
            target,
            mode,
        )
    }

    /// <p>Convenience function that calls glIsBuffer(<i>buffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLFunctions::glIsBuffer(GLuint buffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glIsBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsBuffer(<i>buffer</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glIsBuffer.xml">glIsBuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_buffer(&mut self, buffer: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glIsBuffer(
            self as *mut crate::QOpenGLFunctions,
            buffer,
        )
    }

    /// <p>Convenience function that calls glIsEnabled(<i>cap</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLFunctions::glIsEnabled(unsigned int cap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glIsEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsEnabled(<i>cap</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glIsEnabled.xml">glIsEnabled()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_enabled(&mut self, cap: ::std::os::raw::c_uint) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glIsEnabled(
            self as *mut crate::QOpenGLFunctions,
            cap,
        )
    }

    /// <p>Convenience function that calls glIsFramebuffer(<i>framebuffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLFunctions::glIsFramebuffer(GLuint framebuffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glIsFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsFramebuffer(<i>framebuffer</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glIsFramebuffer.xml">glIsFramebuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_framebuffer(&mut self, framebuffer: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glIsFramebuffer(
            self as *mut crate::QOpenGLFunctions,
            framebuffer,
        )
    }

    /// <p>Convenience function that calls glIsProgram(<i>program</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLFunctions::glIsProgram(GLuint program)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glIsProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsProgram(<i>program</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glIsProgram.xml">glIsProgram()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_program(&mut self, program: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glIsProgram(
            self as *mut crate::QOpenGLFunctions,
            program,
        )
    }

    /// <p>Convenience function that calls glIsRenderbuffer(<i>renderbuffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLFunctions::glIsRenderbuffer(GLuint renderbuffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glIsRenderbuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsRenderbuffer(<i>renderbuffer</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glIsRenderbuffer.xml">glIsRenderbuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_renderbuffer(&mut self, renderbuffer: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glIsRenderbuffer(
            self as *mut crate::QOpenGLFunctions,
            renderbuffer,
        )
    }

    /// <p>Convenience function that calls glIsShader(<i>shader</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLFunctions::glIsShader(GLuint shader)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glIsShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsShader(<i>shader</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glIsShader.xml">glIsShader()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_shader(&mut self, shader: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glIsShader(
            self as *mut crate::QOpenGLFunctions,
            shader,
        )
    }

    /// <p>Convenience function that calls glIsTexture(<i>texture</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLFunctions::glIsTexture(GLuint texture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glIsTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsTexture(<i>texture</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glIsTexture.xml">glIsTexture()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_texture(&mut self, texture: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glIsTexture(
            self as *mut crate::QOpenGLFunctions,
            texture,
        )
    }

    /// <p>Convenience function that calls glLineWidth(<i>width</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glLineWidth(float width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glLineWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glLineWidth(<i>width</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glLineWidth.xml">glLineWidth()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_line_width(&mut self, width: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glLineWidth(
            self as *mut crate::QOpenGLFunctions,
            width,
        )
    }

    /// <p>Convenience function that calls glLinkProgram(<i>program</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glLinkProgram(GLuint program)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glLinkProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glLinkProgram(<i>program</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glLinkProgram.xml">glLinkProgram()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_link_program(&mut self, program: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glLinkProgram(
            self as *mut crate::QOpenGLFunctions,
            program,
        )
    }

    /// <p>Convenience function that calls glPixelStorei(<i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glPixelStorei(unsigned int pname, GLint param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glPixelStorei">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glPixelStorei(<i>pname</i>, <i>param</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glPixelStorei.xml">glPixelStorei()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_pixel_storei(&mut self, pname: ::std::os::raw::c_uint, param: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glPixelStorei(
            self as *mut crate::QOpenGLFunctions,
            pname,
            param,
        )
    }

    /// <p>Convenience function that calls glPolygonOffset(<i>factor</i>, <i>units</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glPolygonOffset(float factor, float units)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glPolygonOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glPolygonOffset(<i>factor</i>, <i>units</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glPolygonOffset.xml">glPolygonOffset()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_polygon_offset(
        &mut self,
        factor: ::std::os::raw::c_float,
        units: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glPolygonOffset(
            self as *mut crate::QOpenGLFunctions,
            factor,
            units,
        )
    }

    /// <p>Convenience function that calls glReadPixels(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glReadPixels(GLint x, GLint y, int width, int height, unsigned int format, unsigned int type, void* pixels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glReadPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glReadPixels(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glReadPixels.xml">glReadPixels()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_read_pixels(
        &mut self,
        x: i32,
        y: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        pixels: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glReadPixels(
            self as *mut crate::QOpenGLFunctions,
            x,
            y,
            width,
            height,
            format,
            type_,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(pixels)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glReleaseShaderCompiler().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glReleaseShaderCompiler()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glReleaseShaderCompiler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glReleaseShaderCompiler().</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glReleaseShaderCompiler.xml">glReleaseShaderCompiler()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_release_shader_compiler(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glReleaseShaderCompiler(
            self as *mut crate::QOpenGLFunctions,
        )
    }

    /// <p>Convenience function that calls glRenderbufferStorage(<i>target</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glRenderbufferStorage(unsigned int target, unsigned int internalformat, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glRenderbufferStorage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glRenderbufferStorage(<i>target</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glRenderbufferStorage.xml">glRenderbufferStorage()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_renderbuffer_storage(
        &mut self,
        target: ::std::os::raw::c_uint,
        internalformat: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glRenderbufferStorage(
            self as *mut crate::QOpenGLFunctions,
            target,
            internalformat,
            width,
            height,
        )
    }

    /// <p>Convenience function that calls glSampleCoverage(<i>value</i>, <i>invert</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glSampleCoverage(float value, unsigned char invert)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glSampleCoverage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glSampleCoverage(<i>value</i>, <i>invert</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glSampleCoverage.xml">glSampleCoverage()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_sample_coverage(
        &mut self,
        value: ::std::os::raw::c_float,
        invert: ::std::os::raw::c_uchar,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glSampleCoverage(
            self as *mut crate::QOpenGLFunctions,
            value,
            invert,
        )
    }

    /// <p>Convenience function that calls glScissor(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glScissor(GLint x, GLint y, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glScissor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glScissor(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glScissor.xml">glScissor()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_scissor(
        &mut self,
        x: i32,
        y: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glScissor(
            self as *mut crate::QOpenGLFunctions,
            x,
            y,
            width,
            height,
        )
    }

    /// <p>Convenience function that calls glShaderBinary(<i>n</i>, <i>shaders</i>, <i>binaryformat</i>, <i>binary</i>, <i>length</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glShaderBinary(GLint n, const GLuint* shaders, unsigned int binaryformat, const void* binary, GLint length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glShaderBinary">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glShaderBinary(<i>n</i>, <i>shaders</i>, <i>binaryformat</i>, <i>binary</i>, <i>length</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glShaderBinary.xml">glShaderBinary()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_shader_binary(
        &mut self,
        n: i32,
        shaders: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
        binaryformat: ::std::os::raw::c_uint,
        binary: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        length: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glShaderBinary(
            self as *mut crate::QOpenGLFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(shaders).as_raw_ptr(),
            binaryformat,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(binary)
                .as_raw_ptr(),
            length,
        )
    }

    /// <p>Convenience function that calls glShaderSource(<i>shader</i>, <i>count</i>, <i>string</i>, <i>length</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glShaderSource(GLuint shader, int count, const char** string, const GLint* length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glShaderSource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glShaderSource(<i>shader</i>, <i>count</i>, <i>string</i>, <i>length</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glShaderSource.xml">glShaderSource()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_shader_source(
        &mut self,
        shader: u32,
        count: ::std::os::raw::c_int,
        string: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*const ::std::os::raw::c_char>>,
        length: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glShaderSource(
            self as *mut crate::QOpenGLFunctions,
            shader,
            count,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*const ::std::os::raw::c_char>>::cast_into(
                string,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(length).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glStencilFunc(<i>func</i>, <i>ref</i>, <i>mask</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glStencilFunc(unsigned int func, GLint ref, GLuint mask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glStencilFunc">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glStencilFunc(<i>func</i>, <i>ref</i>, <i>mask</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glStencilFunc.xml">glStencilFunc()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_stencil_func(&mut self, func: ::std::os::raw::c_uint, ref_: i32, mask: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glStencilFunc(
            self as *mut crate::QOpenGLFunctions,
            func,
            ref_,
            mask,
        )
    }

    /// <p>Convenience function that calls glStencilFuncSeparate(<i>face</i>, <i>func</i>, <i>ref</i>, <i>mask</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glStencilFuncSeparate(unsigned int face, unsigned int func, GLint ref, GLuint mask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glStencilFuncSeparate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glStencilFuncSeparate(<i>face</i>, <i>func</i>, <i>ref</i>, <i>mask</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glStencilFuncSeparate.xml">glStencilFuncSeparate()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_stencil_func_separate(
        &mut self,
        face: ::std::os::raw::c_uint,
        func: ::std::os::raw::c_uint,
        ref_: i32,
        mask: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glStencilFuncSeparate(
            self as *mut crate::QOpenGLFunctions,
            face,
            func,
            ref_,
            mask,
        )
    }

    /// <p>Convenience function that calls glStencilMask(<i>mask</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glStencilMask(GLuint mask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glStencilMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glStencilMask(<i>mask</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glStencilMask.xml">glStencilMask()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_stencil_mask(&mut self, mask: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glStencilMask(
            self as *mut crate::QOpenGLFunctions,
            mask,
        )
    }

    /// <p>Convenience function that calls glStencilMaskSeparate(<i>face</i>, <i>mask</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glStencilMaskSeparate(unsigned int face, GLuint mask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glStencilMaskSeparate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glStencilMaskSeparate(<i>face</i>, <i>mask</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glStencilMaskSeparate.xml">glStencilMaskSeparate()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_stencil_mask_separate(&mut self, face: ::std::os::raw::c_uint, mask: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glStencilMaskSeparate(
            self as *mut crate::QOpenGLFunctions,
            face,
            mask,
        )
    }

    /// <p>Convenience function that calls glStencilOp(<i>fail</i>, <i>zfail</i>, <i>zpass</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glStencilOp(unsigned int fail, unsigned int zfail, unsigned int zpass)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glStencilOp">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glStencilOp(<i>fail</i>, <i>zfail</i>, <i>zpass</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glStencilOp.xml">glStencilOp()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_stencil_op(
        &mut self,
        fail: ::std::os::raw::c_uint,
        zfail: ::std::os::raw::c_uint,
        zpass: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glStencilOp(
            self as *mut crate::QOpenGLFunctions,
            fail,
            zfail,
            zpass,
        )
    }

    /// <p>Convenience function that calls glStencilOpSeparate(<i>face</i>, <i>fail</i>, <i>zfail</i>, <i>zpass</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glStencilOpSeparate(unsigned int face, unsigned int fail, unsigned int zfail, unsigned int zpass)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glStencilOpSeparate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glStencilOpSeparate(<i>face</i>, <i>fail</i>, <i>zfail</i>, <i>zpass</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glStencilOpSeparate.xml">glStencilOpSeparate()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_stencil_op_separate(
        &mut self,
        face: ::std::os::raw::c_uint,
        fail: ::std::os::raw::c_uint,
        zfail: ::std::os::raw::c_uint,
        zpass: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glStencilOpSeparate(
            self as *mut crate::QOpenGLFunctions,
            face,
            fail,
            zfail,
            zpass,
        )
    }

    /// <p>Convenience function that calls glTexImage2D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>border</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glTexImage2D(unsigned int target, GLint level, GLint internalformat, int width, int height, GLint border, unsigned int format, unsigned int type, const void* pixels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glTexImage2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexImage2D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>border</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glTexImage2D.xml">glTexImage2D()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_image_2d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        internalformat: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        border: i32,
        format: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        pixels: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glTexImage2D(
            self as *mut crate::QOpenGLFunctions,
            target,
            level,
            internalformat,
            width,
            height,
            border,
            format,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(pixels)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glTexParameterf(<i>target</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glTexParameterf(unsigned int target, unsigned int pname, float param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glTexParameterf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexParameterf(<i>target</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glTexParameterf.xml">glTexParameterf()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_parameterf(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        param: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glTexParameterf(
            self as *mut crate::QOpenGLFunctions,
            target,
            pname,
            param,
        )
    }

    /// <p>Convenience function that calls glTexParameterfv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glTexParameterfv(unsigned int target, unsigned int pname, const float* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glTexParameterfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexParameterfv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glTexParameterfv.xml">glTexParameterfv()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_parameterfv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glTexParameterfv(
            self as *mut crate::QOpenGLFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(params)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glTexParameteri(<i>target</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glTexParameteri(unsigned int target, unsigned int pname, GLint param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glTexParameteri">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexParameteri(<i>target</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glTexParameteri.xml">glTexParameteri()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_parameteri(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        param: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glTexParameteri(
            self as *mut crate::QOpenGLFunctions,
            target,
            pname,
            param,
        )
    }

    /// <p>Convenience function that calls glTexParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glTexParameteriv(unsigned int target, unsigned int pname, const GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glTexParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glTexParameteriv.xml">glTexParameteriv()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_parameteriv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glTexParameteriv(
            self as *mut crate::QOpenGLFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(params).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glTexSubImage2D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>width</i>, <i>height</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glTexSubImage2D(unsigned int target, GLint level, GLint xoffset, GLint yoffset, int width, int height, unsigned int format, unsigned int type, const void* pixels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glTexSubImage2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexSubImage2D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>width</i>, <i>height</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glTexSubImage2D.xml">glTexSubImage2D()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_sub_image_2d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        pixels: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glTexSubImage2D(
            self as *mut crate::QOpenGLFunctions,
            target,
            level,
            xoffset,
            yoffset,
            width,
            height,
            format,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(pixels)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform1f(<i>location</i>, <i>x</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform1f(GLint location, float x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform1f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform1f(<i>location</i>, <i>x</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform1f.xml">glUniform1f()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_1f(&mut self, location: i32, x: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform1f(
            self as *mut crate::QOpenGLFunctions,
            location,
            x,
        )
    }

    /// <p>Convenience function that calls glUniform1fv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform1fv(GLint location, int count, const float* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform1fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform1fv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform1fv.xml">glUniform1fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_1fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform1fv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(v)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform1i(<i>location</i>, <i>x</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform1i(GLint location, GLint x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform1i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform1i(<i>location</i>, <i>x</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform1i.xml">glUniform1i()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_1i(&mut self, location: i32, x: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform1i(
            self as *mut crate::QOpenGLFunctions,
            location,
            x,
        )
    }

    /// <p>Convenience function that calls glUniform1iv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform1iv(GLint location, int count, const GLint* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform1iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform1iv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform1iv.xml">glUniform1iv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_1iv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform1iv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(v).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform2f(<i>location</i>, <i>x</i>, <i>y</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform2f(GLint location, float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform2f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform2f(<i>location</i>, <i>x</i>, <i>y</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform2f.xml">glUniform2f()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_2f(
        &mut self,
        location: i32,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform2f(
            self as *mut crate::QOpenGLFunctions,
            location,
            x,
            y,
        )
    }

    /// <p>Convenience function that calls glUniform2fv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform2fv(GLint location, int count, const float* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform2fv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform2fv.xml">glUniform2fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_2fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform2fv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(v)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform2i(<i>location</i>, <i>x</i>, <i>y</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform2i(GLint location, GLint x, GLint y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform2i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform2i(<i>location</i>, <i>x</i>, <i>y</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform2i.xml">glUniform2i()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_2i(&mut self, location: i32, x: i32, y: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform2i(
            self as *mut crate::QOpenGLFunctions,
            location,
            x,
            y,
        )
    }

    /// <p>Convenience function that calls glUniform2iv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform2iv(GLint location, int count, const GLint* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform2iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform2iv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform2iv.xml">glUniform2iv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_2iv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform2iv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(v).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform3f(<i>location</i>, <i>x</i>, <i>y</i>, <i>z</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform3f(GLint location, float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform3f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform3f(<i>location</i>, <i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform3f.xml">glUniform3f()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_3f(
        &mut self,
        location: i32,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform3f(
            self as *mut crate::QOpenGLFunctions,
            location,
            x,
            y,
            z,
        )
    }

    /// <p>Convenience function that calls glUniform3fv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform3fv(GLint location, int count, const float* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform3fv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform3fv.xml">glUniform3fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_3fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform3fv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(v)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform3i(<i>location</i>, <i>x</i>, <i>y</i>, <i>z</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform3i(GLint location, GLint x, GLint y, GLint z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform3i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform3i(<i>location</i>, <i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform3i.xml">glUniform3i()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_3i(&mut self, location: i32, x: i32, y: i32, z: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform3i(
            self as *mut crate::QOpenGLFunctions,
            location,
            x,
            y,
            z,
        )
    }

    /// <p>Convenience function that calls glUniform3iv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform3iv(GLint location, int count, const GLint* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform3iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform3iv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform3iv.xml">glUniform3iv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_3iv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform3iv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(v).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform4f(<i>location</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform4f(GLint location, float x, float y, float z, float w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform4f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform4f(<i>location</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform4f.xml">glUniform4f()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_4f(
        &mut self,
        location: i32,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
        w: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform4f(
            self as *mut crate::QOpenGLFunctions,
            location,
            x,
            y,
            z,
            w,
        )
    }

    /// <p>Convenience function that calls glUniform4fv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform4fv(GLint location, int count, const float* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform4fv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform4fv.xml">glUniform4fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_4fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform4fv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(v)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform4i(<i>location</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform4i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform4i(<i>location</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform4i.xml">glUniform4i()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_4i(&mut self, location: i32, x: i32, y: i32, z: i32, w: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform4i(
            self as *mut crate::QOpenGLFunctions,
            location,
            x,
            y,
            z,
            w,
        )
    }

    /// <p>Convenience function that calls glUniform4iv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniform4iv(GLint location, int count, const GLint* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniform4iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform4iv(<i>location</i>, <i>count</i>, <i>v</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniform4iv.xml">glUniform4iv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_4iv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniform4iv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(v).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformMatrix2fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniformMatrix2fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniformMatrix2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix2fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix2fv.xml">glUniformMatrix2fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_2fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniformMatrix2fv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformMatrix3fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniformMatrix3fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniformMatrix3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix3fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix3fv.xml">glUniformMatrix3fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_3fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniformMatrix3fv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformMatrix4fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUniformMatrix4fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUniformMatrix4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix4fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUniformMatrix4fv.xml">glUniformMatrix4fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_4fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUniformMatrix4fv(
            self as *mut crate::QOpenGLFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUseProgram(<i>program</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glUseProgram(GLuint program)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glUseProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUseProgram(<i>program</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glUseProgram.xml">glUseProgram()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_use_program(&mut self, program: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glUseProgram(
            self as *mut crate::QOpenGLFunctions,
            program,
        )
    }

    /// <p>Convenience function that calls glValidateProgram(<i>program</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glValidateProgram(GLuint program)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glValidateProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glValidateProgram(<i>program</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glValidateProgram.xml">glValidateProgram()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_validate_program(&mut self, program: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glValidateProgram(
            self as *mut crate::QOpenGLFunctions,
            program,
        )
    }

    /// <p>Convenience function that calls glVertexAttrib1f(<i>indx</i>, <i>x</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttrib1f(GLuint indx, float x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttrib1f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttrib1f(<i>indx</i>, <i>x</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib1f.xml">glVertexAttrib1f()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_1f(&mut self, indx: u32, x: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttrib1f(
            self as *mut crate::QOpenGLFunctions,
            indx,
            x,
        )
    }

    /// <p>Convenience function that calls glVertexAttrib1fv(<i>indx</i>, <i>values</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttrib1fv(GLuint indx, const float* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttrib1fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttrib1fv(<i>indx</i>, <i>values</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib1fv.xml">glVertexAttrib1fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_1fv(
        &mut self,
        indx: u32,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttrib1fv(
            self as *mut crate::QOpenGLFunctions,
            indx,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glVertexAttrib2f(<i>indx</i>, <i>x</i>, <i>y</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttrib2f(GLuint indx, float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttrib2f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttrib2f(<i>indx</i>, <i>x</i>, <i>y</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib2f.xml">glVertexAttrib2f()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_2f(
        &mut self,
        indx: u32,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttrib2f(
            self as *mut crate::QOpenGLFunctions,
            indx,
            x,
            y,
        )
    }

    /// <p>Convenience function that calls glVertexAttrib2fv(<i>indx</i>, <i>values</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttrib2fv(GLuint indx, const float* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttrib2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttrib2fv(<i>indx</i>, <i>values</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib2fv.xml">glVertexAttrib2fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_2fv(
        &mut self,
        indx: u32,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttrib2fv(
            self as *mut crate::QOpenGLFunctions,
            indx,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glVertexAttrib3f(<i>indx</i>, <i>x</i>, <i>y</i>, <i>z</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttrib3f(GLuint indx, float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttrib3f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttrib3f(<i>indx</i>, <i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib3f.xml">glVertexAttrib3f()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_3f(
        &mut self,
        indx: u32,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttrib3f(
            self as *mut crate::QOpenGLFunctions,
            indx,
            x,
            y,
            z,
        )
    }

    /// <p>Convenience function that calls glVertexAttrib3fv(<i>indx</i>, <i>values</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttrib3fv(GLuint indx, const float* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttrib3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttrib3fv(<i>indx</i>, <i>values</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib3fv.xml">glVertexAttrib3fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_3fv(
        &mut self,
        indx: u32,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttrib3fv(
            self as *mut crate::QOpenGLFunctions,
            indx,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glVertexAttrib4f(<i>indx</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttrib4f(GLuint indx, float x, float y, float z, float w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttrib4f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttrib4f(<i>indx</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib4f.xml">glVertexAttrib4f()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_4f(
        &mut self,
        indx: u32,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
        w: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttrib4f(
            self as *mut crate::QOpenGLFunctions,
            indx,
            x,
            y,
            z,
            w,
        )
    }

    /// <p>Convenience function that calls glVertexAttrib4fv(<i>indx</i>, <i>values</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttrib4fv(GLuint indx, const float* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttrib4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttrib4fv(<i>indx</i>, <i>values</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttrib4fv.xml">glVertexAttrib4fv()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_4fv(
        &mut self,
        indx: u32,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttrib4fv(
            self as *mut crate::QOpenGLFunctions,
            indx,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glVertexAttribPointer(<i>indx</i>, <i>size</i>, <i>type</i>, <i>normalized</i>, <i>stride</i>, <i>ptr</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glVertexAttribPointer(GLuint indx, GLint size, unsigned int type, unsigned char normalized, int stride, const void* ptr)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glVertexAttribPointer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribPointer(<i>indx</i>, <i>size</i>, <i>type</i>, <i>normalized</i>, <i>stride</i>, <i>ptr</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glVertexAttribPointer.xml">glVertexAttribPointer()</a>.</p>
    /// <p>This convenience function will do nothing on OpenGL ES 1.x systems.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_pointer(
        &mut self,
        indx: u32,
        size: i32,
        type_: ::std::os::raw::c_uint,
        normalized: ::std::os::raw::c_uchar,
        stride: ::std::os::raw::c_int,
        ptr: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glVertexAttribPointer(
            self as *mut crate::QOpenGLFunctions,
            indx,
            size,
            type_,
            normalized,
            stride,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(ptr)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glViewport(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::glViewport(GLint x, GLint y, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glViewport">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glViewport(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>For more information, see the OpenGL ES 2.0 documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man/glViewport.xml">glViewport()</a>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn gl_viewport(
        &mut self,
        x: i32,
        y: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_glViewport(
            self as *mut crate::QOpenGLFunctions,
            x,
            y,
            width,
            height,
        )
    }

    /// <p>Returns <code>true</code> if <i>feature</i> is present on this system's OpenGL implementation; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLFunctions::hasOpenGLFeature(QOpenGLFunctions::OpenGLFeature feature) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#hasOpenGLFeature">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>feature</i> is present on this system's OpenGL implementation; false otherwise.</p>
    /// <p>It is assumed that the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> associated with this function resolver is current.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#openGLFeatures">openGLFeatures</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_opengl_feature(
        &self,
        feature: crate::q_opengl_functions::OpenGLFeature,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_hasOpenGLFeature(
            self as *const crate::QOpenGLFunctions,
            feature,
        )
    }

    /// <p>Initializes OpenGL function resolution for the current context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFunctions::initializeOpenGLFunctions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Initializes OpenGL function resolution for the current context.</p>
    /// <p>After calling this function, the <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> object can only be used with the current context and other contexts that share with it. Call initializeOpenGLFunctions() again to change the object's context association.</p></div>
    #[inline(always)]
    pub unsafe fn initialize_opengl_functions(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_initializeOpenGLFunctions(
            self as *mut crate::QOpenGLFunctions,
        )
    }

    /// <p>Constructs a default function resolver. The resolver cannot be used until <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">initializeOpenGLFunctions</a>() is called to specify the context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFunctions::QOpenGLFunctions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a default function resolver. The resolver cannot be used until <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">initializeOpenGLFunctions</a>() is called to specify the context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">initializeOpenGLFunctions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_QOpenGLFunctions();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a function resolver for <i>context</i>. If <i>context</i> is null, then the resolver will be created for the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFunctions::QOpenGLFunctions(QOpenGLContext* context)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a function resolver for <i>context</i>. If <i>context</i> is null, then the resolver will be created for the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p>The context or another context in the group must be current.</p>
    /// <p>An object constructed in this way can only be used with <i>context</i> and other contexts that share with it. Use <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">initializeOpenGLFunctions</a>() to change the object's context association.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">initializeOpenGLFunctions</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        context: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_QOpenGLFunctions1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(context)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> class provides cross-platform access to the OpenGL ES 2.0 API.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFunctions::QOpenGLFunctions(const QOpenGLFunctions& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> class provides cross-platform access to the OpenGL ES 2.0 API.</p>
    /// <p>OpenGL ES 2.0 defines a subset of the OpenGL specification that is common across many desktop and embedded OpenGL implementations. However, it can be difficult to use the functions from that subset because they need to be resolved manually on desktop systems.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> provides a guaranteed API that is available on all OpenGL systems and takes care of function resolution on systems that need it. The recommended way to use <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> is by direct inheritance:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">class</span> MyGLWindow : <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></span><span class="operator">,</span> <span class="keyword">protected</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span>
    ///   {
    /// &#32;     Q_OBJECT
    ///   <span class="keyword">public</span>:
    /// &#32;     MyGLWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a></span> <span class="operator">*</span>screen <span class="operator">=</span> <span class="number">0</span>);
    ///
    ///   <span class="keyword">protected</span>:
    /// &#32;     <span class="type">void</span> initializeGL();
    /// &#32;     <span class="type">void</span> paintGL();
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span> <span class="operator">*</span>m_context;
    ///   };
    ///
    ///   MyGLWindow(<span class="type"><a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a></span> <span class="operator">*</span>screen)
    /// &#32;   : <span class="type"><a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></span>(screen)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a></span>(parent)
    ///   {
    /// &#32;     setSurfaceType(OpenGLSurface);
    /// &#32;     create();
    ///
    /// &#32;     <span class="comment">// Create an OpenGL context</span>
    /// &#32;     m_context <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span>;
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>create();
    ///
    /// &#32;     <span class="comment">// Setup scene and render it</span>
    /// &#32;     initializeGL();
    /// &#32;     paintGL();
    ///   }
    ///
    ///   <span class="type">void</span> MyGLWindow<span class="operator">::</span>initializeGL()
    ///   {
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>makeCurrent(<span class="keyword">this</span>);
    /// &#32;     initializeOpenGLFunctions();
    ///   }
    ///
    /// </pre>
    /// <p>The <code>paintGL()</code> function can then use any of the OpenGL ES 2.0 functions without explicit resolution, such as <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glActiveTexture">glActiveTexture</a>() in the following example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> MyGLWindow<span class="operator">::</span>paintGL()
    ///   {
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>makeCurrent(<span class="keyword">this</span>);
    /// &#32;     glActiveTexture(GL_TEXTURE1);
    /// &#32;     glBindTexture(GL_TEXTURE_2D<span class="operator">,</span> textureId);
    /// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>swapBuffers(<span class="keyword">this</span>);
    /// &#32;     m_context<span class="operator">-</span><span class="operator">&gt;</span>doneCurrent();
    ///   }
    ///
    /// </pre>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> can also be used directly for ad-hoc invocation of OpenGL ES 2.0 functions on all platforms:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> glFuncs(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext());
    ///   glFuncs<span class="operator">.</span>glActiveTexture(GL_TEXTURE1);
    ///
    /// </pre>
    /// <p>An alternative approach is to query the context's associated <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instance. This is somewhat faster than the previous approach due to avoiding the creation of a new instance, but the difference is fairly small since the internal data structures are shared, and function resolving happens only once for a given context, regardless of the number of <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> instances initialized for it.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> <span class="operator">*</span>glFuncs <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext()<span class="operator">-</span><span class="operator">&gt;</span>functions();
    ///   glFuncs<span class="operator">-</span><span class="operator">&gt;</span>glActiveTexture(GL_TEXTURE1);
    ///
    /// </pre>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> provides wrappers for all OpenGL ES 2.0 functions, including the common subset of OpenGL 1.x and ES 2.0. While such functions, for example <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glClear">glClear</a>() or <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#glDrawArrays">glDrawArrays</a>(), can be called also directly, as long as the application links to the platform-specific OpenGL library, calling them via <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> enables the possibility of dynamically loading the OpenGL implementation.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#hasOpenGLFeature">hasOpenGLFeature</a>() and <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#openGLFeatures">openGLFeatures</a>() functions can be used to determine if the OpenGL implementation has a major OpenGL ES 2.0 feature. For example, the following checks if non power of two textures are available:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span> funcs(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a></span><span class="operator">::</span>currentContext());
    ///   bool npot <span class="operator">=</span> funcs<span class="operator">.</span>hasOpenGLFeature(<span class="type"><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#QOpenGLFunctions">QOpenGLFunctions</a></span><span class="operator">::</span>NPOTTextures);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLFunctions>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_QOpenGLFunctions2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLFunctions>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the set of features that are present on this system's OpenGL implementation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QOpenGLFunctions::OpenGLFeature> QOpenGLFunctions::openGLFeatures() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#openGLFeatures">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the set of features that are present on this system's OpenGL implementation.</p>
    /// <p>It is assumed that the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> associated with this function resolver is current.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglfunctions.html#hasOpenGLFeature">hasOpenGLFeature</a>().</p></div>
    #[inline(always)]
    pub unsafe fn opengl_features(
        &self,
    ) -> ::qt_core::QFlags<crate::q_opengl_functions::OpenGLFeature> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_openGLFeatures(
            self as *const crate::QOpenGLFunctions,
        );
        ::qt_core::QFlags::from(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> class provides cross-platform access to the OpenGL ES 3.0 and 3.1 API.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLExtraFunctions```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> class provides cross-platform access to the OpenGL ES 3.0 and 3.1 API.</p>
/// <p>This subclass of <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> includes the OpenGL ES 3.0 and 3.1 functions. These will only work when an OpenGL ES 3.0 or 3.1 context, or an OpenGL context of a version containing the functions in question either in core or as extension, is in use. This allows developing GLES 3.0 and 3.1 applications in a cross-platform manner: development can happen on a desktop platform with OpenGL 3.x or 4.x, deploying to a real GLES 3.1 device later on will require no or minimal changes to the application.</p>
/// <p><b>Note: </b>This class is different from the versioned OpenGL wrappers, for instance <a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-core.html">QOpenGLFunctions_3_2_Core</a>. The versioned function wrappers target a given version and profile of OpenGL. They are therefore not suitable for cross-OpenGL-OpenGLES development.</p></div>
#[repr(C)]
pub struct QOpenGLExtraFunctions {
    _unused: u8,
}
impl QOpenGLExtraFunctions {
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> class provides cross-platform access to the OpenGL ES 3.0 and 3.1 API.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLExtraFunctions& QOpenGLExtraFunctions::operator=(const QOpenGLExtraFunctions& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> class provides cross-platform access to the OpenGL ES 3.0 and 3.1 API.</p>
    /// <p>This subclass of <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> includes the OpenGL ES 3.0 and 3.1 functions. These will only work when an OpenGL ES 3.0 or 3.1 context, or an OpenGL context of a version containing the functions in question either in core or as extension, is in use. This allows developing GLES 3.0 and 3.1 applications in a cross-platform manner: development can happen on a desktop platform with OpenGL 3.x or 4.x, deploying to a real GLES 3.1 device later on will require no or minimal changes to the application.</p>
    /// <p><b>Note: </b>This class is different from the versioned OpenGL wrappers, for instance <a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-core.html">QOpenGLFunctions_3_2_Core</a>. The versioned function wrappers target a given version and profile of OpenGL. They are therefore not suitable for cross-OpenGL-OpenGLES development.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLExtraFunctions>>,
    ) -> ::cpp_core::MutRef<crate::QOpenGLExtraFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_operator_(
            self as *mut crate::QOpenGLExtraFunctions,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLExtraFunctions>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Convenience function that calls glActiveShaderProgram(<i>pipeline</i>, <i>program</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glActiveShaderProgram(GLuint pipeline, GLuint program)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glActiveShaderProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glActiveShaderProgram(<i>pipeline</i>, <i>program</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glActiveShaderProgram.xml">glActiveShaderProgram()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_active_shader_program(&mut self, pipeline: u32, program: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glActiveShaderProgram(
            self as *mut crate::QOpenGLExtraFunctions,
            pipeline,
            program,
        )
    }

    /// <p>Convenience function that calls glBeginQuery(<i>target</i>, <i>id</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBeginQuery(unsigned int target, GLuint id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBeginQuery">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBeginQuery(<i>target</i>, <i>id</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBeginQuery.xml">glBeginQuery()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_begin_query(&mut self, target: ::std::os::raw::c_uint, id: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBeginQuery(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            id,
        )
    }

    /// <p>Convenience function that calls glBeginTransformFeedback(<i>primitiveMode</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBeginTransformFeedback(unsigned int primitiveMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBeginTransformFeedback">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBeginTransformFeedback(<i>primitiveMode</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBeginTransformFeedback.xml">glBeginTransformFeedback()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_begin_transform_feedback(&mut self, primitive_mode: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBeginTransformFeedback(
            self as *mut crate::QOpenGLExtraFunctions,
            primitive_mode,
        )
    }

    /// <p>Convenience function that calls glBindBufferBase(<i>target</i>, <i>index</i>, <i>buffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBindBufferBase(unsigned int target, GLuint index, GLuint buffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBindBufferBase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindBufferBase(<i>target</i>, <i>index</i>, <i>buffer</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBindBufferBase.xml">glBindBufferBase()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_buffer_base(
        &mut self,
        target: ::std::os::raw::c_uint,
        index: u32,
        buffer: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBindBufferBase(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            index,
            buffer,
        )
    }

    /// <p>Convenience function that calls glBindBufferRange(<i>target</i>, <i>index</i>, <i>buffer</i>, <i>offset</i>, <i>size</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBindBufferRange(unsigned int target, GLuint index, GLuint buffer, long offset, long size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBindBufferRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindBufferRange(<i>target</i>, <i>index</i>, <i>buffer</i>, <i>offset</i>, <i>size</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBindBufferRange.xml">glBindBufferRange()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_buffer_range(
        &mut self,
        target: ::std::os::raw::c_uint,
        index: u32,
        buffer: u32,
        offset: ::std::os::raw::c_long,
        size: ::std::os::raw::c_long,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBindBufferRange(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            index,
            buffer,
            offset,
            size,
        )
    }

    /// <p>Convenience function that calls glBindImageTexture(<i>unit</i>, <i>texture</i>, <i>level</i>, <i>layered</i>, <i>layer</i>, <i>access</i>, <i>format</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBindImageTexture(GLuint unit, GLuint texture, GLint level, unsigned char layered, GLint layer, unsigned int access, unsigned int format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBindImageTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindImageTexture(<i>unit</i>, <i>texture</i>, <i>level</i>, <i>layered</i>, <i>layer</i>, <i>access</i>, <i>format</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBindImageTexture.xml">glBindImageTexture()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_image_texture(
        &mut self,
        unit: u32,
        texture: u32,
        level: i32,
        layered: ::std::os::raw::c_uchar,
        layer: i32,
        access: ::std::os::raw::c_uint,
        format: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBindImageTexture(
            self as *mut crate::QOpenGLExtraFunctions,
            unit,
            texture,
            level,
            layered,
            layer,
            access,
            format,
        )
    }

    /// <p>Convenience function that calls glBindProgramPipeline(<i>pipeline</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBindProgramPipeline(GLuint pipeline)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBindProgramPipeline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindProgramPipeline(<i>pipeline</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBindProgramPipeline.xml">glBindProgramPipeline()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_program_pipeline(&mut self, pipeline: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBindProgramPipeline(
            self as *mut crate::QOpenGLExtraFunctions,
            pipeline,
        )
    }

    /// <p>Convenience function that calls glBindSampler(<i>unit</i>, <i>sampler</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBindSampler(GLuint unit, GLuint sampler)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBindSampler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindSampler(<i>unit</i>, <i>sampler</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBindSampler.xml">glBindSampler()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_sampler(&mut self, unit: u32, sampler: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBindSampler(
            self as *mut crate::QOpenGLExtraFunctions,
            unit,
            sampler,
        )
    }

    /// <p>Convenience function that calls glBindTransformFeedback(<i>target</i>, <i>id</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBindTransformFeedback(unsigned int target, GLuint id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBindTransformFeedback">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindTransformFeedback(<i>target</i>, <i>id</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBindTransformFeedback.xml">glBindTransformFeedback()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_transform_feedback(&mut self, target: ::std::os::raw::c_uint, id: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBindTransformFeedback(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            id,
        )
    }

    /// <p>Convenience function that calls glBindVertexArray(<i>array</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBindVertexArray(GLuint array)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBindVertexArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindVertexArray(<i>array</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBindVertexArray.xml">glBindVertexArray()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_vertex_array(&mut self, array: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBindVertexArray(
            self as *mut crate::QOpenGLExtraFunctions,
            array,
        )
    }

    /// <p>Convenience function that calls glBindVertexBuffer(<i>bindingindex</i>, <i>buffer</i>, <i>offset</i>, <i>stride</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBindVertexBuffer(GLuint bindingindex, GLuint buffer, long offset, int stride)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBindVertexBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBindVertexBuffer(<i>bindingindex</i>, <i>buffer</i>, <i>offset</i>, <i>stride</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBindVertexBuffer.xml">glBindVertexBuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_bind_vertex_buffer(
        &mut self,
        bindingindex: u32,
        buffer: u32,
        offset: ::std::os::raw::c_long,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBindVertexBuffer(
            self as *mut crate::QOpenGLExtraFunctions,
            bindingindex,
            buffer,
            offset,
            stride,
        )
    }

    /// <p>Convenience function that calls glBlendBarrier().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBlendBarrier()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBlendBarrier">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendBarrier().</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBlendBarrier.xhtml">glBlendBarrier()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_blend_barrier(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBlendBarrier(
            self as *mut crate::QOpenGLExtraFunctions,
        )
    }

    /// <p>Convenience function that calls glBlendEquationSeparatei(<i>buf</i>, <i>modeRGB</i>, <i>modeAlpha</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBlendEquationSeparatei(GLuint buf, unsigned int modeRGB, unsigned int modeAlpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBlendEquationSeparatei">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendEquationSeparatei(<i>buf</i>, <i>modeRGB</i>, <i>modeAlpha</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBlendEquationSeparate.xhtml">glBlendEquationSeparatei()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_blend_equation_separatei(
        &mut self,
        buf: u32,
        mode_r_g_b: ::std::os::raw::c_uint,
        mode_alpha: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBlendEquationSeparatei(
            self as *mut crate::QOpenGLExtraFunctions,
            buf,
            mode_r_g_b,
            mode_alpha,
        )
    }

    /// <p>Convenience function that calls glBlendEquationi(<i>buf</i>, <i>mode</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBlendEquationi(GLuint buf, unsigned int mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBlendEquationi">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendEquationi(<i>buf</i>, <i>mode</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBlendEquationi.xhtml">glBlendEquationi()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_blend_equationi(&mut self, buf: u32, mode: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBlendEquationi(
            self as *mut crate::QOpenGLExtraFunctions,
            buf,
            mode,
        )
    }

    /// <p>Convenience function that calls glBlendFuncSeparatei(<i>buf</i>, <i>srcRGB</i>, <i>dstRGB</i>, <i>srcAlpha</i>, <i>dstAlpha</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBlendFuncSeparatei(GLuint buf, unsigned int srcRGB, unsigned int dstRGB, unsigned int srcAlpha, unsigned int dstAlpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBlendFuncSeparatei">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendFuncSeparatei(<i>buf</i>, <i>srcRGB</i>, <i>dstRGB</i>, <i>srcAlpha</i>, <i>dstAlpha</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBlendFuncSeparate.xhtml">glBlendFuncSeparatei()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_blend_func_separatei(
        &mut self,
        buf: u32,
        src_r_g_b: ::std::os::raw::c_uint,
        dst_r_g_b: ::std::os::raw::c_uint,
        src_alpha: ::std::os::raw::c_uint,
        dst_alpha: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBlendFuncSeparatei(
            self as *mut crate::QOpenGLExtraFunctions,
            buf,
            src_r_g_b,
            dst_r_g_b,
            src_alpha,
            dst_alpha,
        )
    }

    /// <p>Convenience function that calls glBlendFunci(<i>buf</i>, <i>src</i>, <i>dst</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBlendFunci(GLuint buf, unsigned int src, unsigned int dst)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBlendFunci">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlendFunci(<i>buf</i>, <i>src</i>, <i>dst</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glBlendFunci.xhtml">glBlendFunci()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_blend_funci(
        &mut self,
        buf: u32,
        src: ::std::os::raw::c_uint,
        dst: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBlendFunci(
            self as *mut crate::QOpenGLExtraFunctions,
            buf,
            src,
            dst,
        )
    }

    /// <p>Convenience function that calls glBlitFramebuffer(<i>srcX0</i>, <i>srcY0</i>, <i>srcX1</i>, <i>srcY1</i>, <i>dstX0</i>, <i>dstY0</i>, <i>dstX1</i>, <i>dstY1</i>, <i>mask</i>, <i>filter</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, unsigned int mask, unsigned int filter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glBlitFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glBlitFramebuffer(<i>srcX0</i>, <i>srcY0</i>, <i>srcX1</i>, <i>srcY1</i>, <i>dstX0</i>, <i>dstY0</i>, <i>dstX1</i>, <i>dstY1</i>, <i>mask</i>, <i>filter</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glBlitFramebuffer.xml">glBlitFramebuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_blit_framebuffer(
        &mut self,
        src_x0: i32,
        src_y0: i32,
        src_x1: i32,
        src_y1: i32,
        dst_x0: i32,
        dst_y0: i32,
        dst_x1: i32,
        dst_y1: i32,
        mask: ::std::os::raw::c_uint,
        filter: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glBlitFramebuffer(
            self as *mut crate::QOpenGLExtraFunctions,
            src_x0,
            src_y0,
            src_x1,
            src_y1,
            dst_x0,
            dst_y0,
            dst_x1,
            dst_y1,
            mask,
            filter,
        )
    }

    /// <p>Convenience function that calls glClearBufferfi(<i>buffer</i>, <i>drawbuffer</i>, <i>depth</i>, <i>stencil</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glClearBufferfi(unsigned int buffer, GLint drawbuffer, float depth, GLint stencil)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glClearBufferfi">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glClearBufferfi(<i>buffer</i>, <i>drawbuffer</i>, <i>depth</i>, <i>stencil</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glClearBufferfi.xml">glClearBufferfi()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_clear_bufferfi(
        &mut self,
        buffer: ::std::os::raw::c_uint,
        drawbuffer: i32,
        depth: ::std::os::raw::c_float,
        stencil: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glClearBufferfi(
            self as *mut crate::QOpenGLExtraFunctions,
            buffer,
            drawbuffer,
            depth,
            stencil,
        )
    }

    /// <p>Convenience function that calls glClearBufferfv(<i>buffer</i>, <i>drawbuffer</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glClearBufferfv(unsigned int buffer, GLint drawbuffer, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glClearBufferfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glClearBufferfv(<i>buffer</i>, <i>drawbuffer</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glClearBufferfv.xml">glClearBufferfv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_clear_bufferfv(
        &mut self,
        buffer: ::std::os::raw::c_uint,
        drawbuffer: i32,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glClearBufferfv(
            self as *mut crate::QOpenGLExtraFunctions,
            buffer,
            drawbuffer,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glClearBufferiv(<i>buffer</i>, <i>drawbuffer</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glClearBufferiv(unsigned int buffer, GLint drawbuffer, const GLint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glClearBufferiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glClearBufferiv(<i>buffer</i>, <i>drawbuffer</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glClearBufferiv.xml">glClearBufferiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_clear_bufferiv(
        &mut self,
        buffer: ::std::os::raw::c_uint,
        drawbuffer: i32,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glClearBufferiv(
            self as *mut crate::QOpenGLExtraFunctions,
            buffer,
            drawbuffer,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glClearBufferuiv(<i>buffer</i>, <i>drawbuffer</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glClearBufferuiv(unsigned int buffer, GLint drawbuffer, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glClearBufferuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glClearBufferuiv(<i>buffer</i>, <i>drawbuffer</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glClearBufferuiv.xml">glClearBufferuiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_clear_bufferuiv(
        &mut self,
        buffer: ::std::os::raw::c_uint,
        drawbuffer: i32,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glClearBufferuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            buffer,
            drawbuffer,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glColorMaski(<i>index</i>, <i>r</i>, <i>g</i>, <i>b</i>, <i>a</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glColorMaski(GLuint index, unsigned char r, unsigned char g, unsigned char b, unsigned char a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glColorMaski">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glColorMaski(<i>index</i>, <i>r</i>, <i>g</i>, <i>b</i>, <i>a</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glColorMask.xhtml">glColorMaski()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_color_maski(
        &mut self,
        index: u32,
        r: ::std::os::raw::c_uchar,
        g: ::std::os::raw::c_uchar,
        b: ::std::os::raw::c_uchar,
        a: ::std::os::raw::c_uchar,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glColorMaski(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            r,
            g,
            b,
            a,
        )
    }

    /// <p>Convenience function that calls glCompressedTexImage3D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>border</i>, <i>imageSize</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glCompressedTexImage3D(unsigned int target, GLint level, unsigned int internalformat, int width, int height, int depth, GLint border, int imageSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glCompressedTexImage3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCompressedTexImage3D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>border</i>, <i>imageSize</i>, <i>data</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glCompressedTexImage3D.xml">glCompressedTexImage3D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_compressed_tex_image_3d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        internalformat: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        depth: ::std::os::raw::c_int,
        border: i32,
        image_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glCompressedTexImage3D(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            level,
            internalformat,
            width,
            height,
            depth,
            border,
            image_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glCompressedTexSubImage3D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>zoffset</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>format</i>, <i>imageSize</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glCompressedTexSubImage3D(unsigned int target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, int width, int height, int depth, unsigned int format, int imageSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glCompressedTexSubImage3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCompressedTexSubImage3D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>zoffset</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>format</i>, <i>imageSize</i>, <i>data</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glCompressedTexSubImage3D.xml">glCompressedTexSubImage3D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_compressed_tex_sub_image_3d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        zoffset: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        depth: ::std::os::raw::c_int,
        format: ::std::os::raw::c_uint,
        image_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glCompressedTexSubImage3D(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            level,
            xoffset,
            yoffset,
            zoffset,
            width,
            height,
            depth,
            format,
            image_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glCopyBufferSubData(<i>readTarget</i>, <i>writeTarget</i>, <i>readOffset</i>, <i>writeOffset</i>, <i>size</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glCopyBufferSubData(unsigned int readTarget, unsigned int writeTarget, long readOffset, long writeOffset, long size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glCopyBufferSubData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCopyBufferSubData(<i>readTarget</i>, <i>writeTarget</i>, <i>readOffset</i>, <i>writeOffset</i>, <i>size</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glCopyBufferSubData.xml">glCopyBufferSubData()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_copy_buffer_sub_data(
        &mut self,
        read_target: ::std::os::raw::c_uint,
        write_target: ::std::os::raw::c_uint,
        read_offset: ::std::os::raw::c_long,
        write_offset: ::std::os::raw::c_long,
        size: ::std::os::raw::c_long,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glCopyBufferSubData(
            self as *mut crate::QOpenGLExtraFunctions,
            read_target,
            write_target,
            read_offset,
            write_offset,
            size,
        )
    }

    /// <p>Convenience function that calls glCopyImageSubData(<i>srcName</i>, <i>srcTarget</i>, <i>srcLevel</i>, <i>srcX</i>, <i>srcY</i>, <i>srcZ</i>, <i>dstName</i>, <i>dstTarget</i>, <i>dstLevel</i>, <i>dstX</i>, <i>dstY</i>, <i>dstZ</i>, <i>srcWidth</i>, <i>srcHeight</i>, <i>srcDepth</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glCopyImageSubData(GLuint srcName, unsigned int srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, unsigned int dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, int srcWidth, int srcHeight, int srcDepth)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glCopyImageSubData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCopyImageSubData(<i>srcName</i>, <i>srcTarget</i>, <i>srcLevel</i>, <i>srcX</i>, <i>srcY</i>, <i>srcZ</i>, <i>dstName</i>, <i>dstTarget</i>, <i>dstLevel</i>, <i>dstX</i>, <i>dstY</i>, <i>dstZ</i>, <i>srcWidth</i>, <i>srcHeight</i>, <i>srcDepth</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glCopyImageSubData.xhtml">glCopyImageSubData()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_copy_image_sub_data(
        &mut self,
        src_name: u32,
        src_target: ::std::os::raw::c_uint,
        src_level: i32,
        src_x: i32,
        src_y: i32,
        src_z: i32,
        dst_name: u32,
        dst_target: ::std::os::raw::c_uint,
        dst_level: i32,
        dst_x: i32,
        dst_y: i32,
        dst_z: i32,
        src_width: ::std::os::raw::c_int,
        src_height: ::std::os::raw::c_int,
        src_depth: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glCopyImageSubData(
            self as *mut crate::QOpenGLExtraFunctions,
            src_name,
            src_target,
            src_level,
            src_x,
            src_y,
            src_z,
            dst_name,
            dst_target,
            dst_level,
            dst_x,
            dst_y,
            dst_z,
            src_width,
            src_height,
            src_depth,
        )
    }

    /// <p>Convenience function that calls glCopyTexSubImage3D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>zoffset</i>, <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glCopyTexSubImage3D(unsigned int target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glCopyTexSubImage3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glCopyTexSubImage3D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>zoffset</i>, <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glCopyTexSubImage3D.xml">glCopyTexSubImage3D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_copy_tex_sub_image_3d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        zoffset: i32,
        x: i32,
        y: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glCopyTexSubImage3D(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            level,
            xoffset,
            yoffset,
            zoffset,
            x,
            y,
            width,
            height,
        )
    }

    /// <p>Convenience function that calls glDebugMessageCallback(<i>callback</i>, <i>userParam</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDebugMessageCallback(void (*FN_PTR)(unsigned int, unsigned int, unsigned int, unsigned int, int, const char*, const void*) callback, const void* userParam)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDebugMessageCallback">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDebugMessageCallback(<i>callback</i>, <i>userParam</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDebugMessageCallback.xhtml">glDebugMessageCallback()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_debug_message_callback(
        &mut self,
        callback: ::std::option::Option<
            extern "C" fn(
                ::std::os::raw::c_uint,
                ::std::os::raw::c_uint,
                ::std::os::raw::c_uint,
                ::std::os::raw::c_uint,
                ::std::os::raw::c_int,
                *const ::std::os::raw::c_char,
                *const ::std::ffi::c_void,
            ),
        >,
        user_param: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDebugMessageCallback(
            self as *mut crate::QOpenGLExtraFunctions,
            callback,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(user_param)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDebugMessageControl(<i>source</i>, <i>type</i>, <i>severity</i>, <i>count</i>, <i>ids</i>, <i>enabled</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDebugMessageControl(unsigned int source, unsigned int type, unsigned int severity, int count, const GLuint* ids, unsigned char enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDebugMessageControl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDebugMessageControl(<i>source</i>, <i>type</i>, <i>severity</i>, <i>count</i>, <i>ids</i>, <i>enabled</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDebugMessageControl.xhtml">glDebugMessageContro()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_debug_message_control(
        &mut self,
        source: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        severity: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_int,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
        enabled: ::std::os::raw::c_uchar,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDebugMessageControl(
            self as *mut crate::QOpenGLExtraFunctions,
            source,
            type_,
            severity,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(ids).as_raw_ptr(),
            enabled,
        )
    }

    /// <p>Convenience function that calls glDebugMessageInsert(<i>source</i>, <i>type</i>, <i>id</i>, <i>severity</i>, <i>length</i>, <i>buf</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDebugMessageInsert(unsigned int source, unsigned int type, GLuint id, unsigned int severity, int length, const char* buf)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDebugMessageInsert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDebugMessageInsert(<i>source</i>, <i>type</i>, <i>id</i>, <i>severity</i>, <i>length</i>, <i>buf</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDebugMessageInsert.xhtml">glDebugMessageInsert()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_debug_message_insert(
        &mut self,
        source: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        id: u32,
        severity: ::std::os::raw::c_uint,
        length: ::std::os::raw::c_int,
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDebugMessageInsert(
            self as *mut crate::QOpenGLExtraFunctions,
            source,
            type_,
            id,
            severity,
            length,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(buf)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDeleteProgramPipelines(<i>n</i>, <i>pipelines</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDeleteProgramPipelines(int n, const GLuint* pipelines)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDeleteProgramPipelines">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteProgramPipelines(<i>n</i>, <i>pipelines</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDeleteProgramPipelines.xml">glDeleteProgramPipelines()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_program_pipelines(
        &mut self,
        n: ::std::os::raw::c_int,
        pipelines: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDeleteProgramPipelines(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(pipelines).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDeleteQueries(<i>n</i>, <i>ids</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDeleteQueries(int n, const GLuint* ids)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDeleteQueries">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteQueries(<i>n</i>, <i>ids</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDeleteQueries.xml">glDeleteQueries()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_queries(
        &mut self,
        n: ::std::os::raw::c_int,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDeleteQueries(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(ids).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDeleteSamplers(<i>count</i>, <i>samplers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDeleteSamplers(int count, const GLuint* samplers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDeleteSamplers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteSamplers(<i>count</i>, <i>samplers</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDeleteSamplers.xml">glDeleteSamplers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_samplers(
        &mut self,
        count: ::std::os::raw::c_int,
        samplers: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDeleteSamplers(
            self as *mut crate::QOpenGLExtraFunctions,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(samplers).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDeleteTransformFeedbacks(<i>n</i>, <i>ids</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDeleteTransformFeedbacks(int n, const GLuint* ids)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDeleteTransformFeedbacks">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteTransformFeedbacks(<i>n</i>, <i>ids</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDeleteTransformFeedbacks.xml">glDeleteTransformFeedbacks()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_transform_feedbacks(
        &mut self,
        n: ::std::os::raw::c_int,
        ids: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDeleteTransformFeedbacks(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(ids).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDeleteVertexArrays(<i>n</i>, <i>arrays</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDeleteVertexArrays(int n, const GLuint* arrays)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDeleteVertexArrays">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDeleteVertexArrays(<i>n</i>, <i>arrays</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDeleteVertexArrays.xml">glDeleteVertexArrays()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_delete_vertex_arrays(
        &mut self,
        n: ::std::os::raw::c_int,
        arrays: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDeleteVertexArrays(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(arrays).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDisablei(<i>target</i>, <i>index</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDisablei(unsigned int target, GLuint index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDisablei">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDisablei(<i>target</i>, <i>index</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glEnable.xhtml">glDisablei()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_disablei(&mut self, target: ::std::os::raw::c_uint, index: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDisablei(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            index,
        )
    }

    /// <p>Convenience function that calls glDispatchCompute(<i>num_groups_x</i>, <i>num_groups_y</i>, <i>num_groups_z</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDispatchCompute">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDispatchCompute(<i>num_groups_x</i>, <i>num_groups_y</i>, <i>num_groups_z</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDispatchCompute.xml">glDispatchCompute()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_dispatch_compute(
        &mut self,
        num_groups_x: u32,
        num_groups_y: u32,
        num_groups_z: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDispatchCompute(
            self as *mut crate::QOpenGLExtraFunctions,
            num_groups_x,
            num_groups_y,
            num_groups_z,
        )
    }

    /// <p>Convenience function that calls glDispatchComputeIndirect(<i>indirect</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDispatchComputeIndirect(long indirect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDispatchComputeIndirect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDispatchComputeIndirect(<i>indirect</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDispatchComputeIndirect.xml">glDispatchComputeIndirect()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_dispatch_compute_indirect(&mut self, indirect: ::std::os::raw::c_long) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDispatchComputeIndirect(
            self as *mut crate::QOpenGLExtraFunctions,
            indirect,
        )
    }

    /// <p>Convenience function that calls glDrawArraysIndirect(<i>mode</i>, <i>indirect</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawArraysIndirect(unsigned int mode, const void* indirect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawArraysIndirect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawArraysIndirect(<i>mode</i>, <i>indirect</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDrawArraysIndirect.xml">glDrawArraysIndirect()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_draw_arrays_indirect(
        &mut self,
        mode: ::std::os::raw::c_uint,
        indirect: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawArraysIndirect(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(indirect)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDrawArraysInstanced(<i>mode</i>, <i>first</i>, <i>count</i>, <i>instancecount</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawArraysInstanced(unsigned int mode, GLint first, int count, int instancecount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawArraysInstanced">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawArraysInstanced(<i>mode</i>, <i>first</i>, <i>count</i>, <i>instancecount</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDrawArraysInstanced.xml">glDrawArraysInstanced()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_draw_arrays_instanced(
        &mut self,
        mode: ::std::os::raw::c_uint,
        first: i32,
        count: ::std::os::raw::c_int,
        instancecount: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawArraysInstanced(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
            first,
            count,
            instancecount,
        )
    }

    /// <p>Convenience function that calls glDrawBuffers(<i>n</i>, <i>bufs</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawBuffers(int n, const unsigned int* bufs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawBuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawBuffers(<i>n</i>, <i>bufs</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDrawBuffers.xml">glDrawBuffers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_draw_buffers(
        &mut self,
        n: ::std::os::raw::c_int,
        bufs: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawBuffers(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uint>>::cast_into(bufs)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDrawElementsBaseVertex(<i>mode</i>, <i>count</i>, <i>type</i>, <i>indices</i>, <i>basevertex</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawElementsBaseVertex(unsigned int mode, int count, unsigned int type, const void* indices, GLint basevertex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawElementsBaseVertex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawElementsBaseVertex(<i>mode</i>, <i>count</i>, <i>type</i>, <i>indices</i>, <i>basevertex</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawElementsBaseVertex.xhtml">glDrawElementsBaseVerte()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_draw_elements_base_vertex(
        &mut self,
        mode: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        indices: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        basevertex: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawElementsBaseVertex(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
            count,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(indices)
                .as_raw_ptr(),
            basevertex,
        )
    }

    /// <p>Convenience function that calls glDrawElementsIndirect(<i>mode</i>, <i>type</i>, <i>indirect</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawElementsIndirect(unsigned int mode, unsigned int type, const void* indirect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawElementsIndirect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawElementsIndirect(<i>mode</i>, <i>type</i>, <i>indirect</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDrawElementsIndirect.xml">glDrawElementsIndirect()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_draw_elements_indirect(
        &mut self,
        mode: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        indirect: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawElementsIndirect(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(indirect)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDrawElementsInstanced(<i>mode</i>, <i>count</i>, <i>type</i>, <i>indices</i>, <i>instancecount</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawElementsInstanced(unsigned int mode, int count, unsigned int type, const void* indices, int instancecount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawElementsInstanced">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawElementsInstanced(<i>mode</i>, <i>count</i>, <i>type</i>, <i>indices</i>, <i>instancecount</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDrawElementsInstanced.xml">glDrawElementsInstanced()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_draw_elements_instanced(
        &mut self,
        mode: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        indices: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        instancecount: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawElementsInstanced(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
            count,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(indices)
                .as_raw_ptr(),
            instancecount,
        )
    }

    /// <p>Convenience function that calls glDrawElementsInstancedBaseVertex(<i>mode</i>, <i>count</i>, <i>type</i>, <i>indices</i>, <i>instancecount</i>, <i>basevertex</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawElementsInstancedBaseVertex(unsigned int mode, int count, unsigned int type, const void* indices, int instancecount, GLint basevertex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawElementsInstancedBaseVertex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawElementsInstancedBaseVertex(<i>mode</i>, <i>count</i>, <i>type</i>, <i>indices</i>, <i>instancecount</i>, <i>basevertex</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawElementsInstancedBaseVertex.xhtml">glDrawElementsInstancedBaseVerte()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_draw_elements_instanced_base_vertex(
        &mut self,
        mode: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        indices: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        instancecount: ::std::os::raw::c_int,
        basevertex: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawElementsInstancedBaseVertex(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
            count,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(indices)
                .as_raw_ptr(),
            instancecount,
            basevertex,
        )
    }

    /// <p>Convenience function that calls glDrawRangeElements(<i>mode</i>, <i>start</i>, <i>end</i>, <i>count</i>, <i>type</i>, <i>indices</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawRangeElements(unsigned int mode, GLuint start, GLuint end, int count, unsigned int type, const void* indices)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawRangeElements">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawRangeElements(<i>mode</i>, <i>start</i>, <i>end</i>, <i>count</i>, <i>type</i>, <i>indices</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glDrawRangeElements.xml">glDrawRangeElements()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_draw_range_elements(
        &mut self,
        mode: ::std::os::raw::c_uint,
        start: u32,
        end: u32,
        count: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        indices: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawRangeElements(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
            start,
            end,
            count,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(indices)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glDrawRangeElementsBaseVertex(<i>mode</i>, <i>start</i>, <i>end</i>, <i>count</i>, <i>type</i>, <i>indices</i>, <i>basevertex</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glDrawRangeElementsBaseVertex(unsigned int mode, GLuint start, GLuint end, int count, unsigned int type, const void* indices, GLint basevertex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glDrawRangeElementsBaseVertex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glDrawRangeElementsBaseVertex(<i>mode</i>, <i>start</i>, <i>end</i>, <i>count</i>, <i>type</i>, <i>indices</i>, <i>basevertex</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawRangeElementsBaseVertex.xhtml">glDrawRangeElementsBaseVerte()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_draw_range_elements_base_vertex(
        &mut self,
        mode: ::std::os::raw::c_uint,
        start: u32,
        end: u32,
        count: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        indices: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        basevertex: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glDrawRangeElementsBaseVertex(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
            start,
            end,
            count,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(indices)
                .as_raw_ptr(),
            basevertex,
        )
    }

    /// <p>Convenience function that calls glEnablei(<i>target</i>, <i>index</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glEnablei(unsigned int target, GLuint index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glEnablei">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glEnablei(<i>target</i>, <i>index</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glEnablei.xhtml">glEnablei()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_enablei(&mut self, target: ::std::os::raw::c_uint, index: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glEnablei(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            index,
        )
    }

    /// <p>Convenience function that calls glEndQuery(<i>target</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glEndQuery(unsigned int target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glEndQuery">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glEndQuery(<i>target</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glEndQuery.xml">glEndQuery()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_end_query(&mut self, target: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glEndQuery(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
        )
    }

    /// <p>Convenience function that calls glEndTransformFeedback().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glEndTransformFeedback()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glEndTransformFeedback">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glEndTransformFeedback().</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glEndTransformFeedback.xml">glEndTransformFeedback()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_end_transform_feedback(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glEndTransformFeedback(
            self as *mut crate::QOpenGLExtraFunctions,
        )
    }

    /// <p>Convenience function that calls glFlushMappedBufferRange(<i>target</i>, <i>offset</i>, <i>length</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glFlushMappedBufferRange(unsigned int target, long offset, long length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glFlushMappedBufferRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFlushMappedBufferRange(<i>target</i>, <i>offset</i>, <i>length</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glFlushMappedBufferRange.xml">glFlushMappedBufferRange()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_flush_mapped_buffer_range(
        &mut self,
        target: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_long,
        length: ::std::os::raw::c_long,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glFlushMappedBufferRange(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            offset,
            length,
        )
    }

    /// <p>Convenience function that calls glFramebufferParameteri(<i>target</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glFramebufferParameteri(unsigned int target, unsigned int pname, GLint param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glFramebufferParameteri">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFramebufferParameteri(<i>target</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glFramebufferParameteri.xml">glFramebufferParameteri()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_framebuffer_parameteri(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        param: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glFramebufferParameteri(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            param,
        )
    }

    /// <p>Convenience function that calls glFramebufferTexture(<i>target</i>, <i>attachment</i>, <i>texture</i>, <i>level</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glFramebufferTexture(unsigned int target, unsigned int attachment, GLuint texture, GLint level)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glFramebufferTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFramebufferTexture(<i>target</i>, <i>attachment</i>, <i>texture</i>, <i>level</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glFramebufferTexture.xhtml">glFramebufferTexture()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_framebuffer_texture(
        &mut self,
        target: ::std::os::raw::c_uint,
        attachment: ::std::os::raw::c_uint,
        texture: u32,
        level: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glFramebufferTexture(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            attachment,
            texture,
            level,
        )
    }

    /// <p>Convenience function that calls glFramebufferTextureLayer(<i>target</i>, <i>attachment</i>, <i>texture</i>, <i>level</i>, <i>layer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glFramebufferTextureLayer(unsigned int target, unsigned int attachment, GLuint texture, GLint level, GLint layer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glFramebufferTextureLayer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glFramebufferTextureLayer(<i>target</i>, <i>attachment</i>, <i>texture</i>, <i>level</i>, <i>layer</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glFramebufferTextureLayer.xml">glFramebufferTextureLayer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_framebuffer_texture_layer(
        &mut self,
        target: ::std::os::raw::c_uint,
        attachment: ::std::os::raw::c_uint,
        texture: u32,
        level: i32,
        layer: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glFramebufferTextureLayer(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            attachment,
            texture,
            level,
            layer,
        )
    }

    /// <p>Convenience function that calls glGenProgramPipelines(<i>n</i>, <i>pipelines</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGenProgramPipelines(int n, GLuint* pipelines)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGenProgramPipelines">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenProgramPipelines(<i>n</i>, <i>pipelines</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGenProgramPipelines.xml">glGenProgramPipelines()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_program_pipelines(
        &mut self,
        n: ::std::os::raw::c_int,
        pipelines: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGenProgramPipelines(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(pipelines).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGenQueries(<i>n</i>, <i>ids</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGenQueries(int n, GLuint* ids)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGenQueries">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenQueries(<i>n</i>, <i>ids</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGenQueries.xml">glGenQueries()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_queries(
        &mut self,
        n: ::std::os::raw::c_int,
        ids: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGenQueries(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(ids).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGenSamplers(<i>count</i>, <i>samplers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGenSamplers(int count, GLuint* samplers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGenSamplers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenSamplers(<i>count</i>, <i>samplers</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGenSamplers.xml">glGenSamplers()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_samplers(
        &mut self,
        count: ::std::os::raw::c_int,
        samplers: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGenSamplers(
            self as *mut crate::QOpenGLExtraFunctions,
            count,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(samplers).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGenTransformFeedbacks(<i>n</i>, <i>ids</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGenTransformFeedbacks(int n, GLuint* ids)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGenTransformFeedbacks">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenTransformFeedbacks(<i>n</i>, <i>ids</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGenTransformFeedbacks.xml">glGenTransformFeedbacks()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_transform_feedbacks(
        &mut self,
        n: ::std::os::raw::c_int,
        ids: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGenTransformFeedbacks(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(ids).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGenVertexArrays(<i>n</i>, <i>arrays</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGenVertexArrays(int n, GLuint* arrays)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGenVertexArrays">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGenVertexArrays(<i>n</i>, <i>arrays</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGenVertexArrays.xml">glGenVertexArrays()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_gen_vertex_arrays(
        &mut self,
        n: ::std::os::raw::c_int,
        arrays: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGenVertexArrays(
            self as *mut crate::QOpenGLExtraFunctions,
            n,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(arrays).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetActiveUniformBlockName(<i>program</i>, <i>uniformBlockIndex</i>, <i>bufSize</i>, <i>length</i>, <i>uniformBlockName</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, int bufSize, int* length, char* uniformBlockName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetActiveUniformBlockName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetActiveUniformBlockName(<i>program</i>, <i>uniformBlockIndex</i>, <i>bufSize</i>, <i>length</i>, <i>uniformBlockName</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetActiveUniformBlockName.xml">glGetActiveUniformBlockName()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_active_uniform_block_name(
        &mut self,
        program: u32,
        uniform_block_index: u32,
        buf_size: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        uniform_block_name: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetActiveUniformBlockName(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            uniform_block_index,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(
                uniform_block_name,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetActiveUniformBlockiv(<i>program</i>, <i>uniformBlockIndex</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetActiveUniformBlockiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetActiveUniformBlockiv(<i>program</i>, <i>uniformBlockIndex</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetActiveUniformBlockiv.xml">glGetActiveUniformBlockiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_active_uniform_blockiv(
        &mut self,
        program: u32,
        uniform_block_index: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetActiveUniformBlockiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            uniform_block_index,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetActiveUniformsiv(<i>program</i>, <i>uniformCount</i>, <i>uniformIndices</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetActiveUniformsiv(GLuint program, int uniformCount, const GLuint* uniformIndices, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetActiveUniformsiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetActiveUniformsiv(<i>program</i>, <i>uniformCount</i>, <i>uniformIndices</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetActiveUniformsiv.xml">glGetActiveUniformsiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_active_uniformsiv(
        &mut self,
        program: u32,
        uniform_count: ::std::os::raw::c_int,
        uniform_indices: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetActiveUniformsiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            uniform_count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(uniform_indices).as_raw_ptr(),
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetBooleani_v(<i>target</i>, <i>index</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetBooleani_v(unsigned int target, GLuint index, unsigned char* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetBooleani_v">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetBooleani_v(<i>target</i>, <i>index</i>, <i>data</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetBooleani_v.xml">glGetBooleani_v()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_booleani_v(
        &mut self,
        target: ::std::os::raw::c_uint,
        index: u32,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uchar>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetBooleani_v(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            index,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uchar>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetBufferParameteri64v(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetBufferParameteri64v(unsigned int target, unsigned int pname, GLint64* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetBufferParameteri64v">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetBufferParameteri64v(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetBufferParameteri64v.xml">glGetBufferParameteri64v()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_buffer_parameteri_64v(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetBufferParameteri64v(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i64>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetBufferPointerv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetBufferPointerv(unsigned int target, unsigned int pname, void** params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetBufferPointerv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetBufferPointerv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetBufferPointerv.xml">glGetBufferPointerv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_buffer_pointerv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetBufferPointerv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetDebugMessageLog(<i>count</i>, <i>bufSize</i>, <i>sources</i>, <i>types</i>, <i>ids</i>, <i>severities</i>, <i>lengths</i>, <i>messageLog</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLExtraFunctions::glGetDebugMessageLog(GLuint count, int bufSize, unsigned int* sources, unsigned int* types, GLuint* ids, unsigned int* severities, int* lengths, char* messageLog)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetDebugMessageLog">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetDebugMessageLog(<i>count</i>, <i>bufSize</i>, <i>sources</i>, <i>types</i>, <i>ids</i>, <i>severities</i>, <i>lengths</i>, <i>messageLog</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetDebugMessageLog.xhtml">glGetDebugMessageLog()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_debug_message_log(
        &mut self,
        count: u32,
        buf_size: ::std::os::raw::c_int,
        sources: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uint>>,
        types: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uint>>,
        ids: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
        severities: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uint>>,
        lengths: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        message_log: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetDebugMessageLog(
            self as *mut crate::QOpenGLExtraFunctions,
            count,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uint>>::cast_into(sources)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uint>>::cast_into(types)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(ids).as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uint>>::cast_into(
                severities,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(lengths)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(
                message_log,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetFragDataLocation(<i>program</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLint QOpenGLExtraFunctions::glGetFragDataLocation(GLuint program, const char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetFragDataLocation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetFragDataLocation(<i>program</i>, <i>name</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetFragDataLocation.xml">glGetFragDataLocation()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_frag_data_location(
        &mut self,
        program: u32,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> i32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetFragDataLocation(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetFramebufferParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetFramebufferParameteriv(unsigned int target, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetFramebufferParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetFramebufferParameteriv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetFramebufferParameteriv.xml">glGetFramebufferParameteriv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_framebuffer_parameteriv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetFramebufferParameteriv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetGraphicsResetStatus().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QOpenGLExtraFunctions::glGetGraphicsResetStatus()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetGraphicsResetStatus">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetGraphicsResetStatus().</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetGraphicsResetStatus.xhtml">glGetGraphicsResetStatus()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_graphics_reset_status(&mut self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetGraphicsResetStatus(
            self as *mut crate::QOpenGLExtraFunctions,
        )
    }

    /// <p>Convenience function that calls glGetInteger64i_v(<i>target</i>, <i>index</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetInteger64i_v(unsigned int target, GLuint index, GLint64* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetInteger64i_v">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetInteger64i_v(<i>target</i>, <i>index</i>, <i>data</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetInteger64i_v.xml">glGetInteger64i_v()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_integer_64i_v(
        &mut self,
        target: ::std::os::raw::c_uint,
        index: u32,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetInteger64i_v(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            index,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i64>>::cast_into(data).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetInteger64v(<i>pname</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetInteger64v(unsigned int pname, GLint64* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetInteger64v">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetInteger64v(<i>pname</i>, <i>data</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetInteger64v.xml">glGetInteger64v()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_integer_64v(
        &mut self,
        pname: ::std::os::raw::c_uint,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetInteger64v(
            self as *mut crate::QOpenGLExtraFunctions,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i64>>::cast_into(data).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetIntegeri_v(<i>target</i>, <i>index</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetIntegeri_v(unsigned int target, GLuint index, GLint* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetIntegeri_v">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetIntegeri_v(<i>target</i>, <i>index</i>, <i>data</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetIntegeri_v.xml">glGetIntegeri_v()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_integeri_v(
        &mut self,
        target: ::std::os::raw::c_uint,
        index: u32,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetIntegeri_v(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            index,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(data).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetInternalformativ(<i>target</i>, <i>internalformat</i>, <i>pname</i>, <i>bufSize</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetInternalformativ(unsigned int target, unsigned int internalformat, unsigned int pname, int bufSize, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetInternalformativ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetInternalformativ(<i>target</i>, <i>internalformat</i>, <i>pname</i>, <i>bufSize</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetInternalformativ.xml">glGetInternalformativ()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_internalformativ(
        &mut self,
        target: ::std::os::raw::c_uint,
        internalformat: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        buf_size: ::std::os::raw::c_int,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetInternalformativ(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            internalformat,
            pname,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetMultisamplefv(<i>pname</i>, <i>index</i>, <i>val</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetMultisamplefv(unsigned int pname, GLuint index, float* val)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetMultisamplefv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetMultisamplefv(<i>pname</i>, <i>index</i>, <i>val</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetMultisamplefv.xml">glGetMultisamplefv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_multisamplefv(
        &mut self,
        pname: ::std::os::raw::c_uint,
        index: u32,
        val: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetMultisamplefv(
            self as *mut crate::QOpenGLExtraFunctions,
            pname,
            index,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(val)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetObjectLabel(<i>identifier</i>, <i>name</i>, <i>bufSize</i>, <i>length</i>, <i>label</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetObjectLabel(unsigned int identifier, GLuint name, int bufSize, int* length, char* label)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetObjectLabel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetObjectLabel(<i>identifier</i>, <i>name</i>, <i>bufSize</i>, <i>length</i>, <i>label</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetObjectLabel.xhtml">glGetObjectLabe()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_object_label(
        &mut self,
        identifier: ::std::os::raw::c_uint,
        name: u32,
        buf_size: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        label: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetObjectLabel(
            self as *mut crate::QOpenGLExtraFunctions,
            identifier,
            name,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(label)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetObjectPtrLabel(<i>ptr</i>, <i>bufSize</i>, <i>length</i>, <i>label</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetObjectPtrLabel(const void* ptr, int bufSize, int* length, char* label)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetObjectPtrLabel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetObjectPtrLabel(<i>ptr</i>, <i>bufSize</i>, <i>length</i>, <i>label</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetObjectPtrLabel.xhtml">glGetObjectPtrLabe()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_object_ptr_label(
        &mut self,
        ptr: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        buf_size: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        label: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetObjectPtrLabel(
            self as *mut crate::QOpenGLExtraFunctions,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(ptr)
                .as_raw_ptr(),
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(label)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetPointerv(<i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetPointerv(unsigned int pname, void** params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetPointerv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetPointerv(<i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetPointerv.xhtml">glGetPointerv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_pointerv(
        &mut self,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetPointerv(
            self as *mut crate::QOpenGLExtraFunctions,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramBinary(<i>program</i>, <i>bufSize</i>, <i>length</i>, <i>binaryFormat</i>, <i>binary</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetProgramBinary(GLuint program, int bufSize, int* length, unsigned int* binaryFormat, void* binary)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetProgramBinary">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramBinary(<i>program</i>, <i>bufSize</i>, <i>length</i>, <i>binaryFormat</i>, <i>binary</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetProgramBinary.xml">glGetProgramBinary()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_binary(
        &mut self,
        program: u32,
        buf_size: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        binary_format: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uint>>,
        binary: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetProgramBinary(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uint>>::cast_into(
                binary_format,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(binary)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramInterfaceiv(<i>program</i>, <i>programInterface</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetProgramInterfaceiv(GLuint program, unsigned int programInterface, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetProgramInterfaceiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramInterfaceiv(<i>program</i>, <i>programInterface</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetProgramInterfaceiv.xml">glGetProgramInterfaceiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_interfaceiv(
        &mut self,
        program: u32,
        program_interface: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetProgramInterfaceiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            program_interface,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramPipelineInfoLog(<i>pipeline</i>, <i>bufSize</i>, <i>length</i>, <i>infoLog</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetProgramPipelineInfoLog(GLuint pipeline, int bufSize, int* length, char* infoLog)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetProgramPipelineInfoLog">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramPipelineInfoLog(<i>pipeline</i>, <i>bufSize</i>, <i>length</i>, <i>infoLog</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetProgramPipelineInfoLog.xml">glGetProgramPipelineInfoLog()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_pipeline_info_log(
        &mut self,
        pipeline: u32,
        buf_size: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        info_log: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetProgramPipelineInfoLog(
            self as *mut crate::QOpenGLExtraFunctions,
            pipeline,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(info_log)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramPipelineiv(<i>pipeline</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetProgramPipelineiv(GLuint pipeline, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetProgramPipelineiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramPipelineiv(<i>pipeline</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetProgramPipelineiv.xml">glGetProgramPipelineiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_pipelineiv(
        &mut self,
        pipeline: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetProgramPipelineiv(
            self as *mut crate::QOpenGLExtraFunctions,
            pipeline,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramResourceIndex(<i>program</i>, <i>programInterface</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLExtraFunctions::glGetProgramResourceIndex(GLuint program, unsigned int programInterface, const char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetProgramResourceIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramResourceIndex(<i>program</i>, <i>programInterface</i>, <i>name</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetProgramResourceIndex.xml">glGetProgramResourceIndex()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_resource_index(
        &mut self,
        program: u32,
        program_interface: ::std::os::raw::c_uint,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetProgramResourceIndex(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            program_interface,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramResourceLocation(<i>program</i>, <i>programInterface</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLint QOpenGLExtraFunctions::glGetProgramResourceLocation(GLuint program, unsigned int programInterface, const char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetProgramResourceLocation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramResourceLocation(<i>program</i>, <i>programInterface</i>, <i>name</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetProgramResourceLocation.xml">glGetProgramResourceLocation()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_resource_location(
        &mut self,
        program: u32,
        program_interface: ::std::os::raw::c_uint,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> i32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetProgramResourceLocation(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            program_interface,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramResourceName(<i>program</i>, <i>programInterface</i>, <i>index</i>, <i>bufSize</i>, <i>length</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetProgramResourceName(GLuint program, unsigned int programInterface, GLuint index, int bufSize, int* length, char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetProgramResourceName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramResourceName(<i>program</i>, <i>programInterface</i>, <i>index</i>, <i>bufSize</i>, <i>length</i>, <i>name</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetProgramResourceName.xml">glGetProgramResourceName()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_resource_name(
        &mut self,
        program: u32,
        program_interface: ::std::os::raw::c_uint,
        index: u32,
        buf_size: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        name: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetProgramResourceName(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            program_interface,
            index,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(name)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetProgramResourceiv(<i>program</i>, <i>programInterface</i>, <i>index</i>, <i>propCount</i>, <i>props</i>, <i>bufSize</i>, <i>length</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetProgramResourceiv(GLuint program, unsigned int programInterface, GLuint index, int propCount, const unsigned int* props, int bufSize, int* length, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetProgramResourceiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetProgramResourceiv(<i>program</i>, <i>programInterface</i>, <i>index</i>, <i>propCount</i>, <i>props</i>, <i>bufSize</i>, <i>length</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetProgramResourceiv.xml">glGetProgramResourceiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_program_resourceiv(
        &mut self,
        program: u32,
        program_interface: ::std::os::raw::c_uint,
        index: u32,
        prop_count: ::std::os::raw::c_int,
        props: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uint>>,
        buf_size: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetProgramResourceiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            program_interface,
            index,
            prop_count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uint>>::cast_into(props)
                .as_raw_ptr(),
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetQueryObjectuiv(<i>id</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetQueryObjectuiv(GLuint id, unsigned int pname, GLuint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetQueryObjectuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetQueryObjectuiv(<i>id</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetQueryObjectuiv.xml">glGetQueryObjectuiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_query_objectuiv(
        &mut self,
        id: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetQueryObjectuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            id,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetQueryiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetQueryiv(unsigned int target, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetQueryiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetQueryiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetQueryiv.xml">glGetQueryiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_queryiv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetQueryiv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetSamplerParameterIiv(<i>sampler</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetSamplerParameterIiv(GLuint sampler, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetSamplerParameterIiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetSamplerParameterIiv(<i>sampler</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetSamplerParameter.xhtml">glGetSamplerParameterIiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_sampler_parameter_iiv(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetSamplerParameterIiv(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetSamplerParameterIuiv(<i>sampler</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetSamplerParameterIuiv(GLuint sampler, unsigned int pname, GLuint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetSamplerParameterIuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetSamplerParameterIuiv(<i>sampler</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetSamplerParameter.xhtml">glGetSamplerParameterIuiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_sampler_parameter_iuiv(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetSamplerParameterIuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetSamplerParameterfv(<i>sampler</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetSamplerParameterfv(GLuint sampler, unsigned int pname, float* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetSamplerParameterfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetSamplerParameterfv(<i>sampler</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetSamplerParameterfv.xml">glGetSamplerParameterfv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_sampler_parameterfv(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetSamplerParameterfv(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetSamplerParameteriv(<i>sampler</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetSamplerParameteriv(GLuint sampler, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetSamplerParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetSamplerParameteriv(<i>sampler</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetSamplerParameteriv.xml">glGetSamplerParameteriv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_sampler_parameteriv(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetSamplerParameteriv(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetStringi(<i>name</i>, <i>index</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLubyte* QOpenGLExtraFunctions::glGetStringi(unsigned int name, GLuint index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetStringi">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetStringi(<i>name</i>, <i>index</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetStringi.xml">glGetStringi()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_stringi(
        &mut self,
        name: ::std::os::raw::c_uint,
        index: u32,
    ) -> ::cpp_core::Ptr<u8> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetStringi(
            self as *mut crate::QOpenGLExtraFunctions,
            name,
            index,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Convenience function that calls glGetTexLevelParameterfv(<i>target</i>, <i>level</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetTexLevelParameterfv(unsigned int target, GLint level, unsigned int pname, float* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetTexLevelParameterfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetTexLevelParameterfv(<i>target</i>, <i>level</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetTexLevelParameterfv.xml">glGetTexLevelParameterfv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_tex_level_parameterfv(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetTexLevelParameterfv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            level,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetTexLevelParameteriv(<i>target</i>, <i>level</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetTexLevelParameteriv(unsigned int target, GLint level, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetTexLevelParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetTexLevelParameteriv(<i>target</i>, <i>level</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetTexLevelParameteriv.xml">glGetTexLevelParameteriv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_tex_level_parameteriv(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetTexLevelParameteriv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            level,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetTexParameterIiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetTexParameterIiv(unsigned int target, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetTexParameterIiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetTexParameterIiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetTexParameter.xhtml">glGetTexParameterIiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_tex_parameter_iiv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetTexParameterIiv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetTexParameterIuiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetTexParameterIuiv(unsigned int target, unsigned int pname, GLuint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetTexParameterIuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetTexParameterIuiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetTexParameter.xhtml">glGetTexParameterIuiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_get_tex_parameter_iuiv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetTexParameterIuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetTransformFeedbackVarying(<i>program</i>, <i>index</i>, <i>bufSize</i>, <i>length</i>, <i>size</i>, <i>type</i>, <i>name</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetTransformFeedbackVarying(GLuint program, GLuint index, int bufSize, int* length, int* size, unsigned int* type, char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetTransformFeedbackVarying">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetTransformFeedbackVarying(<i>program</i>, <i>index</i>, <i>bufSize</i>, <i>length</i>, <i>size</i>, <i>type</i>, <i>name</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetTransformFeedbackVarying.xml">glGetTransformFeedbackVarying()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_transform_feedback_varying(
        &mut self,
        program: u32,
        index: u32,
        buf_size: ::std::os::raw::c_int,
        length: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        size: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        type_: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uint>>,
        name: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetTransformFeedbackVarying(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            index,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(length)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(size)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uint>>::cast_into(type_)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_char>>::cast_into(name)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetUniformBlockIndex(<i>program</i>, <i>uniformBlockName</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLExtraFunctions::glGetUniformBlockIndex(GLuint program, const char* uniformBlockName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetUniformBlockIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetUniformBlockIndex(<i>program</i>, <i>uniformBlockName</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetUniformBlockIndex.xml">glGetUniformBlockIndex()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_uniform_block_index(
        &mut self,
        program: u32,
        uniform_block_name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetUniformBlockIndex(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(
                uniform_block_name,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetUniformuiv(<i>program</i>, <i>location</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetUniformuiv(GLuint program, GLint location, GLuint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetUniformuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetUniformuiv(<i>program</i>, <i>location</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetUniformuiv.xml">glGetUniformuiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_uniformuiv(
        &mut self,
        program: u32,
        location: i32,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetUniformuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetVertexAttribIiv(<i>index</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetVertexAttribIiv(GLuint index, unsigned int pname, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetVertexAttribIiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetVertexAttribIiv(<i>index</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetVertexAttribIiv.xml">glGetVertexAttribIiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_vertex_attrib_iiv(
        &mut self,
        index: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetVertexAttribIiv(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetVertexAttribIuiv(<i>index</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetVertexAttribIuiv(GLuint index, unsigned int pname, GLuint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetVertexAttribIuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetVertexAttribIuiv(<i>index</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glGetVertexAttribIuiv.xml">glGetVertexAttribIuiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_get_vertex_attrib_iuiv(
        &mut self,
        index: u32,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetVertexAttribIuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            pname,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetnUniformfv(<i>program</i>, <i>location</i>, <i>bufSize</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetnUniformfv(GLuint program, GLint location, int bufSize, float* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetnUniformfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetnUniformfv(<i>program</i>, <i>location</i>, <i>bufSize</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetUniform.xhtml">glGetnUniformfv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_getn_uniformfv(
        &mut self,
        program: u32,
        location: i32,
        buf_size: ::std::os::raw::c_int,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetnUniformfv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(params)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetnUniformiv(<i>program</i>, <i>location</i>, <i>bufSize</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetnUniformiv(GLuint program, GLint location, int bufSize, GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetnUniformiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetnUniformiv(<i>program</i>, <i>location</i>, <i>bufSize</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetUniform.xhtml">glGetnUniformiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_getn_uniformiv(
        &mut self,
        program: u32,
        location: i32,
        buf_size: ::std::os::raw::c_int,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetnUniformiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<i32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glGetnUniformuiv(<i>program</i>, <i>location</i>, <i>bufSize</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glGetnUniformuiv(GLuint program, GLint location, int bufSize, GLuint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glGetnUniformuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glGetnUniformuiv(<i>program</i>, <i>location</i>, <i>bufSize</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glGetUniform.xhtml">glGetnUniformuiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_getn_uniformuiv(
        &mut self,
        program: u32,
        location: i32,
        buf_size: ::std::os::raw::c_int,
        params: impl ::cpp_core::CastInto<::cpp_core::MutPtr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glGetnUniformuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<u32>>::cast_into(params).as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glInvalidateFramebuffer(<i>target</i>, <i>numAttachments</i>, <i>attachments</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glInvalidateFramebuffer(unsigned int target, int numAttachments, const unsigned int* attachments)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glInvalidateFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glInvalidateFramebuffer(<i>target</i>, <i>numAttachments</i>, <i>attachments</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glInvalidateFramebuffer.xml">glInvalidateFramebuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_invalidate_framebuffer(
        &mut self,
        target: ::std::os::raw::c_uint,
        num_attachments: ::std::os::raw::c_int,
        attachments: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glInvalidateFramebuffer(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            num_attachments,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uint>>::cast_into(attachments)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glInvalidateSubFramebuffer(<i>target</i>, <i>numAttachments</i>, <i>attachments</i>, <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glInvalidateSubFramebuffer(unsigned int target, int numAttachments, const unsigned int* attachments, GLint x, GLint y, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glInvalidateSubFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glInvalidateSubFramebuffer(<i>target</i>, <i>numAttachments</i>, <i>attachments</i>, <i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glInvalidateSubFramebuffer.xml">glInvalidateSubFramebuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_invalidate_sub_framebuffer(
        &mut self,
        target: ::std::os::raw::c_uint,
        num_attachments: ::std::os::raw::c_int,
        attachments: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_uint>>,
        x: i32,
        y: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glInvalidateSubFramebuffer(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            num_attachments,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_uint>>::cast_into(attachments)
                .as_raw_ptr(),
            x,
            y,
            width,
            height,
        )
    }

    /// <p>Convenience function that calls glIsEnabledi(<i>target</i>, <i>index</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLExtraFunctions::glIsEnabledi(unsigned int target, GLuint index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glIsEnabledi">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsEnabledi(<i>target</i>, <i>index</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glIsEnabled.xhtml">glIsEnabledi()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_is_enabledi(
        &mut self,
        target: ::std::os::raw::c_uint,
        index: u32,
    ) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glIsEnabledi(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            index,
        )
    }

    /// <p>Convenience function that calls glIsProgramPipeline(<i>pipeline</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLExtraFunctions::glIsProgramPipeline(GLuint pipeline)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glIsProgramPipeline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsProgramPipeline(<i>pipeline</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glIsProgramPipeline.xml">glIsProgramPipeline()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_program_pipeline(&mut self, pipeline: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glIsProgramPipeline(
            self as *mut crate::QOpenGLExtraFunctions,
            pipeline,
        )
    }

    /// <p>Convenience function that calls glIsQuery(<i>id</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLExtraFunctions::glIsQuery(GLuint id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glIsQuery">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsQuery(<i>id</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glIsQuery.xml">glIsQuery()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_query(&mut self, id: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glIsQuery(
            self as *mut crate::QOpenGLExtraFunctions,
            id,
        )
    }

    /// <p>Convenience function that calls glIsSampler(<i>sampler</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLExtraFunctions::glIsSampler(GLuint sampler)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glIsSampler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsSampler(<i>sampler</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glIsSampler.xml">glIsSampler()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_sampler(&mut self, sampler: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glIsSampler(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
        )
    }

    /// <p>Convenience function that calls glIsTransformFeedback(<i>id</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLExtraFunctions::glIsTransformFeedback(GLuint id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glIsTransformFeedback">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsTransformFeedback(<i>id</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glIsTransformFeedback.xml">glIsTransformFeedback()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_transform_feedback(&mut self, id: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glIsTransformFeedback(
            self as *mut crate::QOpenGLExtraFunctions,
            id,
        )
    }

    /// <p>Convenience function that calls glIsVertexArray(<i>array</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLExtraFunctions::glIsVertexArray(GLuint array)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glIsVertexArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glIsVertexArray(<i>array</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glIsVertexArray.xml">glIsVertexArray()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_is_vertex_array(&mut self, array: u32) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glIsVertexArray(
            self as *mut crate::QOpenGLExtraFunctions,
            array,
        )
    }

    /// <p>Convenience function that calls glMapBufferRange(<i>target</i>, <i>offset</i>, <i>length</i>, <i>access</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void* QOpenGLExtraFunctions::glMapBufferRange(unsigned int target, long offset, long length, unsigned int access)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glMapBufferRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glMapBufferRange(<i>target</i>, <i>offset</i>, <i>length</i>, <i>access</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glMapBufferRange.xml">glMapBufferRange()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_map_buffer_range(
        &mut self,
        target: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_long,
        length: ::std::os::raw::c_long,
        access: ::std::os::raw::c_uint,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glMapBufferRange(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            offset,
            length,
            access,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Convenience function that calls glMemoryBarrier(<i>barriers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glMemoryBarrier(unsigned int barriers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glMemoryBarrier">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glMemoryBarrier(<i>barriers</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glMemoryBarrier.xml">glMemoryBarrier()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_memory_barrier(&mut self, barriers: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glMemoryBarrier(
            self as *mut crate::QOpenGLExtraFunctions,
            barriers,
        )
    }

    /// <p>Convenience function that calls glMemoryBarrierByRegion(<i>barriers</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glMemoryBarrierByRegion(unsigned int barriers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glMemoryBarrierByRegion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glMemoryBarrierByRegion(<i>barriers</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glMemoryBarrierByRegion.xml">glMemoryBarrierByRegion()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_memory_barrier_by_region(&mut self, barriers: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glMemoryBarrierByRegion(
            self as *mut crate::QOpenGLExtraFunctions,
            barriers,
        )
    }

    /// <p>Convenience function that calls glMinSampleShading(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glMinSampleShading(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glMinSampleShading">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glMinSampleShading(<i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glMinSampleShading.xhtml">glMinSampleShading()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_min_sample_shading(&mut self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glMinSampleShading(
            self as *mut crate::QOpenGLExtraFunctions,
            value,
        )
    }

    /// <p>Convenience function that calls glObjectLabel(<i>identifier</i>, <i>name</i>, <i>length</i>, <i>label</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glObjectLabel(unsigned int identifier, GLuint name, int length, const char* label)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glObjectLabel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glObjectLabel(<i>identifier</i>, <i>name</i>, <i>length</i>, <i>label</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glObjectLabel.xhtml">glObjectLabe()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_object_label(
        &mut self,
        identifier: ::std::os::raw::c_uint,
        name: u32,
        length: ::std::os::raw::c_int,
        label: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glObjectLabel(
            self as *mut crate::QOpenGLExtraFunctions,
            identifier,
            name,
            length,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(label)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glObjectPtrLabel(<i>ptr</i>, <i>length</i>, <i>label</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glObjectPtrLabel(const void* ptr, int length, const char* label)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glObjectPtrLabel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glObjectPtrLabel(<i>ptr</i>, <i>length</i>, <i>label</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glObjectPtrLabel.xhtml">glObjectPtrLabe()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_object_ptr_label(
        &mut self,
        ptr: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        length: ::std::os::raw::c_int,
        label: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glObjectPtrLabel(
            self as *mut crate::QOpenGLExtraFunctions,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(ptr)
                .as_raw_ptr(),
            length,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(label)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glPatchParameteri(<i>pname</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glPatchParameteri(unsigned int pname, GLint value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glPatchParameteri">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glPatchParameteri(<i>pname</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glPatchParameteri.xhtml">glPatchParameteri()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_patch_parameteri(&mut self, pname: ::std::os::raw::c_uint, value: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glPatchParameteri(
            self as *mut crate::QOpenGLExtraFunctions,
            pname,
            value,
        )
    }

    /// <p>Convenience function that calls glPauseTransformFeedback().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glPauseTransformFeedback()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glPauseTransformFeedback">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glPauseTransformFeedback().</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glPauseTransformFeedback.xml">glPauseTransformFeedback()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_pause_transform_feedback(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glPauseTransformFeedback(
            self as *mut crate::QOpenGLExtraFunctions,
        )
    }

    /// <p>Convenience function that calls glPopDebugGroup().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glPopDebugGroup()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glPopDebugGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glPopDebugGroup().</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glPopDebugGroup.xhtml">glPopDebugGroup()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_pop_debug_group(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glPopDebugGroup(
            self as *mut crate::QOpenGLExtraFunctions,
        )
    }

    /// <p>Convenience function that calls glPrimitiveBoundingBox(<i>minX</i>, <i>minY</i>, <i>minZ</i>, <i>minW</i>, <i>maxX</i>, <i>maxY</i>, <i>maxZ</i>, <i>maxW</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glPrimitiveBoundingBox(float minX, float minY, float minZ, float minW, float maxX, float maxY, float maxZ, float maxW)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glPrimitiveBoundingBox">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glPrimitiveBoundingBox(<i>minX</i>, <i>minY</i>, <i>minZ</i>, <i>minW</i>, <i>maxX</i>, <i>maxY</i>, <i>maxZ</i>, <i>maxW</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glPrimitiveBoundingBox.xhtml">glPrimitiveBoundingBo()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_primitive_bounding_box(
        &mut self,
        min_x: ::std::os::raw::c_float,
        min_y: ::std::os::raw::c_float,
        min_z: ::std::os::raw::c_float,
        min_w: ::std::os::raw::c_float,
        max_x: ::std::os::raw::c_float,
        max_y: ::std::os::raw::c_float,
        max_z: ::std::os::raw::c_float,
        max_w: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glPrimitiveBoundingBox(
            self as *mut crate::QOpenGLExtraFunctions,
            min_x,
            min_y,
            min_z,
            min_w,
            max_x,
            max_y,
            max_z,
            max_w,
        )
    }

    /// <p>Convenience function that calls glProgramBinary(<i>program</i>, <i>binaryFormat</i>, <i>binary</i>, <i>length</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramBinary(GLuint program, unsigned int binaryFormat, const void* binary, int length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramBinary">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramBinary(<i>program</i>, <i>binaryFormat</i>, <i>binary</i>, <i>length</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramBinary.xml">glProgramBinary()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_binary(
        &mut self,
        program: u32,
        binary_format: ::std::os::raw::c_uint,
        binary: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        length: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramBinary(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            binary_format,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(binary)
                .as_raw_ptr(),
            length,
        )
    }

    /// <p>Convenience function that calls glProgramParameteri(<i>program</i>, <i>pname</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramParameteri(GLuint program, unsigned int pname, GLint value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramParameteri">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramParameteri(<i>program</i>, <i>pname</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramParameteri.xml">glProgramParameteri()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_parameteri(
        &mut self,
        program: u32,
        pname: ::std::os::raw::c_uint,
        value: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramParameteri(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            pname,
            value,
        )
    }

    /// <p>Convenience function that calls glProgramUniform1f(<i>program</i>, <i>location</i>, <i>v0</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform1f(GLuint program, GLint location, float v0)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform1f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform1f(<i>program</i>, <i>location</i>, <i>v0</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform1f.xml">glProgramUniform1f()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_1f(
        &mut self,
        program: u32,
        location: i32,
        v0: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform1f(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
        )
    }

    /// <p>Convenience function that calls glProgramUniform1fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform1fv(GLuint program, GLint location, int count, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform1fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform1fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform1fv.xml">glProgramUniform1fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_1fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform1fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform1i(<i>program</i>, <i>location</i>, <i>v0</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform1i(GLuint program, GLint location, GLint v0)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform1i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform1i(<i>program</i>, <i>location</i>, <i>v0</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform1i.xml">glProgramUniform1i()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_1i(&mut self, program: u32, location: i32, v0: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform1i(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
        )
    }

    /// <p>Convenience function that calls glProgramUniform1iv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform1iv(GLuint program, GLint location, int count, const GLint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform1iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform1iv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform1iv.xml">glProgramUniform1iv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_1iv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform1iv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform1ui(<i>program</i>, <i>location</i>, <i>v0</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform1ui(GLuint program, GLint location, GLuint v0)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform1ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform1ui(<i>program</i>, <i>location</i>, <i>v0</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform1ui.xml">glProgramUniform1ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_1ui(&mut self, program: u32, location: i32, v0: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform1ui(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
        )
    }

    /// <p>Convenience function that calls glProgramUniform1uiv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform1uiv(GLuint program, GLint location, int count, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform1uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform1uiv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform1uiv.xml">glProgramUniform1uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_1uiv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform1uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform2f(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform2f(GLuint program, GLint location, float v0, float v1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform2f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform2f(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform2f.xml">glProgramUniform2f()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_2f(
        &mut self,
        program: u32,
        location: i32,
        v0: ::std::os::raw::c_float,
        v1: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform2f(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
        )
    }

    /// <p>Convenience function that calls glProgramUniform2fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform2fv(GLuint program, GLint location, int count, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform2fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform2fv.xml">glProgramUniform2fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_2fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform2fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform2i(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform2i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform2i(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform2i.xml">glProgramUniform2i()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_2i(&mut self, program: u32, location: i32, v0: i32, v1: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform2i(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
        )
    }

    /// <p>Convenience function that calls glProgramUniform2iv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform2iv(GLuint program, GLint location, int count, const GLint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform2iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform2iv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform2iv.xml">glProgramUniform2iv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_2iv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform2iv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform2ui(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform2ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform2ui(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform2ui.xml">glProgramUniform2ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_2ui(&mut self, program: u32, location: i32, v0: u32, v1: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform2ui(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
        )
    }

    /// <p>Convenience function that calls glProgramUniform2uiv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform2uiv(GLuint program, GLint location, int count, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform2uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform2uiv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform2uiv.xml">glProgramUniform2uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_2uiv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform2uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform3f(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform3f(GLuint program, GLint location, float v0, float v1, float v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform3f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform3f(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform3f.xml">glProgramUniform3f()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_3f(
        &mut self,
        program: u32,
        location: i32,
        v0: ::std::os::raw::c_float,
        v1: ::std::os::raw::c_float,
        v2: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform3f(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
            v2,
        )
    }

    /// <p>Convenience function that calls glProgramUniform3fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform3fv(GLuint program, GLint location, int count, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform3fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform3fv.xml">glProgramUniform3fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_3fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform3fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform3i(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform3i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform3i(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform3i.xml">glProgramUniform3i()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_3i(
        &mut self,
        program: u32,
        location: i32,
        v0: i32,
        v1: i32,
        v2: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform3i(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
            v2,
        )
    }

    /// <p>Convenience function that calls glProgramUniform3iv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform3iv(GLuint program, GLint location, int count, const GLint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform3iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform3iv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform3iv.xml">glProgramUniform3iv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_3iv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform3iv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform3ui(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform3ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform3ui(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform3ui.xml">glProgramUniform3ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_3ui(
        &mut self,
        program: u32,
        location: i32,
        v0: u32,
        v1: u32,
        v2: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform3ui(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
            v2,
        )
    }

    /// <p>Convenience function that calls glProgramUniform3uiv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform3uiv(GLuint program, GLint location, int count, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform3uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform3uiv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform3uiv.xml">glProgramUniform3uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_3uiv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform3uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform4f(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>, <i>v3</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform4f(GLuint program, GLint location, float v0, float v1, float v2, float v3)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform4f">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform4f(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>, <i>v3</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform4f.xml">glProgramUniform4f()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_4f(
        &mut self,
        program: u32,
        location: i32,
        v0: ::std::os::raw::c_float,
        v1: ::std::os::raw::c_float,
        v2: ::std::os::raw::c_float,
        v3: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform4f(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
            v2,
            v3,
        )
    }

    /// <p>Convenience function that calls glProgramUniform4fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform4fv(GLuint program, GLint location, int count, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform4fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform4fv.xml">glProgramUniform4fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_4fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform4fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform4i(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>, <i>v3</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform4i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform4i(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>, <i>v3</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform4i.xml">glProgramUniform4i()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_4i(
        &mut self,
        program: u32,
        location: i32,
        v0: i32,
        v1: i32,
        v2: i32,
        v3: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform4i(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
            v2,
            v3,
        )
    }

    /// <p>Convenience function that calls glProgramUniform4iv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform4iv(GLuint program, GLint location, int count, const GLint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform4iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform4iv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform4iv.xml">glProgramUniform4iv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_4iv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform4iv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniform4ui(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>, <i>v3</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform4ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform4ui(<i>program</i>, <i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>, <i>v3</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform4ui.xml">glProgramUniform4ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_4ui(
        &mut self,
        program: u32,
        location: i32,
        v0: u32,
        v1: u32,
        v2: u32,
        v3: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform4ui(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            v0,
            v1,
            v2,
            v3,
        )
    }

    /// <p>Convenience function that calls glProgramUniform4uiv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniform4uiv(GLuint program, GLint location, int count, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniform4uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniform4uiv(<i>program</i>, <i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniform4uiv.xml">glProgramUniform4uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_4uiv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniform4uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix2fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix2fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix2fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix2fv.xml">glProgramUniformMatrix2fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_2fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix2fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix2x3fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix2x3fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix2x3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix2x3fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix2x3fv.xml">glProgramUniformMatrix2x3fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_2x_3fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix2x3fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix2x4fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix2x4fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix2x4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix2x4fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix2x4fv.xml">glProgramUniformMatrix2x4fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_2x_4fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix2x4fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix3fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix3fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix3fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix3fv.xml">glProgramUniformMatrix3fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_3fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix3fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix3x2fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix3x2fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix3x2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix3x2fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix3x2fv.xml">glProgramUniformMatrix3x2fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_3x_2fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix3x2fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix3x4fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix3x4fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix3x4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix3x4fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix3x4fv.xml">glProgramUniformMatrix3x4fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_3x_4fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix3x4fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix4fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix4fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix4fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix4fv.xml">glProgramUniformMatrix4fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_4fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix4fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix4x2fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix4x2fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix4x2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix4x2fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix4x2fv.xml">glProgramUniformMatrix4x2fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_4x_2fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix4x2fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glProgramUniformMatrix4x3fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glProgramUniformMatrix4x3fv(GLuint program, GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glProgramUniformMatrix4x3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glProgramUniformMatrix4x3fv(<i>program</i>, <i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glProgramUniformMatrix4x3fv.xml">glProgramUniformMatrix4x3fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_program_uniform_matrix_4x_3fv(
        &mut self,
        program: u32,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glProgramUniformMatrix4x3fv(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glPushDebugGroup(<i>source</i>, <i>id</i>, <i>length</i>, <i>message</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glPushDebugGroup(unsigned int source, GLuint id, int length, const char* message)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glPushDebugGroup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glPushDebugGroup(<i>source</i>, <i>id</i>, <i>length</i>, <i>message</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glPushDebugGroup.xhtml">glPushDebugGroup()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_push_debug_group(
        &mut self,
        source: ::std::os::raw::c_uint,
        id: u32,
        length: ::std::os::raw::c_int,
        message: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glPushDebugGroup(
            self as *mut crate::QOpenGLExtraFunctions,
            source,
            id,
            length,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(message)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glReadBuffer(<i>src</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glReadBuffer(unsigned int mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glReadBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glReadBuffer(<i>src</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glReadBuffer.xml">glReadBuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_read_buffer(&mut self, mode: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glReadBuffer(
            self as *mut crate::QOpenGLExtraFunctions,
            mode,
        )
    }

    /// <p>Convenience function that calls glReadnPixels(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>, <i>format</i>, <i>type</i>, <i>bufSize</i>, <i>data</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glReadnPixels(GLint x, GLint y, int width, int height, unsigned int format, unsigned int type, int bufSize, void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glReadnPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glReadnPixels(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>, <i>format</i>, <i>type</i>, <i>bufSize</i>, <i>data</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glReadPixels.xhtml">glReadnPixels()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_readn_pixels(
        &mut self,
        x: i32,
        y: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        buf_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glReadnPixels(
            self as *mut crate::QOpenGLExtraFunctions,
            x,
            y,
            width,
            height,
            format,
            type_,
            buf_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glRenderbufferStorageMultisample(<i>target</i>, <i>samples</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glRenderbufferStorageMultisample(unsigned int target, int samples, unsigned int internalformat, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glRenderbufferStorageMultisample">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glRenderbufferStorageMultisample(<i>target</i>, <i>samples</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glRenderbufferStorageMultisample.xml">glRenderbufferStorageMultisample()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_renderbuffer_storage_multisample(
        &mut self,
        target: ::std::os::raw::c_uint,
        samples: ::std::os::raw::c_int,
        internalformat: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glRenderbufferStorageMultisample(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            samples,
            internalformat,
            width,
            height,
        )
    }

    /// <p>Convenience function that calls glResumeTransformFeedback().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glResumeTransformFeedback()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glResumeTransformFeedback">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glResumeTransformFeedback().</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glResumeTransformFeedback.xml">glResumeTransformFeedback()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_resume_transform_feedback(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glResumeTransformFeedback(
            self as *mut crate::QOpenGLExtraFunctions,
        )
    }

    /// <p>Convenience function that calls glSampleMaski(<i>maskNumber</i>, <i>mask</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glSampleMaski(GLuint maskNumber, unsigned int mask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glSampleMaski">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glSampleMaski(<i>maskNumber</i>, <i>mask</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glSampleMaski.xml">glSampleMaski()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_sample_maski(&mut self, mask_number: u32, mask: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glSampleMaski(
            self as *mut crate::QOpenGLExtraFunctions,
            mask_number,
            mask,
        )
    }

    /// <p>Convenience function that calls glSamplerParameterIiv(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glSamplerParameterIiv(GLuint sampler, unsigned int pname, const GLint* param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glSamplerParameterIiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glSamplerParameterIiv(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glSamplerParameter.xhtml">glSamplerParameterIiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_sampler_parameter_iiv(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        param: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glSamplerParameterIiv(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(param).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glSamplerParameterIuiv(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glSamplerParameterIuiv(GLuint sampler, unsigned int pname, const GLuint* param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glSamplerParameterIuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glSamplerParameterIuiv(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glSamplerParameter.xhtml">glSamplerParameterIuiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_sampler_parameter_iuiv(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        param: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glSamplerParameterIuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(param).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glSamplerParameterf(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glSamplerParameterf(GLuint sampler, unsigned int pname, float param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glSamplerParameterf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glSamplerParameterf(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glSamplerParameterf.xml">glSamplerParameterf()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_sampler_parameterf(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        param: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glSamplerParameterf(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            param,
        )
    }

    /// <p>Convenience function that calls glSamplerParameterfv(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glSamplerParameterfv(GLuint sampler, unsigned int pname, const float* param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glSamplerParameterfv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glSamplerParameterfv(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glSamplerParameterfv.xml">glSamplerParameterfv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_sampler_parameterfv(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        param: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glSamplerParameterfv(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(param)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glSamplerParameteri(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glSamplerParameteri(GLuint sampler, unsigned int pname, GLint param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glSamplerParameteri">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glSamplerParameteri(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glSamplerParameteri.xml">glSamplerParameteri()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_sampler_parameteri(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        param: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glSamplerParameteri(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            param,
        )
    }

    /// <p>Convenience function that calls glSamplerParameteriv(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glSamplerParameteriv(GLuint sampler, unsigned int pname, const GLint* param)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glSamplerParameteriv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glSamplerParameteriv(<i>sampler</i>, <i>pname</i>, <i>param</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glSamplerParameteriv.xml">glSamplerParameteriv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_sampler_parameteriv(
        &mut self,
        sampler: u32,
        pname: ::std::os::raw::c_uint,
        param: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glSamplerParameteriv(
            self as *mut crate::QOpenGLExtraFunctions,
            sampler,
            pname,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(param).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glTexBuffer(<i>target</i>, <i>internalformat</i>, <i>buffer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexBuffer(unsigned int target, unsigned int internalformat, GLuint buffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexBuffer(<i>target</i>, <i>internalformat</i>, <i>buffer</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexBuffer.xhtml">glTexBuffer()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_tex_buffer(
        &mut self,
        target: ::std::os::raw::c_uint,
        internalformat: ::std::os::raw::c_uint,
        buffer: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexBuffer(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            internalformat,
            buffer,
        )
    }

    /// <p>Convenience function that calls glTexBufferRange(<i>target</i>, <i>internalformat</i>, <i>buffer</i>, <i>offset</i>, <i>size</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexBufferRange(unsigned int target, unsigned int internalformat, GLuint buffer, long offset, long size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexBufferRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexBufferRange(<i>target</i>, <i>internalformat</i>, <i>buffer</i>, <i>offset</i>, <i>size</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexBufferRange.xhtml">glTexBufferRange()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_tex_buffer_range(
        &mut self,
        target: ::std::os::raw::c_uint,
        internalformat: ::std::os::raw::c_uint,
        buffer: u32,
        offset: ::std::os::raw::c_long,
        size: ::std::os::raw::c_long,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexBufferRange(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            internalformat,
            buffer,
            offset,
            size,
        )
    }

    /// <p>Convenience function that calls glTexImage3D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>border</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexImage3D(unsigned int target, GLint level, GLint internalformat, int width, int height, int depth, GLint border, unsigned int format, unsigned int type, const void* pixels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexImage3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexImage3D(<i>target</i>, <i>level</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>border</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glTexImage3D.xml">glTexImage3D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_image_3d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        internalformat: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        depth: ::std::os::raw::c_int,
        border: i32,
        format: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        pixels: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexImage3D(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            level,
            internalformat,
            width,
            height,
            depth,
            border,
            format,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(pixels)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glTexParameterIiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexParameterIiv(unsigned int target, unsigned int pname, const GLint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexParameterIiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexParameterIiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexParameter.xhtml">glTexParameterIiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_tex_parameter_iiv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexParameterIiv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(params).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glTexParameterIuiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexParameterIuiv(unsigned int target, unsigned int pname, const GLuint* params)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexParameterIuiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexParameterIuiv(<i>target</i>, <i>pname</i>, <i>params</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexParameter.xhtml">glTexParameterIuiv()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_tex_parameter_iuiv(
        &mut self,
        target: ::std::os::raw::c_uint,
        pname: ::std::os::raw::c_uint,
        params: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexParameterIuiv(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            pname,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(params).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glTexStorage2D(<i>target</i>, <i>levels</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexStorage2D(unsigned int target, int levels, unsigned int internalformat, int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexStorage2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexStorage2D(<i>target</i>, <i>levels</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glTexStorage2D.xml">glTexStorage2D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_storage_2d(
        &mut self,
        target: ::std::os::raw::c_uint,
        levels: ::std::os::raw::c_int,
        internalformat: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexStorage2D(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            levels,
            internalformat,
            width,
            height,
        )
    }

    /// <p>Convenience function that calls glTexStorage2DMultisample(<i>target</i>, <i>samples</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>fixedsamplelocations</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexStorage2DMultisample(unsigned int target, int samples, unsigned int internalformat, int width, int height, unsigned char fixedsamplelocations)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexStorage2DMultisample">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexStorage2DMultisample(<i>target</i>, <i>samples</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>fixedsamplelocations</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glTexStorage2DMultisample.xml">glTexStorage2DMultisample()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_storage_2d_multisample(
        &mut self,
        target: ::std::os::raw::c_uint,
        samples: ::std::os::raw::c_int,
        internalformat: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        fixedsamplelocations: ::std::os::raw::c_uchar,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexStorage2DMultisample(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            samples,
            internalformat,
            width,
            height,
            fixedsamplelocations,
        )
    }

    /// <p>Convenience function that calls glTexStorage3D(<i>target</i>, <i>levels</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>depth</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexStorage3D(unsigned int target, int levels, unsigned int internalformat, int width, int height, int depth)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexStorage3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexStorage3D(<i>target</i>, <i>levels</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>depth</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glTexStorage3D.xml">glTexStorage3D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_storage_3d(
        &mut self,
        target: ::std::os::raw::c_uint,
        levels: ::std::os::raw::c_int,
        internalformat: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        depth: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexStorage3D(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            levels,
            internalformat,
            width,
            height,
            depth,
        )
    }

    /// <p>Convenience function that calls glTexStorage3DMultisample(<i>target</i>, <i>samples</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>fixedsamplelocations</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexStorage3DMultisample(unsigned int target, int samples, unsigned int internalformat, int width, int height, int depth, unsigned char fixedsamplelocations)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexStorage3DMultisample">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexStorage3DMultisample(<i>target</i>, <i>samples</i>, <i>internalformat</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>fixedsamplelocations</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.2 documentation for <a href="https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glTexStorage3DMultisample.xhtml">glTexStorage3DMultisample()</a>.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn gl_tex_storage_3d_multisample(
        &mut self,
        target: ::std::os::raw::c_uint,
        samples: ::std::os::raw::c_int,
        internalformat: ::std::os::raw::c_uint,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        depth: ::std::os::raw::c_int,
        fixedsamplelocations: ::std::os::raw::c_uchar,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexStorage3DMultisample(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            samples,
            internalformat,
            width,
            height,
            depth,
            fixedsamplelocations,
        )
    }

    /// <p>Convenience function that calls glTexSubImage3D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>zoffset</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glTexSubImage3D(unsigned int target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, int width, int height, int depth, unsigned int format, unsigned int type, const void* pixels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glTexSubImage3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glTexSubImage3D(<i>target</i>, <i>level</i>, <i>xoffset</i>, <i>yoffset</i>, <i>zoffset</i>, <i>width</i>, <i>height</i>, <i>depth</i>, <i>format</i>, <i>type</i>, <i>pixels</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glTexSubImage3D.xml">glTexSubImage3D()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_tex_sub_image_3d(
        &mut self,
        target: ::std::os::raw::c_uint,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        zoffset: i32,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        depth: ::std::os::raw::c_int,
        format: ::std::os::raw::c_uint,
        type_: ::std::os::raw::c_uint,
        pixels: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glTexSubImage3D(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
            level,
            xoffset,
            yoffset,
            zoffset,
            width,
            height,
            depth,
            format,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(pixels)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform1ui(<i>location</i>, <i>v0</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniform1ui(GLint location, GLuint v0)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniform1ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform1ui(<i>location</i>, <i>v0</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniform1ui.xml">glUniform1ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_1ui(&mut self, location: i32, v0: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniform1ui(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            v0,
        )
    }

    /// <p>Convenience function that calls glUniform1uiv(<i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniform1uiv(GLint location, int count, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniform1uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform1uiv(<i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniform1uiv.xml">glUniform1uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_1uiv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniform1uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform2ui(<i>location</i>, <i>v0</i>, <i>v1</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniform2ui(GLint location, GLuint v0, GLuint v1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniform2ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform2ui(<i>location</i>, <i>v0</i>, <i>v1</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniform2ui.xml">glUniform2ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_2ui(&mut self, location: i32, v0: u32, v1: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniform2ui(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            v0,
            v1,
        )
    }

    /// <p>Convenience function that calls glUniform2uiv(<i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniform2uiv(GLint location, int count, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniform2uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform2uiv(<i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniform2uiv.xml">glUniform2uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_2uiv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniform2uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform3ui(<i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniform3ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform3ui(<i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniform3ui.xml">glUniform3ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_3ui(&mut self, location: i32, v0: u32, v1: u32, v2: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniform3ui(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            v0,
            v1,
            v2,
        )
    }

    /// <p>Convenience function that calls glUniform3uiv(<i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniform3uiv(GLint location, int count, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniform3uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform3uiv(<i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniform3uiv.xml">glUniform3uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_3uiv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniform3uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniform4ui(<i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>, <i>v3</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniform4ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform4ui(<i>location</i>, <i>v0</i>, <i>v1</i>, <i>v2</i>, <i>v3</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniform4ui.xml">glUniform4ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_4ui(&mut self, location: i32, v0: u32, v1: u32, v2: u32, v3: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniform4ui(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            v0,
            v1,
            v2,
            v3,
        )
    }

    /// <p>Convenience function that calls glUniform4uiv(<i>location</i>, <i>count</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniform4uiv(GLint location, int count, const GLuint* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniform4uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniform4uiv(<i>location</i>, <i>count</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniform4uiv.xml">glUniform4uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_4uiv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniform4uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformBlockBinding(<i>program</i>, <i>uniformBlockIndex</i>, <i>uniformBlockBinding</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniformBlockBinding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformBlockBinding(<i>program</i>, <i>uniformBlockIndex</i>, <i>uniformBlockBinding</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniformBlockBinding.xml">glUniformBlockBinding()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_block_binding(
        &mut self,
        program: u32,
        uniform_block_index: u32,
        uniform_block_binding: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniformBlockBinding(
            self as *mut crate::QOpenGLExtraFunctions,
            program,
            uniform_block_index,
            uniform_block_binding,
        )
    }

    /// <p>Convenience function that calls glUniformMatrix2x3fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniformMatrix2x3fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniformMatrix2x3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix2x3fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniformMatrix2x3fv.xml">glUniformMatrix2x3fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_2x_3fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniformMatrix2x3fv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformMatrix2x4fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniformMatrix2x4fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniformMatrix2x4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix2x4fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniformMatrix2x4fv.xml">glUniformMatrix2x4fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_2x_4fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniformMatrix2x4fv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformMatrix3x2fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniformMatrix3x2fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniformMatrix3x2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix3x2fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniformMatrix3x2fv.xml">glUniformMatrix3x2fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_3x_2fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniformMatrix3x2fv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformMatrix3x4fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniformMatrix3x4fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniformMatrix3x4fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix3x4fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniformMatrix3x4fv.xml">glUniformMatrix3x4fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_3x_4fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniformMatrix3x4fv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformMatrix4x2fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniformMatrix4x2fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniformMatrix4x2fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix4x2fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniformMatrix4x2fv.xml">glUniformMatrix4x2fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_4x_2fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniformMatrix4x2fv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUniformMatrix4x3fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUniformMatrix4x3fv(GLint location, int count, unsigned char transpose, const float* value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUniformMatrix4x3fv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUniformMatrix4x3fv(<i>location</i>, <i>count</i>, <i>transpose</i>, <i>value</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUniformMatrix4x3fv.xml">glUniformMatrix4x3fv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_uniform_matrix_4x_3fv(
        &mut self,
        location: i32,
        count: ::std::os::raw::c_int,
        transpose: ::std::os::raw::c_uchar,
        value: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUniformMatrix4x3fv(
            self as *mut crate::QOpenGLExtraFunctions,
            location,
            count,
            transpose,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glUnmapBuffer(<i>target</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned char QOpenGLExtraFunctions::glUnmapBuffer(unsigned int target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUnmapBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUnmapBuffer(<i>target</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUnmapBuffer.xml">glUnmapBuffer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_unmap_buffer(
        &mut self,
        target: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_uchar {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUnmapBuffer(
            self as *mut crate::QOpenGLExtraFunctions,
            target,
        )
    }

    /// <p>Convenience function that calls glUseProgramStages(<i>pipeline</i>, <i>stages</i>, <i>program</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glUseProgramStages(GLuint pipeline, unsigned int stages, GLuint program)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glUseProgramStages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glUseProgramStages(<i>pipeline</i>, <i>stages</i>, <i>program</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glUseProgramStages.xml">glUseProgramStages()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_use_program_stages(
        &mut self,
        pipeline: u32,
        stages: ::std::os::raw::c_uint,
        program: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glUseProgramStages(
            self as *mut crate::QOpenGLExtraFunctions,
            pipeline,
            stages,
            program,
        )
    }

    /// <p>Convenience function that calls glValidateProgramPipeline(<i>pipeline</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glValidateProgramPipeline(GLuint pipeline)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glValidateProgramPipeline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glValidateProgramPipeline(<i>pipeline</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glValidateProgramPipeline.xml">glValidateProgramPipeline()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_validate_program_pipeline(&mut self, pipeline: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glValidateProgramPipeline(
            self as *mut crate::QOpenGLExtraFunctions,
            pipeline,
        )
    }

    /// <p>Convenience function that calls glVertexAttribBinding(<i>attribindex</i>, <i>bindingindex</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribBinding(GLuint attribindex, GLuint bindingindex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribBinding">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribBinding(<i>attribindex</i>, <i>bindingindex</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribBinding.xml">glVertexAttribBinding()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_binding(&mut self, attribindex: u32, bindingindex: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribBinding(
            self as *mut crate::QOpenGLExtraFunctions,
            attribindex,
            bindingindex,
        )
    }

    /// <p>Convenience function that calls glVertexAttribDivisor(<i>index</i>, <i>divisor</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribDivisor(GLuint index, GLuint divisor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribDivisor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribDivisor(<i>index</i>, <i>divisor</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribDivisor.xml">glVertexAttribDivisor()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_divisor(&mut self, index: u32, divisor: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribDivisor(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            divisor,
        )
    }

    /// <p>Convenience function that calls glVertexAttribFormat(<i>attribindex</i>, <i>size</i>, <i>type</i>, <i>normalized</i>, <i>relativeoffset</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribFormat(GLuint attribindex, GLint size, unsigned int type, unsigned char normalized, GLuint relativeoffset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribFormat(<i>attribindex</i>, <i>size</i>, <i>type</i>, <i>normalized</i>, <i>relativeoffset</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribFormat.xml">glVertexAttribFormat()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_format(
        &mut self,
        attribindex: u32,
        size: i32,
        type_: ::std::os::raw::c_uint,
        normalized: ::std::os::raw::c_uchar,
        relativeoffset: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribFormat(
            self as *mut crate::QOpenGLExtraFunctions,
            attribindex,
            size,
            type_,
            normalized,
            relativeoffset,
        )
    }

    /// <p>Convenience function that calls glVertexAttribI4i(<i>index</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribI4i">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribI4i(<i>index</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribI4i.xml">glVertexAttribI4i()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_i4i(&mut self, index: u32, x: i32, y: i32, z: i32, w: i32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribI4i(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            x,
            y,
            z,
            w,
        )
    }

    /// <p>Convenience function that calls glVertexAttribI4iv(<i>index</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribI4iv(GLuint index, const GLint* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribI4iv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribI4iv(<i>index</i>, <i>v</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribI4iv.xml">glVertexAttribI4iv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_i4iv(
        &mut self,
        index: u32,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribI4iv(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(v).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glVertexAttribI4ui(<i>index</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribI4ui">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribI4ui(<i>index</i>, <i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribI4ui.xml">glVertexAttribI4ui()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_i4ui(&mut self, index: u32, x: u32, y: u32, z: u32, w: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribI4ui(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            x,
            y,
            z,
            w,
        )
    }

    /// <p>Convenience function that calls glVertexAttribI4uiv(<i>index</i>, <i>v</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribI4uiv(GLuint index, const GLuint* v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribI4uiv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribI4uiv(<i>index</i>, <i>v</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribI4uiv.xml">glVertexAttribI4uiv()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_i4uiv(
        &mut self,
        index: u32,
        v: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribI4uiv(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(v).as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glVertexAttribIFormat(<i>attribindex</i>, <i>size</i>, <i>type</i>, <i>relativeoffset</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribIFormat(GLuint attribindex, GLint size, unsigned int type, GLuint relativeoffset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribIFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribIFormat(<i>attribindex</i>, <i>size</i>, <i>type</i>, <i>relativeoffset</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribIFormat.xml">glVertexAttribIFormat()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_i_format(
        &mut self,
        attribindex: u32,
        size: i32,
        type_: ::std::os::raw::c_uint,
        relativeoffset: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribIFormat(
            self as *mut crate::QOpenGLExtraFunctions,
            attribindex,
            size,
            type_,
            relativeoffset,
        )
    }

    /// <p>Convenience function that calls glVertexAttribIPointer(<i>index</i>, <i>size</i>, <i>type</i>, <i>stride</i>, <i>pointer</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexAttribIPointer(GLuint index, GLint size, unsigned int type, int stride, const void* pointer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexAttribIPointer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexAttribIPointer(<i>index</i>, <i>size</i>, <i>type</i>, <i>stride</i>, <i>pointer</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexAttribIPointer.xml">glVertexAttribIPointer()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_attrib_i_pointer(
        &mut self,
        index: u32,
        size: i32,
        type_: ::std::os::raw::c_uint,
        stride: ::std::os::raw::c_int,
        pointer: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexAttribIPointer(
            self as *mut crate::QOpenGLExtraFunctions,
            index,
            size,
            type_,
            stride,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(pointer)
                .as_raw_ptr(),
        )
    }

    /// <p>Convenience function that calls glVertexBindingDivisor(<i>bindingindex</i>, <i>divisor</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLExtraFunctions::glVertexBindingDivisor(GLuint bindingindex, GLuint divisor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#glVertexBindingDivisor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that calls glVertexBindingDivisor(<i>bindingindex</i>, <i>divisor</i>).</p>
    /// <p>This function is only available in OpenGL ES 3.x, or OpenGL 3.x or 4.x contexts. When running with plain OpenGL, the function is only usable when the given profile and version contains the function either in core or as an extension.</p>
    /// <p>For more information, see the OpenGL ES 3.x documentation for <a href="http://www.khronos.org/opengles/sdk/docs/man31/glVertexBindingDivisor.xml">glVertexBindingDivisor()</a>.</p></div>
    #[inline(always)]
    pub unsafe fn gl_vertex_binding_divisor(&mut self, bindingindex: u32, divisor: u32) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_glVertexBindingDivisor(
            self as *mut crate::QOpenGLExtraFunctions,
            bindingindex,
            divisor,
        )
    }

    /// <p>Constructs a default function resolver. The resolver cannot be used until <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">initializeOpenGLFunctions()</a> is called to specify the context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLExtraFunctions::QOpenGLExtraFunctions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#QOpenGLExtraFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a default function resolver. The resolver cannot be used until <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">initializeOpenGLFunctions()</a> is called to specify the context.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLExtraFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_QOpenGLExtraFunctions();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a function resolver for context. If <i>context</i> is null, then the resolver will be created for the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLExtraFunctions::QOpenGLExtraFunctions(QOpenGLContext* context)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#QOpenGLExtraFunctions-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a function resolver for context. If <i>context</i> is null, then the resolver will be created for the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p>The context or another context in the group must be current.</p>
    /// <p>An object constructed in this way can only be used with context and other contexts that share with it. Use <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#initializeOpenGLFunctions">initializeOpenGLFunctions()</a> to change the object's context association.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        context: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLExtraFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_QOpenGLExtraFunctions1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(context)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> class provides cross-platform access to the OpenGL ES 3.0 and 3.1 API.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLExtraFunctions::QOpenGLExtraFunctions(const QOpenGLExtraFunctions& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html">QOpenGLExtraFunctions</a> class provides cross-platform access to the OpenGL ES 3.0 and 3.1 API.</p>
    /// <p>This subclass of <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a> includes the OpenGL ES 3.0 and 3.1 functions. These will only work when an OpenGL ES 3.0 or 3.1 context, or an OpenGL context of a version containing the functions in question either in core or as extension, is in use. This allows developing GLES 3.0 and 3.1 applications in a cross-platform manner: development can happen on a desktop platform with OpenGL 3.x or 4.x, deploying to a real GLES 3.1 device later on will require no or minimal changes to the application.</p>
    /// <p><b>Note: </b>This class is different from the versioned OpenGL wrappers, for instance <a href="http://doc.qt.io/qt-5/qopenglfunctions-3-2-core.html">QOpenGLFunctions_3_2_Core</a>. The versioned function wrappers target a given version and profile of OpenGL. They are therefore not suitable for cross-OpenGL-OpenGLES development.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLExtraFunctions>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLExtraFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_QOpenGLExtraFunctions2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLExtraFunctions>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_opengl_framebuffer_object {
    //! C++ type: <span style='color: green;'>```QOpenGLFramebufferObject```</span>

    /// <p>This enum type is used to configure the depth and stencil buffers attached to the framebuffer object when it is created.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLFramebufferObject::Attachment```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#Attachment-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type is used to configure the depth and stencil buffers attached to the framebuffer object when it is created.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Attachment(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Attachment {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Attachment(value)
        }
    }

    impl From<Attachment> for ::std::os::raw::c_int {
        fn from(value: Attachment) -> Self {
            value.0
        }
    }

    impl Attachment {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Attachment {
        /// No attachment is added to the framebuffer object. Note that the OpenGL depth and stencil tests won't work when rendering to a framebuffer object without any depth or stencil buffers. This is the default value. (C++ enum variant: <span style='color: green;'>```NoAttachment = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoAttachment: crate::q_opengl_framebuffer_object::Attachment =
            crate::q_opengl_framebuffer_object::Attachment(0);
        /// If the <code>GL_EXT_packed_depth_stencil</code> extension is present, a combined depth and stencil buffer is attached. If the extension is not present, only a depth buffer is attached. (C++ enum variant: <span style='color: green;'>```CombinedDepthStencil = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const CombinedDepthStencil: crate::q_opengl_framebuffer_object::Attachment =
            crate::q_opengl_framebuffer_object::Attachment(1);
        /// A depth buffer is attached to the framebuffer object. (C++ enum variant: <span style='color: green;'>```Depth = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Depth: crate::q_opengl_framebuffer_object::Attachment =
            crate::q_opengl_framebuffer_object::Attachment(2);
    }

    /// <p>This enum type is used to configure the behavior related to restoring framebuffer bindings when calling <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer">blitFramebuffer</a>().</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLFramebufferObject::FramebufferRestorePolicy```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#FramebufferRestorePolicy-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type is used to configure the behavior related to restoring framebuffer bindings when calling <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer">blitFramebuffer</a>().</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer">blitFramebuffer</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FramebufferRestorePolicy(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FramebufferRestorePolicy {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FramebufferRestorePolicy(value)
        }
    }

    impl From<FramebufferRestorePolicy> for ::std::os::raw::c_int {
        fn from(value: FramebufferRestorePolicy) -> Self {
            value.0
        }
    }

    impl FramebufferRestorePolicy {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FramebufferRestorePolicy {
        /// Do not restore the previous framebuffer binding. The caller is responsible for tracking and setting the framebuffer binding as needed. (C++ enum variant: <span style='color: green;'>```DontRestoreFramebufferBinding = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const DontRestoreFramebufferBinding:
            crate::q_opengl_framebuffer_object::FramebufferRestorePolicy =
            crate::q_opengl_framebuffer_object::FramebufferRestorePolicy(0);
        /// After the blit operation, bind the default framebuffer. (C++ enum variant: <span style='color: green;'>```RestoreFramebufferBindingToDefault = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const RestoreFramebufferBindingToDefault:
            crate::q_opengl_framebuffer_object::FramebufferRestorePolicy =
            crate::q_opengl_framebuffer_object::FramebufferRestorePolicy(1);
        /// Restore the previously bound framebuffer. This is potentially expensive because of the need to query the currently bound framebuffer. (C++ enum variant: <span style='color: green;'>```RestoreFrameBufferBinding = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const RestoreFrameBufferBinding:
            crate::q_opengl_framebuffer_object::FramebufferRestorePolicy =
            crate::q_opengl_framebuffer_object::FramebufferRestorePolicy(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a> class encapsulates an OpenGL framebuffer object.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLFramebufferObject```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a> class encapsulates an OpenGL framebuffer object.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a> class encapsulates an OpenGL framebuffer object, defined by the <code>GL_EXT_framebuffer_object</code> extension. It provides a rendering surface that can be painted on with a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> with the help of <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a>, or rendered to using native OpenGL calls. This surface can be bound and used as a regular texture in your own OpenGL drawing code. By default, the <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a> class generates a 2D OpenGL texture (using the <code>GL_TEXTURE_2D</code> target), which is used as the internal rendering target.</p>
/// <p><b>It is important to have a current OpenGL context when creating a <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>, otherwise initialization will fail.</b></p>
/// <p>Create the QOpenGLFrameBufferObject instance with the <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#Attachment-enum">CombinedDepthStencil</a> attachment if you want <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> to render correctly. Note that you need to create a <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a> with more than one sample per pixel for primitives to be antialiased when drawing using a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>. To create a multisample framebuffer object you should use one of the constructors that take a <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html">QOpenGLFramebufferObjectFormat</a> parameter, and set the <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#samples">QOpenGLFramebufferObjectFormat::samples</a>() property to a non-zero value.</p>
/// <p>For multisample framebuffer objects a color render buffer is created, otherwise a texture with the specified texture target is created. The color render buffer or texture will have the specified internal format, and will be bound to the <code>GL_COLOR_ATTACHMENT0</code> attachment in the framebuffer object.</p>
/// <p>Multiple render targets are also supported, in case the OpenGL implementation supports this. Here there will be multiple textures (or, in case of multisampling, renderbuffers) present and each of them will get attached to <code>GL_COLOR_ATTACHMENT0</code>, <code>1</code>, <code>2</code>, ...</p>
/// <p>If you want to use a framebuffer object with multisampling enabled as a texture, you first need to copy from it to a regular framebuffer object using QOpenGLContext::blitFramebuffer().</p>
/// <p>It is possible to draw into a <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a> using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> and <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> in a separate thread.</p></div>
#[repr(C)]
pub struct QOpenGLFramebufferObject {
    _unused: u8,
}
impl QOpenGLFramebufferObject {
    /// <p>Creates and attaches an additional texture or renderbuffer of <i>size</i> width and height.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObject::addColorAttachment(const QSize& size, unsigned int internalFormat = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#addColorAttachment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and attaches an additional texture or renderbuffer of <i>size</i> width and height.</p>
    /// <p>There is always an attachment at GL_COLOR_ATTACHMENT0. Call this function to set up additional attachments at GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, ...</p>
    /// <p>When <i>internalFormat</i> is not <code>0</code>, it specifies the internal format of the texture or renderbuffer. Otherwise a default of GL_RGBA or GL_RGBA8 is used.</p>
    /// <p><b>Note: </b>This is only functional when multiple render targets are supported by the OpenGL implementation. When that is not the case, the function will not add any additional color attachments. Call <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#hasOpenGLFeature">QOpenGLFunctions::hasOpenGLFeature</a>() with <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#OpenGLFeature-enum">QOpenGLFunctions::MultipleRenderTargets</a> at runtime to check if MRT is supported.</p><p><b>Note: </b>The internal format of the color attachments may differ but there may be limitations on the supported combinations, depending on the drivers.</p><p><b>Note: </b>The size of the color attachments may differ but rendering is limited to the area that fits all the attachments, according to the OpenGL specification. Some drivers may not be fully conformant in this respect, however.</p><p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn add_color_attachment_q_size_uint(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        internal_format: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_addColorAttachment(
            self as *mut crate::QOpenGLFramebufferObject,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
            internal_format,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObject::addColorAttachment(int width, int height, unsigned int internalFormat = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#addColorAttachment-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and attaches an additional texture or renderbuffer of size <i>width</i> and <i>height</i>.</p>
    /// <p>When <i>internalFormat</i> is not <code>0</code>, it specifies the internal format of the texture or renderbuffer. Otherwise a default of GL_RGBA or GL_RGBA8 is used.</p>
    /// <p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn add_color_attachment_2_int_uint(
        &mut self,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        internal_format: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_addColorAttachment1(
            self as *mut crate::QOpenGLFramebufferObject,
            width,
            height,
            internal_format,
        )
    }

    /// <p>Creates and attaches an additional texture or renderbuffer of <i>size</i> width and height.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObject::addColorAttachment(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#addColorAttachment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and attaches an additional texture or renderbuffer of <i>size</i> width and height.</p>
    /// <p>There is always an attachment at GL_COLOR_ATTACHMENT0. Call this function to set up additional attachments at GL_COLOR_ATTACHMENT1, GL_COLOR_ATTACHMENT2, ...</p>
    /// <p>When <i>internalFormat</i> is not <code>0</code>, it specifies the internal format of the texture or renderbuffer. Otherwise a default of GL_RGBA or GL_RGBA8 is used.</p>
    /// <p><b>Note: </b>This is only functional when multiple render targets are supported by the OpenGL implementation. When that is not the case, the function will not add any additional color attachments. Call <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#hasOpenGLFeature">QOpenGLFunctions::hasOpenGLFeature</a>() with <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#OpenGLFeature-enum">QOpenGLFunctions::MultipleRenderTargets</a> at runtime to check if MRT is supported.</p><p><b>Note: </b>The internal format of the color attachments may differ but there may be limitations on the supported combinations, depending on the drivers.</p><p><b>Note: </b>The size of the color attachments may differ but rendering is limited to the area that fits all the attachments, according to the OpenGL specification. Some drivers may not be fully conformant in this respect, however.</p><p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn add_color_attachment_q_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_addColorAttachment2(
            self as *mut crate::QOpenGLFramebufferObject,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObject::addColorAttachment(int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#addColorAttachment-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Creates and attaches an additional texture or renderbuffer of size <i>width</i> and <i>height</i>.</p>
    /// <p>When <i>internalFormat</i> is not <code>0</code>, it specifies the internal format of the texture or renderbuffer. Otherwise a default of GL_RGBA or GL_RGBA8 is used.</p>
    /// <p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn add_color_attachment_2_int(
        &mut self,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_addColorAttachment3(
            self as *mut crate::QOpenGLFramebufferObject,
            width,
            height,
        )
    }

    /// <p>Returns the status of the depth and stencil buffers attached to this framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFramebufferObject::Attachment QOpenGLFramebufferObject::attachment() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the status of the depth and stencil buffers attached to this framebuffer object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#setAttachment">setAttachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn attachment(&self) -> crate::q_opengl_framebuffer_object::Attachment {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_attachment(
            self as *const crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>Switches rendering from the default, windowing system provided framebuffer to this framebuffer object. Returns <code>true</code> upon success, false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLFramebufferObject::bind()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#bind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Switches rendering from the default, windowing system provided framebuffer to this framebuffer object. Returns <code>true</code> upon success, false otherwise.</p>
    /// <p><b>Note: </b>If <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#takeTexture">takeTexture</a>() was called, a new texture is created and associated with the framebuffer object. This is potentially expensive and changes the context state (the currently bound texture).</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_bind(
            self as *mut crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>Switches rendering back to the default, windowing system provided framebuffer. Returns <code>true</code> upon success, false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLFramebufferObject::bindDefault()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#bindDefault">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Switches rendering back to the default, windowing system provided framebuffer. Returns <code>true</code> upon success, false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#bind">bind</a>() and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_default() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_bindDefault()
    }

    /// <p>Blits from the <i>sourceRect</i> rectangle in the <i>source</i> framebuffer object to the <i>targetRect</i> rectangle in the <i>target</i> framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject* target, const QRect& targetRect, QOpenGLFramebufferObject* source, const QRect& sourceRect, unsigned int buffers, unsigned int filter, int readColorAttachmentIndex, int drawColorAttachmentIndex, QOpenGLFramebufferObject::FramebufferRestorePolicy restorePolicy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Blits from the <i>sourceRect</i> rectangle in the <i>source</i> framebuffer object to the <i>targetRect</i> rectangle in the <i>target</i> framebuffer object.</p>
    /// <p>If <i>source</i> or <i>target</i> is 0, the default framebuffer will be used instead of a framebuffer object as source or target respectively.</p>
    /// <p>This function will have no effect unless <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#hasOpenGLFramebufferBlit">hasOpenGLFramebufferBlit</a>() returns true.</p>
    /// <p>The <i>buffers</i> parameter should be a mask consisting of any combination of <code>GL_COLOR_BUFFER_BIT</code>, <code>GL_DEPTH_BUFFER_BIT</code>, and <code>GL_STENCIL_BUFFER_BIT</code>. Any buffer type that is not present both in the source and target buffers is ignored.</p>
    /// <p>The <i>sourceRect</i> and <i>targetRect</i> rectangles may have different sizes; in this case <i>buffers</i> should not contain <code>GL_DEPTH_BUFFER_BIT</code> or <code>GL_STENCIL_BUFFER_BIT</code>. The <i>filter</i> parameter should be set to <code>GL_LINEAR</code> or <code>GL_NEAREST</code>, and specifies whether linear or nearest interpolation should be used when scaling is performed.</p>
    /// <p>If <i>source</i> equals <i>target</i> a copy is performed within the same buffer. Results are undefined if the source and target rectangles overlap and have different sizes. The sizes must also be the same if any of the framebuffer objects are multisample framebuffers.</p>
    /// <p><b>Note: </b>The scissor test will restrict the blit area if enabled.</p><p>When multiple render targets are in use, <i>readColorAttachmentIndex</i> and <i>drawColorAttachmentIndex</i> specify the index of the color attachments in the source and destination framebuffers.</p>
    /// <p>The <i>restorePolicy</i> determines if the framebuffer that was bound prior to calling this function should be restored, or if the default framebuffer should be bound before returning, of if the caller is responsible for tracking and setting the bound framebuffer. Restoring the previous framebuffer can be relatively expensive due to the call to <code>glGetIntegerv</code> which on some OpenGL drivers may imply a pipeline stall.</p>
    /// <p>This function was introduced in  Qt 5.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#hasOpenGLFramebufferBlit">hasOpenGLFramebufferBlit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn blit_framebuffer_q_opengl_framebuffer_object_q_rect_q_opengl_framebuffer_object_q_rect2_uint2_int_framebuffer_restore_policy(
        target: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        buffers: ::std::os::raw::c_uint,
        filter: ::std::os::raw::c_uint,
        read_color_attachment_index: ::std::os::raw::c_int,
        draw_color_attachment_index: ::std::os::raw::c_int,
        restore_policy: crate::q_opengl_framebuffer_object::FramebufferRestorePolicy,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_blitFramebuffer(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                target,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                source,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(source_rect)
                .as_raw_ptr(),
            buffers,
            filter,
            read_color_attachment_index,
            draw_color_attachment_index,
            restore_policy,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject* target, const QRect& targetRect, QOpenGLFramebufferObject* source, const QRect& sourceRect, unsigned int buffers, unsigned int filter, int readColorAttachmentIndex, int drawColorAttachmentIndex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Convenience overload to blit between two framebuffer objects and to restore the previous framebuffer binding. Equivalent to calling <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer">blitFramebuffer</a>(target, targetRect, source, sourceRect, buffers, filter, readColorAttachmentIndex, drawColorAttachmentIndex, <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#FramebufferRestorePolicy-enum">RestoreFrameBufferBinding</a>).</p></div>
    #[inline(always)]
    pub unsafe fn blit_framebuffer_q_opengl_framebuffer_object_q_rect_q_opengl_framebuffer_object_q_rect2_uint2_int(
        target: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        buffers: ::std::os::raw::c_uint,
        filter: ::std::os::raw::c_uint,
        read_color_attachment_index: ::std::os::raw::c_int,
        draw_color_attachment_index: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_blitFramebuffer1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                target,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                source,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(source_rect)
                .as_raw_ptr(),
            buffers,
            filter,
            read_color_attachment_index,
            draw_color_attachment_index,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject* target, const QRect& targetRect, QOpenGLFramebufferObject* source, const QRect& sourceRect, unsigned int buffers = …, unsigned int filter = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>* Convenience overload to blit between two framebuffer objects.</p></div>
    #[inline(always)]
    pub unsafe fn blit_framebuffer_q_opengl_framebuffer_object_q_rect_q_opengl_framebuffer_object_q_rect2_uint(
        target: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        buffers: ::std::os::raw::c_uint,
        filter: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_blitFramebuffer2(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                target,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                source,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(source_rect)
                .as_raw_ptr(),
            buffers,
            filter,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject* target, QOpenGLFramebufferObject* source, unsigned int buffers = …, unsigned int filter = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Convenience overload to blit between two framebuffer objects.</p></div>
    #[inline(always)]
    pub unsafe fn blit_framebuffer_2_q_opengl_framebuffer_object2_uint(
        target: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        buffers: ::std::os::raw::c_uint,
        filter: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_blitFramebuffer3(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                target,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                source,
            )
            .as_mut_raw_ptr(),
            buffers,
            filter,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject* target, const QRect& targetRect, QOpenGLFramebufferObject* source, const QRect& sourceRect, unsigned int buffers = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>* Convenience overload to blit between two framebuffer objects.</p></div>
    #[inline(always)]
    pub unsafe fn blit_framebuffer_q_opengl_framebuffer_object_q_rect_q_opengl_framebuffer_object_q_rect_uint(
        target: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        buffers: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_blitFramebuffer4(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                target,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                source,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(source_rect)
                .as_raw_ptr(),
            buffers,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject* target, const QRect& targetRect, QOpenGLFramebufferObject* source, const QRect& sourceRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>* Convenience overload to blit between two framebuffer objects.</p></div>
    #[inline(always)]
    pub unsafe fn blit_framebuffer_q_opengl_framebuffer_object_q_rect_q_opengl_framebuffer_object_q_rect(
        target: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_blitFramebuffer5(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                target,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                source,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(source_rect)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject* target, QOpenGLFramebufferObject* source, unsigned int buffers = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Convenience overload to blit between two framebuffer objects.</p></div>
    #[inline(always)]
    pub unsafe fn blit_framebuffer_2_q_opengl_framebuffer_object_uint(
        target: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        buffers: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_blitFramebuffer6(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                target,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                source,
            )
            .as_mut_raw_ptr(),
            buffers,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QOpenGLFramebufferObject::blitFramebuffer(QOpenGLFramebufferObject* target, QOpenGLFramebufferObject* source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Convenience overload to blit between two framebuffer objects.</p></div>
    #[inline(always)]
    pub unsafe fn blit_framebuffer_2_q_opengl_framebuffer_object(
        target: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
        source: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_blitFramebuffer7(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                target,
            )
            .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLFramebufferObject>>::cast_into(
                source,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the format of this framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFramebufferObjectFormat QOpenGLFramebufferObject::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format of this framebuffer object.</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObjectFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_format(
            self as *const crate::QOpenGLFramebufferObject,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the OpenGL framebuffer object handle for this framebuffer object (returned by the <code>glGenFrameBuffersEXT()</code> function). This handle can be used to attach new images or buffers to the framebuffer. The user is responsible for cleaning up and destroying these objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLFramebufferObject::handle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#handle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the OpenGL framebuffer object handle for this framebuffer object (returned by the <code>glGenFrameBuffersEXT()</code> function). This handle can be used to attach new images or buffers to the framebuffer. The user is responsible for cleaning up and destroying these objects.</p></div>
    #[inline(always)]
    pub unsafe fn handle(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_handle(
            self as *const crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>Returns <code>true</code> if the OpenGL <code>GL_EXT_framebuffer_blit</code> extension is present on this system; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLFramebufferObject::hasOpenGLFramebufferBlit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#hasOpenGLFramebufferBlit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the OpenGL <code>GL_EXT_framebuffer_blit</code> extension is present on this system; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#blitFramebuffer">blitFramebuffer</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_opengl_framebuffer_blit() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_hasOpenGLFramebufferBlit()
    }

    /// <p>Returns <code>true</code> if the OpenGL <code>GL_EXT_framebuffer_object</code> extension is present on this system; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLFramebufferObject::hasOpenGLFramebufferObjects()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#hasOpenGLFramebufferObjects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the OpenGL <code>GL_EXT_framebuffer_object</code> extension is present on this system; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn has_opengl_framebuffer_objects() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_hasOpenGLFramebufferObjects()
    }

    /// <p>Returns the height of the framebuffer object attachments.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLFramebufferObject::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the framebuffer object attachments.</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_height(
            self as *const crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>Returns <code>true</code> if the framebuffer object is currently bound to the current context, otherwise false is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLFramebufferObject::isBound() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#isBound">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the framebuffer object is currently bound to the current context, otherwise false is returned.</p></div>
    #[inline(always)]
    pub unsafe fn is_bound(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_isBound(
            self as *const crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>Returns <code>true</code> if the framebuffer object is valid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLFramebufferObject::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the framebuffer object is valid.</p>
    /// <p>The framebuffer can become invalid if the initialization process fails, the user attaches an invalid buffer to the framebuffer object, or a non-power of two width/height is specified as the texture size if the texture target is <code>GL_TEXTURE_2D</code>. The non-power of two limitation does not apply if the OpenGL version is 2.0 or higher, or if the GL_ARB_texture_non_power_of_two extension is present.</p>
    /// <p>The framebuffer can also become invalid if the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> that the framebuffer was created within is destroyed and there are no other shared contexts that can take over ownership of the framebuffer.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_isValid(
            self as *const crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>Constructs an OpenGL framebuffer object and binds a 2D OpenGL texture to the buffer of the size <i>size</i>. The texture is bound to the <code>GL_COLOR_ATTACHMENT0</code> target in the framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize& size, unsigned int target = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an OpenGL framebuffer object and binds a 2D OpenGL texture to the buffer of the size <i>size</i>. The texture is bound to the <code>GL_COLOR_ATTACHMENT0</code> target in the framebuffer object.</p>
    /// <p>The <i>target</i> parameter is used to specify the OpenGL texture target. The default target is <code>GL_TEXTURE_2D</code>. Keep in mind that <code>GL_TEXTURE_2D</code> textures must have a power of 2 width and height (e.g. 256x512), unless you are using OpenGL 2.0 or higher.</p>
    /// <p>By default, no depth and stencil buffers are attached. This behavior can be toggled using one of the overloaded constructors.</p>
    /// <p>The default internal texture format is <code>GL_RGBA8</code> for desktop OpenGL, and <code>GL_RGBA</code> for OpenGL/ES.</p>
    /// <p>It is important that you have a current OpenGL context set when creating the <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>, otherwise the initialization will fail.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_uint(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        target: ::std::os::raw::c_uint,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size)
                    .as_raw_ptr(),
                target,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, unsigned int target = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object and binds a 2D OpenGL texture to the buffer of the given <i>width</i> and <i>height</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int_uint(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        target: ::std::os::raw::c_uint,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject1(
                width, height, target,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize& size, QOpenGLFramebufferObject::Attachment attachment, unsigned int target = …, unsigned int internalFormat = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object and binds a texture to the buffer of the given <i>size</i>.</p>
    /// <p>The <i>attachment</i> parameter describes the depth/stencil buffer configuration, <i>target</i> the texture target and <i>internalFormat</i> the internal texture format. The default texture target is <code>GL_TEXTURE_2D</code>, while the default internal format is <code>GL_RGBA8</code> for desktop OpenGL and <code>GL_RGBA</code> for OpenGL/ES.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_attachment2_uint(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        attachment: crate::q_opengl_framebuffer_object::Attachment,
        target: ::std::os::raw::c_uint,
        internal_format: ::std::os::raw::c_uint,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject2(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size)
                    .as_raw_ptr(),
                attachment,
                target,
                internal_format,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, QOpenGLFramebufferObject::Attachment attachment, unsigned int target = …, unsigned int internalFormat = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object and binds a texture to the buffer of the given <i>width</i> and <i>height</i>.</p>
    /// <p>The <i>attachment</i> parameter describes the depth/stencil buffer configuration, <i>target</i> the texture target and <i>internalFormat</i> the internal texture format. The default texture target is <code>GL_TEXTURE_2D</code>, while the default internal format is <code>GL_RGBA8</code> for desktop OpenGL and <code>GL_RGBA</code> for OpenGL/ES.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int_attachment2_uint(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        attachment: crate::q_opengl_framebuffer_object::Attachment,
        target: ::std::os::raw::c_uint,
        internal_format: ::std::os::raw::c_uint,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject3(
                width,
                height,
                attachment,
                target,
                internal_format,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize& size, const QOpenGLFramebufferObjectFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object of the given <i>size</i> based on the supplied <i>format</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_q_opengl_framebuffer_object_format(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject4(::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>::cast_into(format).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, const QOpenGLFramebufferObjectFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object of the given <i>width</i> and <i>height</i> based on the supplied <i>format</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int_q_opengl_framebuffer_object_format(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject5(width, height, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>::cast_into(format).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an OpenGL framebuffer object and binds a 2D OpenGL texture to the buffer of the size <i>size</i>. The texture is bound to the <code>GL_COLOR_ATTACHMENT0</code> target in the framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an OpenGL framebuffer object and binds a 2D OpenGL texture to the buffer of the size <i>size</i>. The texture is bound to the <code>GL_COLOR_ATTACHMENT0</code> target in the framebuffer object.</p>
    /// <p>The <i>target</i> parameter is used to specify the OpenGL texture target. The default target is <code>GL_TEXTURE_2D</code>. Keep in mind that <code>GL_TEXTURE_2D</code> textures must have a power of 2 width and height (e.g. 256x512), unless you are using OpenGL 2.0 or higher.</p>
    /// <p>By default, no depth and stencil buffers are attached. This behavior can be toggled using one of the overloaded constructors.</p>
    /// <p>The default internal texture format is <code>GL_RGBA8</code> for desktop OpenGL, and <code>GL_RGBA</code> for OpenGL/ES.</p>
    /// <p>It is important that you have a current OpenGL context set when creating the <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a>, otherwise the initialization will fail.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject7(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object and binds a 2D OpenGL texture to the buffer of the given <i>width</i> and <i>height</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject8(
                width, height,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize& size, QOpenGLFramebufferObject::Attachment attachment, unsigned int target = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object and binds a texture to the buffer of the given <i>size</i>.</p>
    /// <p>The <i>attachment</i> parameter describes the depth/stencil buffer configuration, <i>target</i> the texture target and <i>internalFormat</i> the internal texture format. The default texture target is <code>GL_TEXTURE_2D</code>, while the default internal format is <code>GL_RGBA8</code> for desktop OpenGL and <code>GL_RGBA</code> for OpenGL/ES.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_attachment_uint(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        attachment: crate::q_opengl_framebuffer_object::Attachment,
        target: ::std::os::raw::c_uint,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject9(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size)
                    .as_raw_ptr(),
                attachment,
                target,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(const QSize& size, QOpenGLFramebufferObject::Attachment attachment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object and binds a texture to the buffer of the given <i>size</i>.</p>
    /// <p>The <i>attachment</i> parameter describes the depth/stencil buffer configuration, <i>target</i> the texture target and <i>internalFormat</i> the internal texture format. The default texture target is <code>GL_TEXTURE_2D</code>, while the default internal format is <code>GL_RGBA8</code> for desktop OpenGL and <code>GL_RGBA</code> for OpenGL/ES.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_attachment(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        attachment: crate::q_opengl_framebuffer_object::Attachment,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject10(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size)
                    .as_raw_ptr(),
                attachment,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, QOpenGLFramebufferObject::Attachment attachment, unsigned int target = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object and binds a texture to the buffer of the given <i>width</i> and <i>height</i>.</p>
    /// <p>The <i>attachment</i> parameter describes the depth/stencil buffer configuration, <i>target</i> the texture target and <i>internalFormat</i> the internal texture format. The default texture target is <code>GL_TEXTURE_2D</code>, while the default internal format is <code>GL_RGBA8</code> for desktop OpenGL and <code>GL_RGBA</code> for OpenGL/ES.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int_attachment_uint(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        attachment: crate::q_opengl_framebuffer_object::Attachment,
        target: ::std::os::raw::c_uint,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject11(
                width, height, attachment, target,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObject::QOpenGLFramebufferObject(int width, int height, QOpenGLFramebufferObject::Attachment attachment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#QOpenGLFramebufferObject-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Constructs an OpenGL framebuffer object and binds a texture to the buffer of the given <i>width</i> and <i>height</i>.</p>
    /// <p>The <i>attachment</i> parameter describes the depth/stencil buffer configuration, <i>target</i> the texture target and <i>internalFormat</i> the internal texture format. The default texture target is <code>GL_TEXTURE_2D</code>, while the default internal format is <code>GL_RGBA8</code> for desktop OpenGL and <code>GL_RGBA</code> for OpenGL/ES.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int_attachment(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        attachment: crate::q_opengl_framebuffer_object::Attachment,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_QOpenGLFramebufferObject12(
                width, height, attachment,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Switches rendering back to the default, windowing system provided framebuffer. Returns <code>true</code> upon success, false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLFramebufferObject::release()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#release">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Switches rendering back to the default, windowing system provided framebuffer. Returns <code>true</code> upon success, false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn release(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_release(
            self as *mut crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>Sets the attachments of the framebuffer object to <i>attachment</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObject::setAttachment(QOpenGLFramebufferObject::Attachment attachment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#setAttachment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attachments of the framebuffer object to <i>attachment</i>.</p>
    /// <p>This can be used to free or reattach the depth and stencil buffer attachments as needed.</p>
    /// <p><b>Note: </b>This function alters the current framebuffer binding.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attachment(
        &mut self,
        attachment: crate::q_opengl_framebuffer_object::Attachment,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_setAttachment(
            self as *mut crate::QOpenGLFramebufferObject,
            attachment,
        )
    }

    /// <p>Returns the size of the color and depth/stencil attachments attached to this framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QOpenGLFramebufferObject::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the color and depth/stencil attachments attached to this framebuffer object.</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_size(
            self as *const crate::QOpenGLFramebufferObject,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the sizes of all color attachments attached to this framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize> QOpenGLFramebufferObject::sizes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#sizes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the sizes of all color attachments attached to this framebuffer object.</p>
    /// <p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn sizes(&self) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_sizes(
            self as *const crate::QOpenGLFramebufferObject,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the texture id for the texture attached to this framebuffer object. The ownership of the texture is transferred to the caller.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLFramebufferObject::takeTexture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#takeTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture id for the texture attached to this framebuffer object. The ownership of the texture is transferred to the caller.</p>
    /// <p>If the framebuffer object is currently bound, an implicit <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#release">release</a>() will be done. During the next call to <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#bind">bind</a>() a new texture will be created.</p>
    /// <p>If a multisample framebuffer object is used, then there is no texture and the return value from this function will be invalid. Similarly, incomplete framebuffer objects will also return 0.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#bind">bind</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_texture_0a(&mut self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_takeTexture(
            self as *mut crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLFramebufferObject::takeTexture(int colorAttachmentIndex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#takeTexture-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the texture id for the texture attached to the color attachment of index <i>colorAttachmentIndex</i> of this framebuffer object. The ownership of the texture is transferred to the caller.</p>
    /// <p>When <i>colorAttachmentIndex</i> is <code>0</code>, the behavior is identical to the parameter-less variant of this function.</p>
    /// <p>If the framebuffer object is currently bound, an implicit <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#release">release</a>() will be done. During the next call to <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#bind">bind</a>() a new texture will be created.</p>
    /// <p>If a multisample framebuffer object is used, then there is no texture and the return value from this function will be invalid. Similarly, incomplete framebuffer objects will also return 0.</p>
    /// <p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn take_texture_1a(&mut self, color_attachment_index: ::std::os::raw::c_int) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_takeTexture1(
            self as *mut crate::QOpenGLFramebufferObject,
            color_attachment_index,
        )
    }

    /// <p>Returns the texture id for the texture attached as the default rendering target in this framebuffer object. This texture id can be bound as a normal texture in your own OpenGL code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLFramebufferObject::texture() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture id for the texture attached as the default rendering target in this framebuffer object. This texture id can be bound as a normal texture in your own OpenGL code.</p>
    /// <p>If a multisample framebuffer object is used then the value returned from this function will be invalid.</p>
    /// <p>When multiple textures are attached, the return value is the ID of the first one.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#takeTexture">takeTexture</a>() and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#textures">textures</a>().</p></div>
    #[inline(always)]
    pub unsafe fn texture(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_texture(
            self as *const crate::QOpenGLFramebufferObject,
        )
    }

    /// <p>Returns the texture id for all attached textures.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint> QOpenGLFramebufferObject::textures() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#textures">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture id for all attached textures.</p>
    /// <p>If a multisample framebuffer object is used, then an empty vector is returned.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#takeTexture">takeTexture</a>() and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">texture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn textures(&self) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_textures(
            self as *const crate::QOpenGLFramebufferObject,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QOpenGLFramebufferObject::toImage() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#toImage-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the contents of this framebuffer object as a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. This method flips the image from OpenGL coordinates to raster coordinates.</p></div>
    #[inline(always)]
    pub unsafe fn to_image_0a(&self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_toImage(
            self as *const crate::QOpenGLFramebufferObject,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the contents of this framebuffer object as a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QOpenGLFramebufferObject::toImage(bool flipped) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#toImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the contents of this framebuffer object as a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>.</p>
    /// <p>If <i>flipped</i> is true the image is flipped from OpenGL coordinates to raster coordinates. If used together with <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a>, <i>flipped</i> should be the opposite of the value of <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#paintFlipped">QOpenGLPaintDevice::paintFlipped</a>().</p>
    /// <p>The returned image has a format of premultiplied ARGB32 or RGB32. The latter is used only when internalTextureFormat() is set to <code>GL_RGB</code>. Since Qt 5.2 the function will fall back to premultiplied RGBA8888 or RGBx8888 when reading to (A)RGB32 is not supported, and this includes OpenGL ES. Since Qt 5.4 an A2BGR30 image is returned if the internal format is RGB10_A2.</p>
    /// <p>If the rendering in the framebuffer was not done with premultiplied alpha in mind, create a wrapper <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> with a non-premultiplied format. This is necessary before performing operations like <a href="http://doc.qt.io/qt-5/qimage.html#save">QImage::save</a>() because otherwise the image data would get unpremultiplied, even though it was not premultiplied in the first place. To create such a wrapper without performing a copy of the pixel data, do the following:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span> fboImage(fbo<span class="operator">.</span>toImage());
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span> image(fboImage<span class="operator">.</span>constBits()<span class="operator">,</span> fboImage<span class="operator">.</span>width()<span class="operator">,</span> fboImage<span class="operator">.</span>height()<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span><span class="operator">::</span>Format_ARGB32);
    ///
    /// </pre>
    /// <p>For multisampled framebuffer objects the samples are resolved using the <code>GL_EXT_framebuffer_blit</code> extension. If the extension is not available, the contents of the returned image is undefined.</p>
    /// <p>For singlesampled framebuffers the contents is retrieved via <code>glReadPixels</code>. This is a potentially expensive and inefficient operation. Therefore it is recommended that this function is used as seldom as possible.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#paintFlipped">QOpenGLPaintDevice::paintFlipped</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_image_1a(&self, flipped: bool) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_toImage1(
            self as *const crate::QOpenGLFramebufferObject,
            flipped,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QOpenGLFramebufferObject::toImage(bool flipped, int colorAttachmentIndex) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#toImage-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the contents of the color attachment of index <i>colorAttachmentIndex</i> of this framebuffer object as a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. This method flips the image from OpenGL coordinates to raster coordinates when <i>flipped</i> is set to <code>true</code>.</p>
    /// <p><b>Note: </b>This overload is only fully functional when multiple render targets are supported by the OpenGL implementation. When that is not the case, only one color attachment will be set up.</p><p>This function was introduced in  Qt 5.6.</p></div>
    #[inline(always)]
    pub unsafe fn to_image_2a(
        &self,
        flipped: bool,
        color_attachment_index: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_toImage2(
            self as *const crate::QOpenGLFramebufferObject,
            flipped,
            color_attachment_index,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the width of the framebuffer object attachments.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLFramebufferObject::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the framebuffer object attachments.</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_width(
            self as *const crate::QOpenGLFramebufferObject,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html">QOpenGLFramebufferObjectFormat</a> class specifies the format of an OpenGL framebuffer object.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLFramebufferObjectFormat```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html">QOpenGLFramebufferObjectFormat</a> class specifies the format of an OpenGL framebuffer object.</p>
/// <p>A framebuffer object has several characteristics:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setSamples">Number of samples per pixels.</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setAttachment">Depth and/or stencil attachments.</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setTextureTarget">Texture target.</a></li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setInternalTextureFormat">Internal texture format.</a></li>
/// </ul>
/// <p>Note that the desired attachments or number of samples per pixels might not be supported by the hardware driver. Call <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#format">QOpenGLFramebufferObject::format</a>() after creating a <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a> to find the exact format that was used to create the frame buffer object.</p></div>
#[repr(C)]
pub struct QOpenGLFramebufferObjectFormat {
    _unused: u8,
}
impl QOpenGLFramebufferObjectFormat {
    /// <p>Returns the configuration of the depth and stencil buffers attached to a framebuffer object. The default is <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#Attachment-enum">QOpenGLFramebufferObject::NoAttachment</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFramebufferObject::Attachment QOpenGLFramebufferObjectFormat::attachment() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#attachment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the configuration of the depth and stencil buffers attached to a framebuffer object. The default is <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#Attachment-enum">QOpenGLFramebufferObject::NoAttachment</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setAttachment">setAttachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn attachment(&self) -> crate::q_opengl_framebuffer_object::Attachment {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_attachment(
            self as *const crate::QOpenGLFramebufferObjectFormat,
        )
    }

    /// <p>Assigns <i>other</i> to this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFramebufferObjectFormat& QOpenGLFramebufferObjectFormat::operator=(const QOpenGLFramebufferObjectFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this object.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>,
    ) -> ::cpp_core::MutRef<crate::QOpenGLFramebufferObjectFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_operator_(self as *mut crate::QOpenGLFramebufferObjectFormat, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>::cast_into(other).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the internal format of a framebuffer object's texture or multisample framebuffer object's color buffer. The default is <code>GL_RGBA8</code> on desktop OpenGL systems, and <code>GL_RGBA</code> on OpenGL/ES systems.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QOpenGLFramebufferObjectFormat::internalTextureFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#internalTextureFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the internal format of a framebuffer object's texture or multisample framebuffer object's color buffer. The default is <code>GL_RGBA8</code> on desktop OpenGL systems, and <code>GL_RGBA</code> on OpenGL/ES systems.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setInternalTextureFormat">setInternalTextureFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn internal_texture_format(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_internalTextureFormat(
            self as *const crate::QOpenGLFramebufferObjectFormat,
        )
    }

    /// <p>Returns <code>true</code> if mipmapping is enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLFramebufferObjectFormat::mipmap() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#mipmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if mipmapping is enabled.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setMipmap">setMipmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mipmap(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_mipmap(
            self as *const crate::QOpenGLFramebufferObjectFormat,
        )
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html">QOpenGLFramebufferObjectFormat</a> object for specifying the format of an OpenGL framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObjectFormat::QOpenGLFramebufferObjectFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#QOpenGLFramebufferObjectFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html">QOpenGLFramebufferObjectFormat</a> object for specifying the format of an OpenGL framebuffer object.</p>
    /// <p>By default the format specifies a non-multisample framebuffer object with no depth/stencil attachments, texture target <code>GL_TEXTURE_2D</code>, and internal format <code>GL_RGBA8</code>. On OpenGL/ES systems, the default internal format is <code>GL_RGBA</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#samples">samples</a>(), <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#attachment">attachment</a>(), and <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#internalTextureFormat">internalTextureFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObjectFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_QOpenGLFramebufferObjectFormat();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLFramebufferObjectFormat::QOpenGLFramebufferObjectFormat(const QOpenGLFramebufferObjectFormat& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#QOpenGLFramebufferObjectFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLFramebufferObjectFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_QOpenGLFramebufferObjectFormat1(::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>::cast_into(other).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of samples per pixel if a framebuffer object is a multisample framebuffer object. Otherwise, returns 0. The default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLFramebufferObjectFormat::samples() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#samples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of samples per pixel if a framebuffer object is a multisample framebuffer object. Otherwise, returns 0. The default value is 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setSamples">setSamples</a>().</p></div>
    #[inline(always)]
    pub unsafe fn samples(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_samples(
            self as *const crate::QOpenGLFramebufferObjectFormat,
        )
    }

    /// <p>Sets the attachment configuration of a framebuffer object to <i>attachment</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObjectFormat::setAttachment(QOpenGLFramebufferObject::Attachment attachment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setAttachment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attachment configuration of a framebuffer object to <i>attachment</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#attachment">attachment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attachment(
        &mut self,
        attachment: crate::q_opengl_framebuffer_object::Attachment,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_setAttachment(
            self as *mut crate::QOpenGLFramebufferObjectFormat,
            attachment,
        )
    }

    /// <p>Sets the internal format of a framebuffer object's texture or multisample framebuffer object's color buffer to <i>internalTextureFormat</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObjectFormat::setInternalTextureFormat(unsigned int internalTextureFormat)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setInternalTextureFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the internal format of a framebuffer object's texture or multisample framebuffer object's color buffer to <i>internalTextureFormat</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#internalTextureFormat">internalTextureFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_internal_texture_format(
        &mut self,
        internal_texture_format: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_setInternalTextureFormat(
            self as *mut crate::QOpenGLFramebufferObjectFormat,
            internal_texture_format,
        )
    }

    /// <p>Enables mipmapping if <i>enabled</i> is true; otherwise disables it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObjectFormat::setMipmap(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setMipmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables mipmapping if <i>enabled</i> is true; otherwise disables it.</p>
    /// <p>Mipmapping is disabled by default.</p>
    /// <p>If mipmapping is enabled, additional memory will be allocated for the mipmap levels. The mipmap levels can be updated by binding the texture and calling glGenerateMipmap(). Mipmapping cannot be enabled for multisampled framebuffer objects.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#mipmap">mipmap</a>() and <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#texture">QOpenGLFramebufferObject::texture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mipmap(&mut self, enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_setMipmap(
            self as *mut crate::QOpenGLFramebufferObjectFormat,
            enabled,
        )
    }

    /// <p>Sets the number of samples per pixel for a multisample framebuffer object to <i>samples</i>. The default sample count of 0 represents a regular non-multisample framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObjectFormat::setSamples(int samples)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setSamples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of samples per pixel for a multisample framebuffer object to <i>samples</i>. The default sample count of 0 represents a regular non-multisample framebuffer object.</p>
    /// <p>If the desired amount of samples per pixel is not supported by the hardware then the maximum number of samples per pixel will be used. Note that multisample framebuffer objects can not be bound as textures. Also, the <code>GL_EXT_framebuffer_multisample</code> extension is required to create a framebuffer with more than one sample per pixel.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#samples">samples</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_samples(&mut self, samples: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_setSamples(
            self as *mut crate::QOpenGLFramebufferObjectFormat,
            samples,
        )
    }

    /// <p>Sets the texture target of the texture attached to a framebuffer object to <i>target</i>. Ignored for multisample framebuffer objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLFramebufferObjectFormat::setTextureTarget(unsigned int target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setTextureTarget">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture target of the texture attached to a framebuffer object to <i>target</i>. Ignored for multisample framebuffer objects.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#textureTarget">textureTarget</a>() and <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#samples">samples</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_texture_target(&mut self, target: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_setTextureTarget(
            self as *mut crate::QOpenGLFramebufferObjectFormat,
            target,
        )
    }

    /// <p>Returns the texture target of the texture attached to a framebuffer object. Ignored for multisample framebuffer objects. The default is <code>GL_TEXTURE_2D</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QOpenGLFramebufferObjectFormat::textureTarget() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#textureTarget">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture target of the texture attached to a framebuffer object. Ignored for multisample framebuffer objects. The default is <code>GL_TEXTURE_2D</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#setTextureTarget">setTextureTarget</a>() and <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#samples">samples</a>().</p></div>
    #[inline(always)]
    pub unsafe fn texture_target(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_textureTarget(
            self as *const crate::QOpenGLFramebufferObjectFormat,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> class enables painting to an OpenGL context using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLPaintDevice```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> class enables painting to an OpenGL context using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> uses the <b>current</b> QOpenGL context to render <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draw commands. The context is captured upon construction. It requires support for OpenGL (ES) 2.0 or higher.</p>
/// <a name="performance"></a></div>
#[repr(C)]
pub struct QOpenGLPaintDevice {
    _unused: u8,
}
impl QOpenGLPaintDevice {
    /// <p>Returns the OpenGL context associated with the paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* QOpenGLPaintDevice::context() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#context">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the OpenGL context associated with the paint device.</p></div>
    #[inline(always)]
    pub unsafe fn context(&self) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_context(
            self as *const crate::QOpenGLPaintDevice,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLPaintDevice::devType() const```</span>.
    #[inline(always)]
    pub unsafe fn dev_type(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_devType(
            self as *const crate::QOpenGLPaintDevice,
        )
    }

    /// <p>Returns the number of pixels per meter horizontally.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QOpenGLPaintDevice::dotsPerMeterX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#dotsPerMeterX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of pixels per meter horizontally.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setDotsPerMeterX">setDotsPerMeterX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn dots_per_meter_x(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_dotsPerMeterX(
            self as *const crate::QOpenGLPaintDevice,
        )
    }

    /// <p>Returns the number of pixels per meter vertically.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QOpenGLPaintDevice::dotsPerMeterY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#dotsPerMeterY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of pixels per meter vertically.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setDotsPerMeterY">setDotsPerMeterY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn dots_per_meter_y(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_dotsPerMeterY(
            self as *const crate::QOpenGLPaintDevice,
        )
    }

    /// <p>This virtual method is provided as a callback to allow re-binding a target frame buffer object or context when different <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> instances are issuing draw calls alternately.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QOpenGLPaintDevice::ensureActiveTarget()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#ensureActiveTarget">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This virtual method is provided as a callback to allow re-binding a target frame buffer object or context when different <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> instances are issuing draw calls alternately.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpainter.html#beginNativePainting">beginNativePainting()</a> will also trigger this method.</p>
    /// <p>The default implementation does nothing.</p></div>
    #[inline(always)]
    pub unsafe fn ensure_active_target(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_ensureActiveTarget(
            self as *mut crate::QOpenGLPaintDevice,
        )
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLPaintDevice::QOpenGLPaintDevice()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#QOpenGLPaintDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a>.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> is only valid for the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">QOpenGLContext::currentContext</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_QOpenGLPaintDevice();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> with the given <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLPaintDevice::QOpenGLPaintDevice(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#QOpenGLPaintDevice-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> with the given <i>size</i>.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> is only valid for the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">QOpenGLContext::currentContext</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_QOpenGLPaintDevice1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> with the given <i>width</i> and <i>height</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLPaintDevice::QOpenGLPaintDevice(int width, int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#QOpenGLPaintDevice-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> with the given <i>width</i> and <i>height</i>.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a> is only valid for the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">QOpenGLContext::currentContext</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QOpenGLPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_QOpenGLPaintDevice2(width, height);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpaintdevice.html#paintEngine">QPaintDevice::paintEngine</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QPaintEngine* QOpenGLPaintDevice::paintEngine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#paintEngine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpaintdevice.html#paintEngine">QPaintDevice::paintEngine</a>().</p></div>
    #[inline(always)]
    pub unsafe fn paint_engine(&self) -> ::cpp_core::MutPtr<crate::QPaintEngine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_paintEngine(
            self as *const crate::QOpenGLPaintDevice,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns <code>true</code> if painting is flipped around the Y-axis.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLPaintDevice::paintFlipped() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#paintFlipped">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if painting is flipped around the Y-axis.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setPaintFlipped">setPaintFlipped</a>().</p></div>
    #[inline(always)]
    pub unsafe fn paint_flipped(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_paintFlipped(
            self as *const crate::QOpenGLPaintDevice,
        )
    }

    /// <p>Sets the device pixel ratio for the paint device to <i>devicePixelRatio</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPaintDevice::setDevicePixelRatio(double devicePixelRatio)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setDevicePixelRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the device pixel ratio for the paint device to <i>devicePixelRatio</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_device_pixel_ratio(&mut self, device_pixel_ratio: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_setDevicePixelRatio(
            self as *mut crate::QOpenGLPaintDevice,
            device_pixel_ratio,
        )
    }

    /// <p>Sets the number of pixels per meter horizontally to <i>dpmx</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPaintDevice::setDotsPerMeterX(double arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setDotsPerMeterX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of pixels per meter horizontally to <i>dpmx</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#dotsPerMeterX">dotsPerMeterX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_dots_per_meter_x(&mut self, arg1: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_setDotsPerMeterX(
            self as *mut crate::QOpenGLPaintDevice,
            arg1,
        )
    }

    /// <p>Sets the number of pixels per meter vertically to <i>dpmy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPaintDevice::setDotsPerMeterY(double arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setDotsPerMeterY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of pixels per meter vertically to <i>dpmy</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#dotsPerMeterY">dotsPerMeterY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_dots_per_meter_y(&mut self, arg1: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_setDotsPerMeterY(
            self as *mut crate::QOpenGLPaintDevice,
            arg1,
        )
    }

    /// <p>Sets whether painting should be flipped around the Y-axis or not to <i>flipped</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPaintDevice::setPaintFlipped(bool flipped)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setPaintFlipped">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether painting should be flipped around the Y-axis or not to <i>flipped</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#paintFlipped">paintFlipped</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_paint_flipped(&mut self, flipped: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_setPaintFlipped(
            self as *mut crate::QOpenGLPaintDevice,
            flipped,
        )
    }

    /// <p>Sets the pixel size of the paint device to <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPaintDevice::setSize(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pixel size of the paint device to <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_size(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_setSize(
            self as *mut crate::QOpenGLPaintDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>Returns the pixel size of the paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QOpenGLPaintDevice::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixel size of the paint device.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setSize">setSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_size(
            self as *const crate::QOpenGLPaintDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html">QOpenGLPixelTransferOptions</a> class describes the pixel storage modes that affect the unpacking of pixels during texture upload.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLPixelTransferOptions```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html">QOpenGLPixelTransferOptions</a> class describes the pixel storage modes that affect the unpacking of pixels during texture upload.</p></div>
#[repr(C)]
pub struct QOpenGLPixelTransferOptions {
    _unused: u8,
}
impl QOpenGLPixelTransferOptions {
    /// <p>Returns the current alignment requirement for each pixel row.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLPixelTransferOptions::alignment() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#alignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current alignment requirement for each pixel row.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setAlignment">setAlignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn alignment(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_alignment(
            self as *const crate::QOpenGLPixelTransferOptions,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLPixelTransferOptions& QOpenGLPixelTransferOptions::operator=(const QOpenGLPixelTransferOptions& arg1)```</span>.
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLPixelTransferOptions>>,
    ) -> ::cpp_core::MutRef<crate::QOpenGLPixelTransferOptions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_operator_1(
            self as *mut crate::QOpenGLPixelTransferOptions,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLPixelTransferOptions>>::cast_into(
                arg1,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the currently set image height.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLPixelTransferOptions::imageHeight() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#imageHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set image height.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setImageHeight">setImageHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn image_height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_imageHeight(
            self as *const crate::QOpenGLPixelTransferOptions,
        )
    }

    /// <p>Returns <code>true</code> if bits within a byte are ordered from least to most significant.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLPixelTransferOptions::isLeastSignificantBitFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#isLeastSignificantBitFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if bits within a byte are ordered from least to most significant.</p></div>
    #[inline(always)]
    pub unsafe fn is_least_significant_bit_first(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_isLeastSignificantBitFirst(
            self as *const crate::QOpenGLPixelTransferOptions,
        )
    }

    /// <p>Returns <code>true</code> if the byte ordering for multibyte components is reversed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLPixelTransferOptions::isSwapBytesEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#isSwapBytesEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the byte ordering for multibyte components is reversed.</p></div>
    #[inline(always)]
    pub unsafe fn is_swap_bytes_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_isSwapBytesEnabled(
            self as *const crate::QOpenGLPixelTransferOptions,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html">QOpenGLPixelTransferOptions</a> instance with the default settings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLPixelTransferOptions::QOpenGLPixelTransferOptions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#QOpenGLPixelTransferOptions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html">QOpenGLPixelTransferOptions</a> instance with the default settings.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QOpenGLPixelTransferOptions> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_QOpenGLPixelTransferOptions();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html">QOpenGLPixelTransferOptions</a> instance with the default settings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLPixelTransferOptions::QOpenGLPixelTransferOptions(const QOpenGLPixelTransferOptions& arg1)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#QOpenGLPixelTransferOptions">C++ documentation</a> for <span style='color: green;'>```QOpenGLPixelTransferOptions::QOpenGLPixelTransferOptions()```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html">QOpenGLPixelTransferOptions</a> instance with the default settings.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLPixelTransferOptions>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLPixelTransferOptions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_QOpenGLPixelTransferOptions1(::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLPixelTransferOptions>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the currently set row length.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLPixelTransferOptions::rowLength() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#rowLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set row length.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setRowLength">setRowLength</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row_length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_rowLength(
            self as *const crate::QOpenGLPixelTransferOptions,
        )
    }

    /// <p>Sets the <i>alignment</i> requirements for each pixel row. Corresponds to <code>GL_UNPACK_ALIGNMENT</code>. The default value is 4, as specified by OpenGL.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::setAlignment(int alignment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setAlignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>alignment</i> requirements for each pixel row. Corresponds to <code>GL_UNPACK_ALIGNMENT</code>. The default value is 4, as specified by OpenGL.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#alignment">alignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_alignment(&mut self, alignment: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_setAlignment(
            self as *mut crate::QOpenGLPixelTransferOptions,
            alignment,
        )
    }

    /// <p>Sets the image height for 3D textures to <i>imageHeight</i>. Corresponds to <code>GL_UNPACK_IMAGE_HEIGHT</code>. The default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::setImageHeight(int imageHeight)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setImageHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the image height for 3D textures to <i>imageHeight</i>. Corresponds to <code>GL_UNPACK_IMAGE_HEIGHT</code>. The default value is 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#imageHeight">imageHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_image_height(&mut self, image_height: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_setImageHeight(
            self as *mut crate::QOpenGLPixelTransferOptions,
            image_height,
        )
    }

    /// <p><i>lsbFirst</i> specifies if bits within a byte are ordered from least to most significat. The default value is <code>false</code>, meaning that the first bit in each byte is the most significant one. This is significant for bitmap data only. Corresponds to <code>GL_UNPACK_LSB_FIRST</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::setLeastSignificantByteFirst(bool lsbFirst)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setLeastSignificantByteFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><i>lsbFirst</i> specifies if bits within a byte are ordered from least to most significat. The default value is <code>false</code>, meaning that the first bit in each byte is the most significant one. This is significant for bitmap data only. Corresponds to <code>GL_UNPACK_LSB_FIRST</code>.</p></div>
    #[inline(always)]
    pub unsafe fn set_least_significant_byte_first(&mut self, lsb_first: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_setLeastSignificantByteFirst(
            self as *mut crate::QOpenGLPixelTransferOptions,
            lsb_first,
        )
    }

    /// <p>Sets the number of pixels in a row to <i>rowLength</i>. Corresponds to <code>GL_UNPACK_ROW_LENGTH</code>. The default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::setRowLength(int rowLength)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setRowLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of pixels in a row to <i>rowLength</i>. Corresponds to <code>GL_UNPACK_ROW_LENGTH</code>. The default value is 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#rowLength">rowLength</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_row_length(&mut self, row_length: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_setRowLength(
            self as *mut crate::QOpenGLPixelTransferOptions,
            row_length,
        )
    }

    /// <p>Sets the number of images that are skipped to <i>skipImages</i>. Corresponds to <code>GL_UNPACK_SKIP_IMAGES</code>. Equivalent to incrementing the pointer passed to <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">QOpenGLTexture::setData</a>(). The default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::setSkipImages(int skipImages)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setSkipImages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of images that are skipped to <i>skipImages</i>. Corresponds to <code>GL_UNPACK_SKIP_IMAGES</code>. Equivalent to incrementing the pointer passed to <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">QOpenGLTexture::setData</a>(). The default value is 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#skipImages">skipImages</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_skip_images(&mut self, skip_images: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_setSkipImages(
            self as *mut crate::QOpenGLPixelTransferOptions,
            skip_images,
        )
    }

    /// <p>Sets the number of pixels that are skipped to <i>skipPixels</i>. Corresponds to <code>GL_UNPACK_SKIP_PIXELS</code>. Equivalent to incrementing the pointer passed to <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">QOpenGLTexture::setData</a>(). The default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::setSkipPixels(int skipPixels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setSkipPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of pixels that are skipped to <i>skipPixels</i>. Corresponds to <code>GL_UNPACK_SKIP_PIXELS</code>. Equivalent to incrementing the pointer passed to <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">QOpenGLTexture::setData</a>(). The default value is 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#skipPixels">skipPixels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_skip_pixels(&mut self, skip_pixels: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_setSkipPixels(
            self as *mut crate::QOpenGLPixelTransferOptions,
            skip_pixels,
        )
    }

    /// <p>Sets the number of rows that are skipped to <i>skipRows</i>. Corresponds to <code>GL_UNPACK_SKIP_ROWS</code>. Equivalent to incrementing the pointer passed to <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">QOpenGLTexture::setData</a>(). The default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::setSkipRows(int skipRows)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setSkipRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of rows that are skipped to <i>skipRows</i>. Corresponds to <code>GL_UNPACK_SKIP_ROWS</code>. Equivalent to incrementing the pointer passed to <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">QOpenGLTexture::setData</a>(). The default value is 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#skipRows">skipRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_skip_rows(&mut self, skip_rows: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_setSkipRows(
            self as *mut crate::QOpenGLPixelTransferOptions,
            skip_rows,
        )
    }

    /// <p><i>swapBytes</i> specifies if the byte ordering for multibyte components is reversed. The default value is <code>false</code>. Corresponds to <code>GL_UNPACK_SWAP_BYTES</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::setSwapBytesEnabled(bool swapBytes)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setSwapBytesEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><i>swapBytes</i> specifies if the byte ordering for multibyte components is reversed. The default value is <code>false</code>. Corresponds to <code>GL_UNPACK_SWAP_BYTES</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#isSwapBytesEnabled">isSwapBytesEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_swap_bytes_enabled(&mut self, swap_bytes: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_setSwapBytesEnabled(
            self as *mut crate::QOpenGLPixelTransferOptions,
            swap_bytes,
        )
    }

    /// <p>Returns the number of images that are skipped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLPixelTransferOptions::skipImages() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#skipImages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of images that are skipped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setSkipImages">setSkipImages</a>().</p></div>
    #[inline(always)]
    pub unsafe fn skip_images(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_skipImages(
            self as *const crate::QOpenGLPixelTransferOptions,
        )
    }

    /// <p>Returns the number of pixels that are skipped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLPixelTransferOptions::skipPixels() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#skipPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of pixels that are skipped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setSkipPixels">setSkipPixels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn skip_pixels(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_skipPixels(
            self as *const crate::QOpenGLPixelTransferOptions,
        )
    }

    /// <p>Returns the number of rows that are skipped.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLPixelTransferOptions::skipRows() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#skipRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of rows that are skipped.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#setSkipRows">setSkipRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn skip_rows(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_skipRows(
            self as *const crate::QOpenGLPixelTransferOptions,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLPixelTransferOptions::swap(QOpenGLPixelTransferOptions& other)```</span>.
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_swap(self as *mut crate::QOpenGLPixelTransferOptions, ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QOpenGLPixelTransferOptions>>::cast_into(other).as_mut_raw_ptr())
    }
}

pub mod q_opengl_shader {
    //! C++ type: <span style='color: green;'>```QOpenGLShader```</span>

    /// <p>This enum specifies the type of <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> that is being created.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLShader::ShaderTypeBit```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#ShaderTypeBit-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies the type of <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> that is being created.</p>
    ///
    /// <p>The ShaderType type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;ShaderTypeBit&gt;. It stores an OR combination of ShaderTypeBit values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ShaderTypeBit(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ShaderTypeBit {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ShaderTypeBit(value)
        }
    }

    impl From<ShaderTypeBit> for ::std::os::raw::c_int {
        fn from(value: ShaderTypeBit) -> Self {
            value.0
        }
    }

    impl ShaderTypeBit {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ShaderTypeBit {
        /// Vertex shader written in the OpenGL Shading Language (GLSL). (C++ enum variant: <span style='color: green;'>```Vertex = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Vertex: crate::q_opengl_shader::ShaderTypeBit =
            crate::q_opengl_shader::ShaderTypeBit(1);
        /// Fragment shader written in the OpenGL Shading Language (GLSL). (C++ enum variant: <span style='color: green;'>```Fragment = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Fragment: crate::q_opengl_shader::ShaderTypeBit =
            crate::q_opengl_shader::ShaderTypeBit(2);
        /// Geometry shaders written in the OpenGL Shading Language (GLSL) based on the OpenGL core feature (requires OpenGL &gt;= 3.2). (C++ enum variant: <span style='color: green;'>```Geometry = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Geometry: crate::q_opengl_shader::ShaderTypeBit =
            crate::q_opengl_shader::ShaderTypeBit(4);
        /// Tessellation control shaders written in the OpenGL shading language (GLSL), based on the core feature (requires OpenGL &gt;= 4.0). (C++ enum variant: <span style='color: green;'>```TessellationControl = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const TessellationControl: crate::q_opengl_shader::ShaderTypeBit =
            crate::q_opengl_shader::ShaderTypeBit(8);
        /// Tessellation evaluation shaders written in the OpenGL shading language (GLSL), based on the core feature (requires OpenGL &gt;= 4.0). (C++ enum variant: <span style='color: green;'>```TessellationEvaluation = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const TessellationEvaluation: crate::q_opengl_shader::ShaderTypeBit =
            crate::q_opengl_shader::ShaderTypeBit(16);
        /// Compute shaders written in the OpenGL shading language (GLSL), based on the core feature (requires OpenGL &gt;= 4.3). (C++ enum variant: <span style='color: green;'>```Compute = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const Compute: crate::q_opengl_shader::ShaderTypeBit =
            crate::q_opengl_shader::ShaderTypeBit(32);
    }

    impl From<crate::q_opengl_shader::ShaderTypeBit>
        for ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>
    {
        fn from(value: crate::q_opengl_shader::ShaderTypeBit) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>>> std::ops::BitOr<T>
        for crate::q_opengl_shader::ShaderTypeBit
    {
        type Output = ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit> {
            Into::<::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> class allows OpenGL shaders to be compiled.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLShader```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglshader.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> class allows OpenGL shaders to be compiled.</p>
/// <p>This class supports shaders written in the OpenGL Shading Language (GLSL) and in the OpenGL/ES Shading Language (GLSL/ES).</p>
/// <p><a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> shelter the programmer from the details of compiling and linking vertex and fragment shaders.</p></div>
#[repr(C)]
pub struct QOpenGLShader {
    _unused: u8,
}
impl QOpenGLShader {
    /// <p>Sets the <i>source</i> code for this shader and compiles it. Returns <code>true</code> if the source was successfully compiled, false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShader::compileSourceCode(const char* source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>source</i> code for this shader and compiles it. Returns <code>true</code> if the source was successfully compiled, false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn compile_source_code_char(
        &mut self,
        source: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_compileSourceCode(
            self as *mut crate::QOpenGLShader,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShader::compileSourceCode(const QByteArray& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the <i>source</i> code for this shader and compiles it. Returns <code>true</code> if the source was successfully compiled, false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn compile_source_code_q_byte_array(
        &mut self,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_compileSourceCode1(
            self as *mut crate::QOpenGLShader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShader::compileSourceCode(const QString& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the <i>source</i> code for this shader and compiles it. Returns <code>true</code> if the source was successfully compiled, false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn compile_source_code_q_string(
        &mut self,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_compileSourceCode2(
            self as *mut crate::QOpenGLShader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the source code for this shader to the contents of <i>fileName</i> and compiles it. Returns <code>true</code> if the file could be opened and the source compiled, false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShader::compileSourceFile(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the source code for this shader to the contents of <i>fileName</i> and compiles it. Returns <code>true</code> if the file could be opened and the source compiled, false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">compileSourceCode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn compile_source_file(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_compileSourceFile(
            self as *mut crate::QOpenGLShader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if shader programs of type <i>type</i> are supported on this system; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLShader::hasOpenGLShaders(QFlags<QOpenGLShader::ShaderTypeBit> type, QOpenGLContext* context = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#hasOpenGLShaders">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if shader programs of type <i>type</i> are supported on this system; false otherwise.</p>
    /// <p>The <i>context</i> is used to resolve the GLSL extensions. If <i>context</i> is null, then <a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">QOpenGLContext::currentContext</a>() is used.</p></div>
    #[inline(always)]
    pub unsafe fn has_opengl_shaders_2a(
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        context: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_hasOpenGLShaders(
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(context)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if shader programs of type <i>type</i> are supported on this system; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLShader::hasOpenGLShaders(QFlags<QOpenGLShader::ShaderTypeBit> type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#hasOpenGLShaders">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if shader programs of type <i>type</i> are supported on this system; false otherwise.</p>
    /// <p>The <i>context</i> is used to resolve the GLSL extensions. If <i>context</i> is null, then <a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">QOpenGLContext::currentContext</a>() is used.</p></div>
    #[inline(always)]
    pub unsafe fn has_opengl_shaders_1a(
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_hasOpenGLShaders1(type_.to_int())
    }

    /// <p>Returns <code>true</code> if this shader has been compiled; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShader::isCompiled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#isCompiled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this shader has been compiled; false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">compileSourceCode</a>() and <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_compiled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_isCompiled(self as *const crate::QOpenGLShader)
    }

    /// <p>Returns the errors and warnings that occurred during the last compile.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QOpenGLShader::log() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#log">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the errors and warnings that occurred during the last compile.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">compileSourceCode</a>() and <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn log(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_log(self as *const crate::QOpenGLShader);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLShader::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_metaObject(
            self as *const crate::QOpenGLShader,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> object of the specified <i>type</i> and attaches it to <i>parent</i>. If shader programs are not supported, <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#hasOpenGLShaderPrograms">QOpenGLShaderProgram::hasOpenGLShaderPrograms</a>() will return false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLShader::QOpenGLShader(QFlags<QOpenGLShader::ShaderTypeBit> type, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#QOpenGLShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> object of the specified <i>type</i> and attaches it to <i>parent</i>. If shader programs are not supported, <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#hasOpenGLShaderPrograms">QOpenGLShaderProgram::hasOpenGLShaderPrograms</a>() will return false.</p>
    /// <p>This constructor is normally followed by a call to <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">compileSourceCode</a>() or <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p>
    /// <p>The shader will be associated with the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">compileSourceCode</a>() and <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_QOpenGLShader(
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> object of the specified <i>type</i> and attaches it to <i>parent</i>. If shader programs are not supported, <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#hasOpenGLShaderPrograms">QOpenGLShaderProgram::hasOpenGLShaderPrograms</a>() will return false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLShader::QOpenGLShader(QFlags<QOpenGLShader::ShaderTypeBit> type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#QOpenGLShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> object of the specified <i>type</i> and attaches it to <i>parent</i>. If shader programs are not supported, <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#hasOpenGLShaderPrograms">QOpenGLShaderProgram::hasOpenGLShaderPrograms</a>() will return false.</p>
    /// <p>This constructor is normally followed by a call to <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">compileSourceCode</a>() or <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p>
    /// <p>The shader will be associated with the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">compileSourceCode</a>() and <a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceFile">compileSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_QOpenGLShader2(type_.to_int());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLShader::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_qt_metacall(
            self as *mut crate::QOpenGLShader,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLShader::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_qt_metacast(
            self as *mut crate::QOpenGLShader,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the OpenGL identifier associated with this shader.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLShader::shaderId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#shaderId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the OpenGL identifier associated with this shader.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#programId">QOpenGLShaderProgram::programId</a>().</p></div>
    #[inline(always)]
    pub unsafe fn shader_id(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_shaderId(self as *const crate::QOpenGLShader)
    }

    /// <p>Returns the type of this shader.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QOpenGLShader::ShaderTypeBit> QOpenGLShader::shaderType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#shaderType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of this shader.</p></div>
    #[inline(always)]
    pub unsafe fn shader_type(&self) -> ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_shaderType(
            self as *const crate::QOpenGLShader,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the source code for this shader.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QOpenGLShader::sourceCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#sourceCode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the source code for this shader.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#compileSourceCode">compileSourceCode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn source_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_sourceCode(
            self as *const crate::QOpenGLShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLShader::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLShader::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> class allows OpenGL shader programs to be linked and used.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLShaderProgram```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> class allows OpenGL shader programs to be linked and used.</p>
/// <a name="introduction"></a></div>
#[repr(C)]
pub struct QOpenGLShaderProgram {
    _unused: u8,
}
impl QOpenGLShaderProgram {
    /// Returns a built-in Qt slot `QOpenGLShaderProgram::shaderDestroyed` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn slot_shader_destroyed(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1shaderDestroyed()\0"),
            )
        }
    }

    /// <p>Registers the shader of the specified <i>type</i> and <i>source</i> to this program. Unlike <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>(), this function does not perform compilation. Compilation is deferred to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), and may not happen at all, because <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() may potentially use a program binary from Qt's shader disk cache. This will typically lead to a significant increase in performance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QFlags<QOpenGLShader::ShaderTypeBit> type, const char* source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceCode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Registers the shader of the specified <i>type</i> and <i>source</i> to this program. Unlike <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>(), this function does not perform compilation. Compilation is deferred to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), and may not happen at all, because <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() may potentially use a program binary from Qt's shader disk cache. This will typically lead to a significant increase in performance.</p>
    /// <p>Returns true if the shader has been registered or, in the non-cached case, compiled successfully; false if there was an error. The compilation error messages can be retrieved via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    /// <p>When the disk cache is disabled, via <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_DisableShaderDiskCache</a> for example, or the OpenGL context has no support for context binaries, calling this function is equivalent to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>().</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceFile">addCacheableShaderFromSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_cacheable_shader_from_source_code_q_flags_shader_type_bit_char(
        &mut self,
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        source: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addCacheableShaderFromSourceCode(
            self as *mut crate::QOpenGLShaderProgram,
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QFlags<QOpenGLShader::ShaderTypeBit> type, const QByteArray& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceCode-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Registers the shader of the specified <i>type</i> and <i>source</i> to this program. Unlike <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>(), this function does not perform compilation. Compilation is deferred to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), and may not happen at all, because <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() may potentially use a program binary from Qt's shader disk cache. This will typically lead to a significant increase in performance.</p>
    /// <p>Returns true if the shader has been registered or, in the non-cached case, compiled successfully; false if there was an error. The compilation error messages can be retrieved via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    /// <p>When the disk cache is disabled, via <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_DisableShaderDiskCache</a> for example, or the OpenGL context has no support for context binaries, calling this function is equivalent to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>().</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceFile">addCacheableShaderFromSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_cacheable_shader_from_source_code_q_flags_shader_type_bit_q_byte_array(
        &mut self,
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addCacheableShaderFromSourceCode1(
            self as *mut crate::QOpenGLShaderProgram,
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QFlags<QOpenGLShader::ShaderTypeBit> type, const QString& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceCode-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Registers the shader of the specified <i>type</i> and <i>source</i> to this program. Unlike <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>(), this function does not perform compilation. Compilation is deferred to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), and may not happen at all, because <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() may potentially use a program binary from Qt's shader disk cache. This will typically lead to a significant increase in performance.</p>
    /// <p>When the disk cache is disabled, via <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_DisableShaderDiskCache</a> for example, or the OpenGL context has no support for context binaries, calling this function is equivalent to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>().</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceFile">addCacheableShaderFromSourceFile</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_cacheable_shader_from_source_code_q_flags_shader_type_bit_q_string(
        &mut self,
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addCacheableShaderFromSourceCode2(
            self as *mut crate::QOpenGLShaderProgram,
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>Registers the shader of the specified <i>type</i> and <i>fileName</i> to this program. Unlike <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">addShaderFromSourceFile</a>(), this function does not perform compilation. Compilation is deferred to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), and may not happen at all, because <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() may potentially use a program binary from Qt's shader disk cache. This will typically lead to a significant increase in performance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addCacheableShaderFromSourceFile(QFlags<QOpenGLShader::ShaderTypeBit> type, const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Registers the shader of the specified <i>type</i> and <i>fileName</i> to this program. Unlike <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">addShaderFromSourceFile</a>(), this function does not perform compilation. Compilation is deferred to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), and may not happen at all, because <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() may potentially use a program binary from Qt's shader disk cache. This will typically lead to a significant increase in performance.</p>
    /// <p>Returns true if the file has been read successfully, false if the file could not be opened or the normal, non-cached compilation of the shader has failed. The compilation error messages can be retrieved via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    /// <p>When the disk cache is disabled, via <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_DisableShaderDiskCache</a> for example, or the OpenGL context has no support for context binaries, calling this function is equivalent to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">addShaderFromSourceFile</a>().</p>
    /// <p>This function was introduced in  Qt 5.9.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">addShaderFromSourceFile</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceCode">addCacheableShaderFromSourceCode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_cacheable_shader_from_source_file(
        &mut self,
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addCacheableShaderFromSourceFile(
            self as *mut crate::QOpenGLShaderProgram,
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Adds a compiled <i>shader</i> to this shader program. Returns <code>true</code> if the shader could be added, or false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addShader(QOpenGLShader* shader)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a compiled <i>shader</i> to this shader program. Returns <code>true</code> if the shader could be added, or false otherwise.</p>
    /// <p>Ownership of the <i>shader</i> object remains with the caller. It will not be deleted when this <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> instance is deleted. This allows the caller to add the same shader to multiple shader programs.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">addShaderFromSourceFile</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeShader">removeShader</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeAllShaders">removeAllShaders</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_shader(
        &mut self,
        shader: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLShader>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addShader(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLShader>>::cast_into(shader)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Compiles <i>source</i> as a shader of the specified <i>type</i> and adds it to this shader program. Returns <code>true</code> if compilation was successful, false otherwise. The compilation errors and warnings will be made available via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addShaderFromSourceCode(QFlags<QOpenGLShader::ShaderTypeBit> type, const char* source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Compiles <i>source</i> as a shader of the specified <i>type</i> and adds it to this shader program. Returns <code>true</code> if compilation was successful, false otherwise. The compilation errors and warnings will be made available via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    /// <p>This function is intended to be a short-cut for quickly adding vertex and fragment shaders to a shader program without creating an instance of <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> first.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">addShaderFromSourceFile</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeShader">removeShader</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeAllShaders">removeAllShaders</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_shader_from_source_code_q_flags_shader_type_bit_char(
        &mut self,
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        source: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addShaderFromSourceCode(
            self as *mut crate::QOpenGLShaderProgram,
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addShaderFromSourceCode(QFlags<QOpenGLShader::ShaderTypeBit> type, const QByteArray& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Compiles <i>source</i> as a shader of the specified <i>type</i> and adds it to this shader program. Returns <code>true</code> if compilation was successful, false otherwise. The compilation errors and warnings will be made available via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    /// <p>This function is intended to be a short-cut for quickly adding vertex and fragment shaders to a shader program without creating an instance of <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> first.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">addShaderFromSourceFile</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeShader">removeShader</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeAllShaders">removeAllShaders</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_shader_from_source_code_q_flags_shader_type_bit_q_byte_array(
        &mut self,
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addShaderFromSourceCode1(
            self as *mut crate::QOpenGLShaderProgram,
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addShaderFromSourceCode(QFlags<QOpenGLShader::ShaderTypeBit> type, const QString& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Compiles <i>source</i> as a shader of the specified <i>type</i> and adds it to this shader program. Returns <code>true</code> if compilation was successful, false otherwise. The compilation errors and warnings will be made available via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    /// <p>This function is intended to be a short-cut for quickly adding vertex and fragment shaders to a shader program without creating an instance of <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> first.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">addShaderFromSourceFile</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeShader">removeShader</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeAllShaders">removeAllShaders</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_shader_from_source_code_q_flags_shader_type_bit_q_string(
        &mut self,
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addShaderFromSourceCode2(
            self as *mut crate::QOpenGLShaderProgram,
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>Compiles the contents of <i>fileName</i> as a shader of the specified <i>type</i> and adds it to this shader program. Returns <code>true</code> if compilation was successful, false otherwise. The compilation errors and warnings will be made available via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::addShaderFromSourceFile(QFlags<QOpenGLShader::ShaderTypeBit> type, const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Compiles the contents of <i>fileName</i> as a shader of the specified <i>type</i> and adds it to this shader program. Returns <code>true</code> if compilation was successful, false otherwise. The compilation errors and warnings will be made available via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    /// <p>This function is intended to be a short-cut for quickly adding vertex and fragment shaders to a shader program without creating an instance of <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> first.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShaderFromSourceCode">addShaderFromSourceCode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_shader_from_source_file(
        &mut self,
        type_: ::qt_core::QFlags<crate::q_opengl_shader::ShaderTypeBit>,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_addShaderFromSourceFile(
            self as *mut crate::QOpenGLShaderProgram,
            type_.to_int(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the location of the attribute <i>name</i> within this shader program's parameter list. Returns -1 if <i>name</i> is not a valid attribute for this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLShaderProgram::attributeLocation(const char* name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the location of the attribute <i>name</i> within this shader program's parameter list. Returns -1 if <i>name</i> is not a valid attribute for this shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#uniformLocation">uniformLocation</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#bindAttributeLocation">bindAttributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn attribute_location_char(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_attributeLocation(
            self as *const crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLShaderProgram::attributeLocation(const QByteArray& name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the location of the attribute <i>name</i> within this shader program's parameter list. Returns -1 if <i>name</i> is not a valid attribute for this shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#uniformLocation">uniformLocation</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#bindAttributeLocation">bindAttributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn attribute_location_q_byte_array(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_attributeLocation1(
            self as *const crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLShaderProgram::attributeLocation(const QString& name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the location of the attribute <i>name</i> within this shader program's parameter list. Returns -1 if <i>name</i> is not a valid attribute for this shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#uniformLocation">uniformLocation</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#bindAttributeLocation">bindAttributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn attribute_location_q_string(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_attributeLocation2(
            self as *const crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Binds this shader program to the active <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> and makes it the current shader program. Any previously bound shader program is released. This is equivalent to calling <code>glUseProgram()</code> on <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#programId">programId</a>(). Returns <code>true</code> if the program was successfully bound; false otherwise. If the shader program has not yet been linked, or it needs to be re-linked, this function will call <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::bind()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#bind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds this shader program to the active <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> and makes it the current shader program. Any previously bound shader program is released. This is equivalent to calling <code>glUseProgram()</code> on <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#programId">programId</a>(). Returns <code>true</code> if the program was successfully bound; false otherwise. If the shader program has not yet been linked, or it needs to be re-linked, this function will call <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_bind(
            self as *mut crate::QOpenGLShaderProgram,
        )
    }

    /// <p>Binds the attribute <i>name</i> to the specified <i>location</i>. This function can be called before or after the program has been linked. Any attributes that have not been explicitly bound when the program is linked will be assigned locations automatically.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::bindAttributeLocation(const char* name, int location)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#bindAttributeLocation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds the attribute <i>name</i> to the specified <i>location</i>. This function can be called before or after the program has been linked. Any attributes that have not been explicitly bound when the program is linked will be assigned locations automatically.</p>
    /// <p>When this function is called after the program has been linked, the program will need to be relinked for the change to take effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation">attributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_attribute_location_char_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        location: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_bindAttributeLocation(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            location,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::bindAttributeLocation(const QByteArray& name, int location)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#bindAttributeLocation-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Binds the attribute <i>name</i> to the specified <i>location</i>. This function can be called before or after the program has been linked. Any attributes that have not been explicitly bound when the program is linked will be assigned locations automatically.</p>
    /// <p>When this function is called after the program has been linked, the program will need to be relinked for the change to take effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation">attributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_attribute_location_q_byte_array_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        location: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_bindAttributeLocation1(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(name)
                .as_raw_ptr(),
            location,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::bindAttributeLocation(const QString& name, int location)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#bindAttributeLocation-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Binds the attribute <i>name</i> to the specified <i>location</i>. This function can be called before or after the program has been linked. Any attributes that have not been explicitly bound when the program is linked will be assigned locations automatically.</p>
    /// <p>When this function is called after the program has been linked, the program will need to be relinked for the change to take effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation">attributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_attribute_location_q_string_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        location: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_bindAttributeLocation2(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            location,
        )
    }

    /// <p>Requests the shader program's id to be created immediately. Returns <code>true</code> if successful; <code>false</code> otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests the shader program's id to be created immediately. Returns <code>true</code> if successful; <code>false</code> otherwise.</p>
    /// <p>This function is primarily useful when combining <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> with other OpenGL functions that operate directly on the shader program id, like <code>GL_OES_get_program_binary</code>.</p>
    /// <p>When the shader program is used normally, the shader program's id will be created on demand.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#programId">programId</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_create(
            self as *mut crate::QOpenGLShaderProgram,
        )
    }

    /// <p>Returns the default inner tessellation levels to be used by the tessellation primitive generator in the event that the tessellation control shader does not output them. For more details on OpenGL and Tessellation shaders see <a href="http://www.opengl.org/wiki/Tessellation_Shader">OpenGL Tessellation Shaders</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float> QOpenGLShaderProgram::defaultInnerTessellationLevels() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#defaultInnerTessellationLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the default inner tessellation levels to be used by the tessellation primitive generator in the event that the tessellation control shader does not output them. For more details on OpenGL and Tessellation shaders see <a href="http://www.opengl.org/wiki/Tessellation_Shader">OpenGL Tessellation Shaders</a>.</p>
    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> of floats describing the inner tessellation levels. The vector will always have two elements but not all of them make sense for every mode of tessellation.</p>
    /// <p><b>Note: </b>This returns the global OpenGL state value. It is not specific to this <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> instance.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setDefaultInnerTessellationLevels">setDefaultInnerTessellationLevels</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#defaultOuterTessellationLevels">defaultOuterTessellationLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn default_inner_tessellation_levels(
        &self,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_defaultInnerTessellationLevels(
                self as *const crate::QOpenGLShaderProgram,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the default outer tessellation levels to be used by the tessellation primitive generator in the event that the tessellation control shader does not output them. For more details on OpenGL and Tessellation shaders see <a href="http://www.opengl.org/wiki/Tessellation_Shader">OpenGL Tessellation Shaders</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float> QOpenGLShaderProgram::defaultOuterTessellationLevels() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#defaultOuterTessellationLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the default outer tessellation levels to be used by the tessellation primitive generator in the event that the tessellation control shader does not output them. For more details on OpenGL and Tessellation shaders see <a href="http://www.opengl.org/wiki/Tessellation_Shader">OpenGL Tessellation Shaders</a>.</p>
    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> of floats describing the outer tessellation levels. The vector will always have four elements but not all of them make sense for every mode of tessellation.</p>
    /// <p><b>Note: </b>This returns the global OpenGL state value. It is not specific to this <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> instance.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setDefaultOuterTessellationLevels">setDefaultOuterTessellationLevels</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#defaultInnerTessellationLevels">defaultInnerTessellationLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn default_outer_tessellation_levels(
        &self,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_defaultOuterTessellationLevels(
                self as *const crate::QOpenGLShaderProgram,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Disables the vertex array at <i>location</i> in this shader program that was enabled by a previous call to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::disableAttributeArray(int location)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disables the vertex array at <i>location</i> in this shader program that was enabled by a previous call to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_attribute_array_int(&mut self, location: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_disableAttributeArray(
            self as *mut crate::QOpenGLShaderProgram,
            location,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::disableAttributeArray(const char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Disables the vertex array called <i>name</i> in this shader program that was enabled by a previous call to <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn disable_attribute_array_char(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_disableAttributeArray1(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Enables the vertex array at <i>location</i> in this shader program so that the value set by <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>() on <i>location</i> will be used by the shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::enableAttributeArray(int location)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables the vertex array at <i>location</i> in this shader program so that the value set by <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>() on <i>location</i> will be used by the shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_attribute_array_int(&mut self, location: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_enableAttributeArray(
            self as *mut crate::QOpenGLShaderProgram,
            location,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::enableAttributeArray(const char* name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Enables the vertex array called <i>name</i> in this shader program so that the value set by <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>() on <i>name</i> will be used by the shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn enable_attribute_array_char(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_enableAttributeArray1(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if shader programs written in the OpenGL Shading Language (GLSL) are supported on this system; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLShaderProgram::hasOpenGLShaderPrograms(QOpenGLContext* context = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#hasOpenGLShaderPrograms">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if shader programs written in the OpenGL Shading Language (GLSL) are supported on this system; false otherwise.</p>
    /// <p>The <i>context</i> is used to resolve the GLSL extensions. If <i>context</i> is null, then <a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">QOpenGLContext::currentContext</a>() is used.</p></div>
    #[inline(always)]
    pub unsafe fn has_opengl_shader_programs_1a(
        context: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_hasOpenGLShaderPrograms(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(context)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if shader programs written in the OpenGL Shading Language (GLSL) are supported on this system; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLShaderProgram::hasOpenGLShaderPrograms()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#hasOpenGLShaderPrograms">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if shader programs written in the OpenGL Shading Language (GLSL) are supported on this system; false otherwise.</p>
    /// <p>The <i>context</i> is used to resolve the GLSL extensions. If <i>context</i> is null, then <a href="http://doc.qt.io/qt-5/qopenglcontext.html#currentContext">QOpenGLContext::currentContext</a>() is used.</p></div>
    #[inline(always)]
    pub unsafe fn has_opengl_shader_programs_0a() -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_hasOpenGLShaderPrograms1()
    }

    /// <p>Returns <code>true</code> if this shader program has been linked; false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLShaderProgram::isLinked() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#isLinked">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this shader program has been linked; false otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_linked(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_isLinked(
            self as *const crate::QOpenGLShaderProgram,
        )
    }

    /// <p>Links together the shaders that were added to this program with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>(). Returns <code>true</code> if the link was successful or false otherwise. If the link failed, the error messages can be retrieved with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QOpenGLShaderProgram::link()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Links together the shaders that were added to this program with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>(). Returns <code>true</code> if the link was successful or false otherwise. If the link failed, the error messages can be retrieved with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p>
    /// <p>Subclasses can override this function to initialize attributes and uniform variables for use in specific shader programs.</p>
    /// <p>If the shader program was already linked, calling this function again will force it to be re-linked.</p>
    /// <p>When shaders were added to this program via <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceCode">addCacheableShaderFromSourceCode</a>() or <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addCacheableShaderFromSourceFile">addCacheableShaderFromSourceFile</a>(), program binaries are supported, and a cached binary is available on disk, actual compilation and linking are skipped. Instead, link() will initialize the program with the binary blob via glProgramBinary(). If there is no cached version of the program or it was generated with a different driver version, the shaders will be compiled from source and the program will get linked normally. This allows seamless upgrading of the graphics drivers, without having to worry about potentially incompatible binary formats.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">log</a>().</p></div>
    #[inline(always)]
    pub unsafe fn link(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_link(
            self as *mut crate::QOpenGLShaderProgram,
        )
    }

    /// <p>Returns the errors and warnings that occurred during the last <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() or <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>() with explicitly specified source code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QOpenGLShaderProgram::log() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#log">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the errors and warnings that occurred during the last <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>() or <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>() with explicitly specified source code.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>().</p></div>
    #[inline(always)]
    pub unsafe fn log(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_log(
            self as *const crate::QOpenGLShaderProgram,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the hardware limit for how many vertices a geometry shader can output.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLShaderProgram::maxGeometryOutputVertices() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#maxGeometryOutputVertices">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hardware limit for how many vertices a geometry shader can output.</p></div>
    #[inline(always)]
    pub unsafe fn max_geometry_output_vertices(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_maxGeometryOutputVertices(
            self as *const crate::QOpenGLShaderProgram,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLShaderProgram::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_metaObject(
            self as *const crate::QOpenGLShaderProgram,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a new shader program and attaches it to <i>parent</i>. The program will be invalid until <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>() is called.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLShaderProgram::QOpenGLShaderProgram(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#QOpenGLShaderProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new shader program and attaches it to <i>parent</i>. The program will be invalid until <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>() is called.</p>
    /// <p>The shader program will be associated with the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLShaderProgram> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_QOpenGLShaderProgram(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> class allows OpenGL shader programs to be linked and used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLShaderProgram::QOpenGLShaderProgram()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> class allows OpenGL shader programs to be linked and used.</p>
    /// <a name="introduction"></a></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLShaderProgram> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_QOpenGLShaderProgram1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of vertices per-patch to be used when rendering.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLShaderProgram::patchVertexCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#patchVertexCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of vertices per-patch to be used when rendering.</p>
    /// <p><b>Note: </b>This returns the global OpenGL state value. It is not specific to this <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> instance.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setPatchVertexCount">setPatchVertexCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn patch_vertex_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_patchVertexCount(
            self as *const crate::QOpenGLShaderProgram,
        )
    }

    /// <p>Returns the OpenGL identifier associated with this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLShaderProgram::programId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#programId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the OpenGL identifier associated with this shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshader.html#shaderId">QOpenGLShader::shaderId</a>().</p></div>
    #[inline(always)]
    pub unsafe fn program_id(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_programId(
            self as *const crate::QOpenGLShaderProgram,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLShaderProgram::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_qt_metacall(
            self as *mut crate::QOpenGLShaderProgram,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLShaderProgram::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_qt_metacast(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Releases the active shader program from the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>. This is equivalent to calling <code>glUseProgram(0)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::release()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#release">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases the active shader program from the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>. This is equivalent to calling <code>glUseProgram(0)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn release(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_release(
            self as *mut crate::QOpenGLShaderProgram,
        )
    }

    /// <p>Removes all of the shaders that were added to this program previously. The <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> objects for the shaders will not be deleted if they were constructed externally. <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> objects that are constructed internally by <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> will be deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::removeAllShaders()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeAllShaders">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all of the shaders that were added to this program previously. The <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> objects for the shaders will not be deleted if they were constructed externally. <a href="http://doc.qt.io/qt-5/qopenglshader.html">QOpenGLShader</a> objects that are constructed internally by <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> will be deleted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeShader">removeShader</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all_shaders(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_removeAllShaders(
            self as *mut crate::QOpenGLShaderProgram,
        )
    }

    /// <p>Removes <i>shader</i> from this shader program. The object is not deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::removeShader(QOpenGLShader* shader)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes <i>shader</i> from this shader program. The object is not deleted.</p>
    /// <p>The shader program must be valid in the current <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#link">link</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeAllShaders">removeAllShaders</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_shader(
        &mut self,
        shader: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLShader>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_removeShader(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLShader>>::cast_into(shader)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets an array of vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>tupleSize</i> indicates the number of components per vertex (1, 2, 3, or 4), and the <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, const float* values, int tupleSize, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>tupleSize</i> indicates the number of components per vertex (1, 2, 3, or 4), and the <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_float2_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        tuple_size: ::std::os::raw::c_int,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            tuple_size,
            stride,
        )
    }

    /// <p>Sets an array of 2D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, const QVector2D* values, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of 2D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_q_vector_2d_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector2D>>,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray1(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector2D>>::cast_into(values)
                .as_raw_ptr(),
            stride,
        )
    }

    /// <p>Sets an array of 3D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, const QVector3D* values, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of 3D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_q_vector_3d_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector3D>>,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray2(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector3D>>::cast_into(values)
                .as_raw_ptr(),
            stride,
        )
    }

    /// <p>Sets an array of 4D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, const QVector4D* values, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of 4D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_q_vector_4d_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector4D>>,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray3(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector4D>>::cast_into(values)
                .as_raw_ptr(),
            stride,
        )
    }

    /// <p>Sets an array of vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, unsigned int type, const void* values, int tupleSize, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The <i>type</i> indicates the type of elements in the <i>values</i> array, usually <code>GL_FLOAT</code>, <code>GL_UNSIGNED_BYTE</code>, etc. The <i>tupleSize</i> indicates the number of components per vertex: 1, 2, 3, or 4.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">setAttributeBuffer</a>() function can be used to set the attribute array to an offset within a vertex buffer.</p>
    /// <p><b>Note: </b>Normalization will be enabled. If this is not desired, call glVertexAttribPointer directly through <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">setAttributeBuffer</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_uint_void2_int(
        &mut self,
        location: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        tuple_size: ::std::os::raw::c_int,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray4(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(values)
                .as_raw_ptr(),
            tuple_size,
            stride,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, const float* values, int tupleSize, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>tupleSize</i> indicates the number of components per vertex (1, 2, 3, or 4), and the <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_float2_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        tuple_size: ::std::os::raw::c_int,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray5(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            tuple_size,
            stride,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, const QVector2D* values, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of 2D vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_q_vector_2d_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector2D>>,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray6(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector2D>>::cast_into(values)
                .as_raw_ptr(),
            stride,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, const QVector3D* values, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of 3D vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_q_vector_3d_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector3D>>,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray7(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector3D>>::cast_into(values)
                .as_raw_ptr(),
            stride,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, const QVector4D* values, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of 4D vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_q_vector_4d_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector4D>>,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray8(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector4D>>::cast_into(values)
                .as_raw_ptr(),
            stride,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, unsigned int type, const void* values, int tupleSize, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The <i>type</i> indicates the type of elements in the <i>values</i> array, usually <code>GL_FLOAT</code>, <code>GL_UNSIGNED_BYTE</code>, etc. The <i>tupleSize</i> indicates the number of components per vertex: 1, 2, 3, or 4.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">setAttributeBuffer</a>() function can be used to set the attribute array to an offset within a vertex buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">setAttributeBuffer</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_uint_void2_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        type_: ::std::os::raw::c_uint,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        tuple_size: ::std::os::raw::c_int,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray9(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(values)
                .as_raw_ptr(),
            tuple_size,
            stride,
        )
    }

    /// <p>Sets an array of vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>tupleSize</i> indicates the number of components per vertex (1, 2, 3, or 4), and the <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, const float* values, int tupleSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>tupleSize</i> indicates the number of components per vertex (1, 2, 3, or 4), and the <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_float_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        tuple_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray10(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            tuple_size,
        )
    }

    /// <p>Sets an array of 2D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, const QVector2D* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of 2D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_q_vector_2d(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector2D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray11(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector2D>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets an array of 3D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, const QVector3D* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of 3D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_q_vector_3d(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray12(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector3D>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets an array of 4D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, const QVector4D* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of 4D vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_q_vector_4d(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector4D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray13(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector4D>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets an array of vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(int location, unsigned int type, const void* values, int tupleSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of vertex <i>values</i> on the attribute at <i>location</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The <i>type</i> indicates the type of elements in the <i>values</i> array, usually <code>GL_FLOAT</code>, <code>GL_UNSIGNED_BYTE</code>, etc. The <i>tupleSize</i> indicates the number of components per vertex: 1, 2, 3, or 4.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">setAttributeBuffer</a>() function can be used to set the attribute array to an offset within a vertex buffer.</p>
    /// <p><b>Note: </b>Normalization will be enabled. If this is not desired, call glVertexAttribPointer directly through <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">setAttributeBuffer</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_int_uint_void_int(
        &mut self,
        location: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        tuple_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray14(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(values)
                .as_raw_ptr(),
            tuple_size,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, const float* values, int tupleSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>tupleSize</i> indicates the number of components per vertex (1, 2, 3, or 4), and the <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_float_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        tuple_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray15(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            tuple_size,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, const QVector2D* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of 2D vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_q_vector_2d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector2D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray16(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector2D>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, const QVector3D* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of 3D vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_q_vector_3d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray17(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector3D>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, const QVector4D* values)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of 4D vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_q_vector_4d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector4D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray18(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector4D>>::cast_into(values)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeArray(const char* name, unsigned int type, const void* values, int tupleSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of vertex <i>values</i> on the attribute called <i>name</i> in this shader program. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in <i>values</i>.</p>
    /// <p>The <i>type</i> indicates the type of elements in the <i>values</i> array, usually <code>GL_FLOAT</code>, <code>GL_UNSIGNED_BYTE</code>, etc. The <i>tupleSize</i> indicates the number of components per vertex: 1, 2, 3, or 4.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">setAttributeBuffer</a>() function can be used to set the attribute array to an offset within a vertex buffer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>(), <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#disableAttributeArray">disableAttributeArray</a>(), and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">setAttributeBuffer</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_array_char_uint_void_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        type_: ::std::os::raw::c_uint,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        tuple_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeArray19(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(values)
                .as_raw_ptr(),
            tuple_size,
        )
    }

    /// <p>Sets an array of vertex values on the attribute at <i>location</i> in this shader program, starting at a specific <i>offset</i> in the currently bound vertex buffer. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in the value array.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeBuffer(int location, unsigned int type, int offset, int tupleSize, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of vertex values on the attribute at <i>location</i> in this shader program, starting at a specific <i>offset</i> in the currently bound vertex buffer. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in the value array.</p>
    /// <p>The <i>type</i> indicates the type of elements in the vertex value array, usually <code>GL_FLOAT</code>, <code>GL_UNSIGNED_BYTE</code>, etc. The <i>tupleSize</i> indicates the number of components per vertex: 1, 2, 3, or 4.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>Note: </b>Normalization will be enabled. If this is not desired, call glVertexAttribPointer directly through <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_buffer_int_uint3_int(
        &mut self,
        location: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_int,
        tuple_size: ::std::os::raw::c_int,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeBuffer(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            type_,
            offset,
            tuple_size,
            stride,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeBuffer(const char* name, unsigned int type, int offset, int tupleSize, int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of vertex values on the attribute called <i>name</i> in this shader program, starting at a specific <i>offset</i> in the currently bound vertex buffer. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in the value array.</p>
    /// <p>The <i>type</i> indicates the type of elements in the vertex value array, usually <code>GL_FLOAT</code>, <code>GL_UNSIGNED_BYTE</code>, etc. The <i>tupleSize</i> indicates the number of components per vertex: 1, 2, 3, or 4.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_buffer_char_uint3_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        type_: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_int,
        tuple_size: ::std::os::raw::c_int,
        stride: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeBuffer1(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            type_,
            offset,
            tuple_size,
            stride,
        )
    }

    /// <p>Sets an array of vertex values on the attribute at <i>location</i> in this shader program, starting at a specific <i>offset</i> in the currently bound vertex buffer. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in the value array.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeBuffer(int location, unsigned int type, int offset, int tupleSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets an array of vertex values on the attribute at <i>location</i> in this shader program, starting at a specific <i>offset</i> in the currently bound vertex buffer. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in the value array.</p>
    /// <p>The <i>type</i> indicates the type of elements in the vertex value array, usually <code>GL_FLOAT</code>, <code>GL_UNSIGNED_BYTE</code>, etc. The <i>tupleSize</i> indicates the number of components per vertex: 1, 2, 3, or 4.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>location</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>location</i> will be used.</p>
    /// <p><b>Note: </b>Normalization will be enabled. If this is not desired, call glVertexAttribPointer directly through <a href="http://doc.qt.io/qt-5/qopenglfunctions.html">QOpenGLFunctions</a>.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_buffer_int_uint2_int(
        &mut self,
        location: ::std::os::raw::c_int,
        type_: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_int,
        tuple_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeBuffer2(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            type_,
            offset,
            tuple_size,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeBuffer(const char* name, unsigned int type, int offset, int tupleSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeBuffer-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets an array of vertex values on the attribute called <i>name</i> in this shader program, starting at a specific <i>offset</i> in the currently bound vertex buffer. The <i>stride</i> indicates the number of bytes between vertices. A default <i>stride</i> value of zero indicates that the vertices are densely packed in the value array.</p>
    /// <p>The <i>type</i> indicates the type of elements in the vertex value array, usually <code>GL_FLOAT</code>, <code>GL_UNSIGNED_BYTE</code>, etc. The <i>tupleSize</i> indicates the number of components per vertex: 1, 2, 3, or 4.</p>
    /// <p>The array will become active when <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#enableAttributeArray">enableAttributeArray</a>() is called on the <i>name</i>. Otherwise the value specified with <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>() for <i>name</i> will be used.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeArray">setAttributeArray</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_buffer_char_uint2_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        type_: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_int,
        tuple_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeBuffer3(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            type_,
            offset,
            tuple_size,
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int_float(
        &mut self,
        location: ::std::os::raw::c_int,
        value: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            value,
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to the 2D vector (<i>x</i>, <i>y</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to the 2D vector (<i>x</i>, <i>y</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int2_float(
        &mut self,
        location: ::std::os::raw::c_int,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue1(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            x,
            y,
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to the 3D vector (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to the 3D vector (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int3_float(
        &mut self,
        location: ::std::os::raw::c_int,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue2(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            x,
            y,
            z,
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to the 4D vector (<i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, float x, float y, float z, float w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to the 4D vector (<i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int4_float(
        &mut self,
        location: ::std::os::raw::c_int,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
        w: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue3(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            x,
            y,
            z,
            w,
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, const QVector2D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int_q_vector_2d(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue4(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, const QVector3D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int_q_vector_3d(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue5(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, const QVector4D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int_q_vector_4d(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue6(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, const QColor& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int_q_color(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue7(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>Sets the attribute at <i>location</i> in the current context to the contents of <i>values</i>, which contains <i>columns</i> elements, each consisting of <i>rows</i> elements. The <i>rows</i> value should be 1, 2, 3, or 4. This function is typically used to set matrix values and column vectors.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(int location, const float* values, int columns, int rows)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the attribute at <i>location</i> in the current context to the contents of <i>values</i>, which contains <i>columns</i> elements, each consisting of <i>rows</i> elements. The <i>rows</i> value should be 1, 2, 3, or 4. This function is typically used to set matrix values and column vectors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_int_float2_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        columns: ::std::os::raw::c_int,
        rows: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue8(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            columns,
            rows,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char_float(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue9(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            value,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-10">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to the 2D vector (<i>x</i>, <i>y</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char2_float(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue10(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            x,
            y,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-11">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to the 3D vector (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char3_float(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue11(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            x,
            y,
            z,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, float x, float y, float z, float w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-12">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to the 4D vector (<i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char4_float(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
        w: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue12(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            x,
            y,
            z,
            w,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, const QVector2D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-13">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char_q_vector_2d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue13(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, const QVector3D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-14">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char_q_vector_3d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue14(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, const QVector4D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-15">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char_q_vector_4d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue15(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, const QColor& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-16">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char_q_color(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue16(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(value).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setAttributeValue(const char* name, const float* values, int columns, int rows)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue-17">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the attribute called <i>name</i> in the current context to the contents of <i>values</i>, which contains <i>columns</i> elements, each consisting of <i>rows</i> elements. The <i>rows</i> value should be 1, 2, 3, or 4. This function is typically used to set matrix values and column vectors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">setUniformValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_attribute_value_char_float2_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        columns: ::std::os::raw::c_int,
        rows: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setAttributeValue17(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            columns,
            rows,
        )
    }

    /// <p>Sets the default outer tessellation levels to be used by the tessellation primitive generator in the event that the tessellation control shader does not output them to <i>levels</i>. For more details on OpenGL and Tessellation shaders see <a href="http://www.opengl.org/wiki/Tessellation_Shader">OpenGL Tessellation Shaders</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setDefaultInnerTessellationLevels(const QVector<float>& levels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setDefaultInnerTessellationLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the default outer tessellation levels to be used by the tessellation primitive generator in the event that the tessellation control shader does not output them to <i>levels</i>. For more details on OpenGL and Tessellation shaders see <a href="http://www.opengl.org/wiki/Tessellation_Shader">OpenGL Tessellation Shaders</a>.</p>
    /// <p>The <i>levels</i> argument should be a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> consisting of 2 floats. Not all of the values make sense for all tessellation modes. If you specify a vector with fewer than 2 elements, the remaining elements will be given a default value of 1.</p>
    /// <p><b>Note: </b>This modifies global OpenGL state and is not specific to this <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> instance. You should call this in your render function when needed, as <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> will not apply this for you. This is purely a convenience function.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#defaultInnerTessellationLevels">defaultInnerTessellationLevels</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setDefaultOuterTessellationLevels">setDefaultOuterTessellationLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_default_inner_tessellation_levels(
        &mut self,
        levels: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFloat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setDefaultInnerTessellationLevels(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFloat>>::cast_into(levels)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the default outer tessellation levels to be used by the tessellation primitive generator in the event that the tessellation control shader does not output them to <i>levels</i>. For more details on OpenGL and Tessellation shaders see <a href="http://www.opengl.org/wiki/Tessellation_Shader">OpenGL Tessellation Shaders</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setDefaultOuterTessellationLevels(const QVector<float>& levels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setDefaultOuterTessellationLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the default outer tessellation levels to be used by the tessellation primitive generator in the event that the tessellation control shader does not output them to <i>levels</i>. For more details on OpenGL and Tessellation shaders see <a href="http://www.opengl.org/wiki/Tessellation_Shader">OpenGL Tessellation Shaders</a>.</p>
    /// <p>The <i>levels</i> argument should be a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> consisting of 4 floats. Not all of the values make sense for all tessellation modes. If you specify a vector with fewer than 4 elements, the remaining elements will be given a default value of 1.</p>
    /// <p><b>Note: </b>This modifies global OpenGL state and is not specific to this <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> instance. You should call this in your render function when needed, as <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> will not apply this for you. This is purely a convenience function.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#defaultOuterTessellationLevels">defaultOuterTessellationLevels</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setDefaultInnerTessellationLevels">setDefaultInnerTessellationLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_default_outer_tessellation_levels(
        &mut self,
        levels: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFloat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setDefaultOuterTessellationLevels(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFloat>>::cast_into(levels)
                .as_raw_ptr(),
        )
    }

    /// <p>Use this function to specify to OpenGL the number of vertices in a patch to <i>count</i>. A patch is a custom OpenGL primitive whose interpretation is entirely defined by the tessellation shader stages. Therefore, calling this function only makes sense when using a <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> containing tessellation stage shaders. When using OpenGL tessellation, the only primitive that can be rendered with <code>glDraw*()</code> functions is <code>GL_PATCHES</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setPatchVertexCount(int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setPatchVertexCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use this function to specify to OpenGL the number of vertices in a patch to <i>count</i>. A patch is a custom OpenGL primitive whose interpretation is entirely defined by the tessellation shader stages. Therefore, calling this function only makes sense when using a <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> containing tessellation stage shaders. When using OpenGL tessellation, the only primitive that can be rendered with <code>glDraw*()</code> functions is <code>GL_PATCHES</code>.</p>
    /// <p>This is equivalent to calling glPatchParameteri(GL_PATCH_VERTICES, count).</p>
    /// <p><b>Note: </b>This modifies global OpenGL state and is not specific to this <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> instance. You should call this in your render function when needed, as <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> will not apply this for you. This is purely a convenience function.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#patchVertexCount">patchVertexCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_patch_vertex_count(&mut self, count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setPatchVertexCount(
            self as *mut crate::QOpenGLShaderProgram,
            count,
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_float(
        &mut self,
        location: ::std::os::raw::c_int,
        value: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            value,
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, GLint value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_i32(
        &mut self,
        location: ::std::os::raw::c_int,
        value: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue1(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            value,
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>. This function should be used when setting sampler values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, GLuint value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>. This function should be used when setting sampler values.</p>
    /// <p><b>Note: </b>This function is not aware of unsigned int support in modern OpenGL versions and therefore treats <i>value</i> as a GLint and calls glUniform1i.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_u32(
        &mut self,
        location: ::std::os::raw::c_int,
        value: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue2(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            value,
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to the 2D vector (<i>x</i>, <i>y</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to the 2D vector (<i>x</i>, <i>y</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int2_float(
        &mut self,
        location: ::std::os::raw::c_int,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue3(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            x,
            y,
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to the 3D vector (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to the 3D vector (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int3_float(
        &mut self,
        location: ::std::os::raw::c_int,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue4(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            x,
            y,
            z,
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to the 4D vector (<i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, float x, float y, float z, float w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to the 4D vector (<i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int4_float(
        &mut self,
        location: ::std::os::raw::c_int,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
        w: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue5(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            x,
            y,
            z,
            w,
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QVector2D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_vector_2d(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue6(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QVector3D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_vector_3d(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue7(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QVector4D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_vector_4d(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue8(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to the red, green, blue, and alpha components of <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to the red, green, blue, and alpha components of <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_color(
        &mut self,
        location: ::std::os::raw::c_int,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue9(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to the x and y coordinates of <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QPoint& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-10">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to the x and y coordinates of <i>point</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_point(
        &mut self,
        location: ::std::os::raw::c_int,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue10(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to the x and y coordinates of <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QPointF& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-11">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to the x and y coordinates of <i>point</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_point_f(
        &mut self,
        location: ::std::os::raw::c_int,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue11(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to the width and height of the given <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-12">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to the width and height of the given <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_size(
        &mut self,
        location: ::std::os::raw::c_int,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue12(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to the width and height of the given <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QSizeF& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-13">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to the width and height of the given <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_size_f(
        &mut self,
        location: ::std::os::raw::c_int,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue13(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to a 4x4 matrix <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix4x4& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-22">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to a 4x4 matrix <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_matrix4_x4(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue14(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable at <i>location</i> in the current context to a 3x3 transformation matrix <i>value</i> that is specified as a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(int location, const QTransform& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-26">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable at <i>location</i> in the current context to a 3x3 transformation matrix <i>value</i> that is specified as a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> value.</p>
    /// <p>To set a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> value as a 4x4 matrix in a shader, use <code>setUniformValue(location, QMatrix4x4(value))</code>.</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_int_q_transform(
        &mut self,
        location: ::std::os::raw::c_int,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue15(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-27">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_float(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue16(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            value,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, GLint value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-28">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_i32(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: i32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue17(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            value,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, GLuint value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-29">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to <i>value</i>. This function should be used when setting sampler values.</p>
    /// <p><b>Note: </b>This function is not aware of unsigned int support in modern OpenGL versions and therefore treats <i>value</i> as a GLint and calls glUniform1i.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_u32(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: u32,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue18(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            value,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, float x, float y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-30">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to the 2D vector (<i>x</i>, <i>y</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char2_float(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue19(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            x,
            y,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, float x, float y, float z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-31">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to the 3D vector (<i>x</i>, <i>y</i>, <i>z</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char3_float(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue20(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            x,
            y,
            z,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, float x, float y, float z, float w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-32">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to the 4D vector (<i>x</i>, <i>y</i>, <i>z</i>, <i>w</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char4_float(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        x: ::std::os::raw::c_float,
        y: ::std::os::raw::c_float,
        z: ::std::os::raw::c_float,
        w: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue21(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            x,
            y,
            z,
            w,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QVector2D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-33">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_vector_2d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue22(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QVector3D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-34">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_vector_3d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue23(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QVector4D& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-35">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_vector_4d(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue24(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-36">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to the red, green, blue, and alpha components of <i>color</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_color(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue25(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QPoint& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-37">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable associated with <i>name</i> in the current context to the x and y coordinates of <i>point</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_point(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue26(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QPointF& point)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-38">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable associated with <i>name</i> in the current context to the x and y coordinates of <i>point</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_point_f(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        point: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue27(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(point)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-39">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable associated with <i>name</i> in the current context to the width and height of the given <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_size(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue28(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QSizeF& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-40">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable associated with <i>name</i> in the current context to the width and height of the given <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_size_f(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue29(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QMatrix4x4& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-49">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to a 4x4 matrix <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_matrix4_x4(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue30(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValue(const char* name, const QTransform& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValue-53">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable called <i>name</i> in the current context to a 3x3 transformation matrix <i>value</i> that is specified as a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> value.</p>
    /// <p>To set a <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> value as a 4x4 matrix in a shader, use <code>setUniformValue(name, QMatrix4x4(value))</code>.</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_char_q_transform(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValue31(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> elements of <i>values</i>. Each element has <i>tupleSize</i> components. The <i>tupleSize</i> must be 1, 2, 3, or 4.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(int location, const float* values, int count, int tupleSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> elements of <i>values</i>. Each element has <i>tupleSize</i> components. The <i>tupleSize</i> must be 1, 2, 3, or 4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_int_float2_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        count: ::std::os::raw::c_int,
        tuple_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            count,
            tuple_size,
        )
    }

    /// <p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> elements of <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(int location, const GLint* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_int_i32_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray1(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(values).as_raw_ptr(),
            count,
        )
    }

    /// <p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> elements of <i>values</i>. This overload should be used when setting an array of sampler values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(int location, const GLuint* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> elements of <i>values</i>. This overload should be used when setting an array of sampler values.</p>
    /// <p><b>Note: </b>This function is not aware of unsigned int support in modern OpenGL versions and therefore treats <i>values</i> as a GLint and calls glUniform1iv.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_int_u32_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray2(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(values).as_raw_ptr(),
            count,
        )
    }

    /// <p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> 2D vector elements of <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector2D* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> 2D vector elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_int_q_vector_2d_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector2D>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray3(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector2D>>::cast_into(values)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> 3D vector elements of <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector3D* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> 3D vector elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_int_q_vector_3d_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector3D>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray4(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector3D>>::cast_into(values)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> 4D vector elements of <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector4D* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> 4D vector elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_int_q_vector_4d_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector4D>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray5(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector4D>>::cast_into(values)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> 4x4 matrix elements of <i>values</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix4x4* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-14">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the uniform variable array at <i>location</i> in the current context to the <i>count</i> 4x4 matrix elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_int_q_matrix4_x4_int(
        &mut self,
        location: ::std::os::raw::c_int,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QMatrix4X4>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray6(
            self as *mut crate::QOpenGLShaderProgram,
            location,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QMatrix4X4>>::cast_into(values)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(const char* name, const float* values, int count, int tupleSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-15">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable array called <i>name</i> in the current context to the <i>count</i> elements of <i>values</i>. Each element has <i>tupleSize</i> components. The <i>tupleSize</i> must be 1, 2, 3, or 4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_char_float2_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_float>>,
        count: ::std::os::raw::c_int,
        tuple_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray7(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_float>>::cast_into(values)
                .as_raw_ptr(),
            count,
            tuple_size,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(const char* name, const GLint* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-16">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable array called <i>name</i> in the current context to the <i>count</i> elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_char_i32_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<i32>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray8(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<i32>>::cast_into(values).as_raw_ptr(),
            count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(const char* name, const GLuint* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-17">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable array called <i>name</i> in the current context to the <i>count</i> elements of <i>values</i>. This overload should be used when setting an array of sampler values.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_char_u32_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<u32>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray9(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<u32>>::cast_into(values).as_raw_ptr(),
            count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(const char* name, const QVector2D* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-18">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable array called <i>name</i> in the current context to the <i>count</i> 2D vector elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_char_q_vector_2d_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector2D>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray10(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector2D>>::cast_into(values)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(const char* name, const QVector3D* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-19">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable array called <i>name</i> in the current context to the <i>count</i> 3D vector elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_char_q_vector_3d_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector3D>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray11(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector3D>>::cast_into(values)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(const char* name, const QVector4D* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-20">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable array called <i>name</i> in the current context to the <i>count</i> 4D vector elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_char_q_vector_4d_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QVector4D>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray12(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QVector4D>>::cast_into(values)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLShaderProgram::setUniformValueArray(const char* name, const QMatrix4x4* values, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setUniformValueArray-29">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the uniform variable array called <i>name</i> in the current context to the <i>count</i> 4x4 matrix elements of <i>values</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#setAttributeValue">setAttributeValue</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_uniform_value_array_char_q_matrix4_x4_int(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        values: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QMatrix4X4>>,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_setUniformValueArray13(
            self as *mut crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QMatrix4X4>>::cast_into(values)
                .as_raw_ptr(),
            count,
        )
    }

    /// <p>Returns a list of all shaders that have been added to this shader program using <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*> QOpenGLShaderProgram::shaders() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#shaders">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of all shaders that have been added to this shader program using <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#addShader">addShader</a>() and <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#removeShader">removeShader</a>().</p></div>
    #[inline(always)]
    pub unsafe fn shaders(&self) -> ::cpp_core::CppBox<crate::QListOfQOpenglShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_shaders(
            self as *const crate::QOpenGLShaderProgram,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLShaderProgram::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLShaderProgram::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the location of the uniform variable <i>name</i> within this shader program's parameter list. Returns -1 if <i>name</i> is not a valid uniform variable for this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLShaderProgram::uniformLocation(const char* name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#uniformLocation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the location of the uniform variable <i>name</i> within this shader program's parameter list. Returns -1 if <i>name</i> is not a valid uniform variable for this shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation">attributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn uniform_location_char(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_uniformLocation(
            self as *const crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLShaderProgram::uniformLocation(const QByteArray& name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#uniformLocation-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the location of the uniform variable <i>name</i> within this shader program's parameter list. Returns -1 if <i>name</i> is not a valid uniform variable for this shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation">attributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn uniform_location_q_byte_array(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_uniformLocation1(
            self as *const crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLShaderProgram::uniformLocation(const QString& name) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#uniformLocation-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the location of the uniform variable <i>name</i> within this shader program's parameter list. Returns -1 if <i>name</i> is not a valid uniform variable for this shader program.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#attributeLocation">attributeLocation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn uniform_location_q_string(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_uniformLocation2(
            self as *const crate::QOpenGLShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }
}

pub mod q_opengl_texture {
    //! C++ type: <span style='color: green;'>```QOpenGLTexture```</span>

    /// <p>This enum defines the texture target of a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::Target```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#Target-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the texture target of a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Target(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Target {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Target(value)
        }
    }

    impl From<Target> for ::std::os::raw::c_int {
        fn from(value: Target) -> Self {
            value.0
        }
    }

    impl Target {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Target {
        /// A 1-dimensional texture. Equivalent to GL_TEXTURE_1D. (C++ enum variant: <span style='color: green;'>```Target1D = 3552```</span>)
        #[allow(non_upper_case_globals)]
        pub const Target1D: crate::q_opengl_texture::Target = crate::q_opengl_texture::Target(3552);
        /// An array of 1-dimensional textures. Equivalent to GL_TEXTURE_1D_ARRAY (C++ enum variant: <span style='color: green;'>```Target1DArray = 35864```</span>)
        #[allow(non_upper_case_globals)]
        pub const Target1DArray: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(35864);
        /// A 2-dimensional texture. Equivalent to GL_TEXTURE_2D (C++ enum variant: <span style='color: green;'>```Target2D = 3553```</span>)
        #[allow(non_upper_case_globals)]
        pub const Target2D: crate::q_opengl_texture::Target = crate::q_opengl_texture::Target(3553);
        /// An array of 1-dimensional textures. Equivalent to GL_TEXTURE_2D_ARRAY (C++ enum variant: <span style='color: green;'>```Target2DArray = 35866```</span>)
        #[allow(non_upper_case_globals)]
        pub const Target2DArray: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(35866);
        /// A 3-dimensional texture. Equivalent to GL_TEXTURE_3D (C++ enum variant: <span style='color: green;'>```Target3D = 32879```</span>)
        #[allow(non_upper_case_globals)]
        pub const Target3D: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(32879);
        /// A cubemap texture. Equivalent to GL_TEXTURE_CUBE_MAP (C++ enum variant: <span style='color: green;'>```TargetCubeMap = 34067```</span>)
        #[allow(non_upper_case_globals)]
        pub const TargetCubeMap: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(34067);
        /// An array of cubemap textures. Equivalent to GL_TEXTURE_CUBE_MAP_ARRAY (C++ enum variant: <span style='color: green;'>```TargetCubeMapArray = 36873```</span>)
        #[allow(non_upper_case_globals)]
        pub const TargetCubeMapArray: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(36873);
        /// A 2-dimensional texture with multisample support. Equivalent to GL_TEXTURE_2D_MULTISAMPLE (C++ enum variant: <span style='color: green;'>```Target2DMultisample = 37120```</span>)
        #[allow(non_upper_case_globals)]
        pub const Target2DMultisample: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(37120);
        /// An array of 2-dimensional textures with multisample support. Equivalent to GL_TEXTURE_2D_MULTISAMPLE_ARRAY (C++ enum variant: <span style='color: green;'>```Target2DMultisampleArray = 37122```</span>)
        #[allow(non_upper_case_globals)]
        pub const Target2DMultisampleArray: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(37122);
        /// A rectangular 2-dimensional texture. Equivalent to GL_TEXTURE_RECTANGLE (C++ enum variant: <span style='color: green;'>```TargetRectangle = 34037```</span>)
        #[allow(non_upper_case_globals)]
        pub const TargetRectangle: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(34037);
        /// A texture with data from an OpenGL buffer object. Equivalent to GL_TEXTURE_BUFFER (C++ enum variant: <span style='color: green;'>```TargetBuffer = 35882```</span>)
        #[allow(non_upper_case_globals)]
        pub const TargetBuffer: crate::q_opengl_texture::Target =
            crate::q_opengl_texture::Target(35882);
    }

    /// <p>This enum defines the possible binding targets of texture units.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::BindingTarget```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#BindingTarget-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the possible binding targets of texture units.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct BindingTarget(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for BindingTarget {
        fn from(value: ::std::os::raw::c_int) -> Self {
            BindingTarget(value)
        }
    }

    impl From<BindingTarget> for ::std::os::raw::c_int {
        fn from(value: BindingTarget) -> Self {
            value.0
        }
    }

    impl BindingTarget {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl BindingTarget {
        /// Equivalent to GL_TEXTURE_BINDING_1D (C++ enum variant: <span style='color: green;'>```BindingTarget1D = 32872```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTarget1D: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(32872);
        /// Equivalent to GL_TEXTURE_BINDING_1D_ARRAY (C++ enum variant: <span style='color: green;'>```BindingTarget1DArray = 35868```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTarget1DArray: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(35868);
        /// Equivalent to GL_TEXTURE_BINDING_2D (C++ enum variant: <span style='color: green;'>```BindingTarget2D = 32873```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTarget2D: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(32873);
        /// Equivalent to GL_TEXTURE_BINDING_2D_ARRAY (C++ enum variant: <span style='color: green;'>```BindingTarget2DArray = 35869```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTarget2DArray: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(35869);
        /// Equivalent to GL_TEXTURE_BINDING_3D (C++ enum variant: <span style='color: green;'>```BindingTarget3D = 32874```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTarget3D: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(32874);
        /// Equivalent to GL_TEXTURE_BINDING_CUBE_MAP (C++ enum variant: <span style='color: green;'>```BindingTargetCubeMap = 34068```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTargetCubeMap: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(34068);
        /// Equivalent to GL_TEXTURE_BINDING_CUBE_MAP_ARRAY (C++ enum variant: <span style='color: green;'>```BindingTargetCubeMapArray = 36874```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTargetCubeMapArray: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(36874);
        /// Equivalent to GL_TEXTURE_BINDING_2D_MULTISAMPLE (C++ enum variant: <span style='color: green;'>```BindingTarget2DMultisample = 37124```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTarget2DMultisample: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(37124);
        /// Equivalent to GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY (C++ enum variant: <span style='color: green;'>```BindingTarget2DMultisampleArray = 37125```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTarget2DMultisampleArray: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(37125);
        /// Equivalent to GL_TEXTURE_BINDING_RECTANGLE (C++ enum variant: <span style='color: green;'>```BindingTargetRectangle = 34038```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTargetRectangle: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(34038);
        /// Equivalent to GL_TEXTURE_BINDING_BUFFER (C++ enum variant: <span style='color: green;'>```BindingTargetBuffer = 35884```</span>)
        #[allow(non_upper_case_globals)]
        pub const BindingTargetBuffer: crate::q_opengl_texture::BindingTarget =
            crate::q_opengl_texture::BindingTarget(35884);
    }

    /// <p>This enum defines the options to control mipmap generation.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::MipMapGeneration```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#MipMapGeneration-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the options to control mipmap generation.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct MipMapGeneration(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for MipMapGeneration {
        fn from(value: ::std::os::raw::c_int) -> Self {
            MipMapGeneration(value)
        }
    }

    impl From<MipMapGeneration> for ::std::os::raw::c_int {
        fn from(value: MipMapGeneration) -> Self {
            value.0
        }
    }

    impl MipMapGeneration {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl MipMapGeneration {
        /// Mipmaps should be generated (C++ enum variant: <span style='color: green;'>```GenerateMipMaps = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const GenerateMipMaps: crate::q_opengl_texture::MipMapGeneration =
            crate::q_opengl_texture::MipMapGeneration(0);
        /// Mipmaps should not be generated (C++ enum variant: <span style='color: green;'>```DontGenerateMipMaps = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const DontGenerateMipMaps: crate::q_opengl_texture::MipMapGeneration =
            crate::q_opengl_texture::MipMapGeneration(1);
    }

    /// <p>This enum defines options ot control texture unit activation.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::TextureUnitReset```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#TextureUnitReset-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines options ot control texture unit activation.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct TextureUnitReset(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for TextureUnitReset {
        fn from(value: ::std::os::raw::c_int) -> Self {
            TextureUnitReset(value)
        }
    }

    impl From<TextureUnitReset> for ::std::os::raw::c_int {
        fn from(value: TextureUnitReset) -> Self {
            value.0
        }
    }

    impl TextureUnitReset {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl TextureUnitReset {
        /// The previous active texture unit will be reset (C++ enum variant: <span style='color: green;'>```ResetTextureUnit = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const ResetTextureUnit: crate::q_opengl_texture::TextureUnitReset =
            crate::q_opengl_texture::TextureUnitReset(0);
        /// The previous active texture unit will not be rest (C++ enum variant: <span style='color: green;'>```DontResetTextureUnit = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const DontResetTextureUnit: crate::q_opengl_texture::TextureUnitReset =
            crate::q_opengl_texture::TextureUnitReset(1);
    }

    /// <p>This enum defines the possible texture formats. Depending upon your OpenGL implementation only a subset of these may be supported.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::TextureFormat```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#TextureFormat-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the possible texture formats. Depending upon your OpenGL implementation only a subset of these may be supported.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct TextureFormat(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for TextureFormat {
        fn from(value: ::std::os::raw::c_int) -> Self {
            TextureFormat(value)
        }
    }

    impl From<TextureFormat> for ::std::os::raw::c_int {
        fn from(value: TextureFormat) -> Self {
            value.0
        }
    }

    impl TextureFormat {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl TextureFormat {
        /// Equivalent to GL_NONE (C++ enum variant: <span style='color: green;'>```NoFormat = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoFormat: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(0);
        /// Equivalent to GL_R8 (C++ enum variant: <span style='color: green;'>```R8_UNorm = 33321```</span>)
        #[allow(non_upper_case_globals)]
        pub const R8UNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33321);
        /// Equivalent to GL_RG8 (C++ enum variant: <span style='color: green;'>```RG8_UNorm = 33323```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG8UNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33323);
        /// Equivalent to GL_RGB8 (C++ enum variant: <span style='color: green;'>```RGB8_UNorm = 32849```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB8UNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(32849);
        /// Equivalent to GL_RGBA8 (C++ enum variant: <span style='color: green;'>```RGBA8_UNorm = 32856```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA8UNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(32856);
        /// Equivalent to GL_R16 (C++ enum variant: <span style='color: green;'>```R16_UNorm = 33322```</span>)
        #[allow(non_upper_case_globals)]
        pub const R16UNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33322);
        /// Equivalent to GL_RG16 (C++ enum variant: <span style='color: green;'>```RG16_UNorm = 33324```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG16UNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33324);
        /// Equivalent to GL_RGB16 (C++ enum variant: <span style='color: green;'>```RGB16_UNorm = 32852```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB16UNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(32852);
        /// Equivalent to GL_RGBA16 (C++ enum variant: <span style='color: green;'>```RGBA16_UNorm = 32859```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA16UNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(32859);
        /// Equivalent to GL_R8_SNORM (C++ enum variant: <span style='color: green;'>```R8_SNorm = 36756```</span>)
        #[allow(non_upper_case_globals)]
        pub const R8SNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36756);
        /// Equivalent to GL_RG8_SNORM (C++ enum variant: <span style='color: green;'>```RG8_SNorm = 36757```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG8SNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36757);
        /// Equivalent to GL_RGB8_SNORM (C++ enum variant: <span style='color: green;'>```RGB8_SNorm = 36758```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB8SNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36758);
        /// Equivalent to GL_RGBA8_SNORM (C++ enum variant: <span style='color: green;'>```RGBA8_SNorm = 36759```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA8SNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36759);
        /// Equivalent to GL_R16_SNORM (C++ enum variant: <span style='color: green;'>```R16_SNorm = 36760```</span>)
        #[allow(non_upper_case_globals)]
        pub const R16SNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36760);
        /// Equivalent to GL_RG16_SNORM (C++ enum variant: <span style='color: green;'>```RG16_SNorm = 36761```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG16SNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36761);
        /// Equivalent to GL_RGB16_SNORM (C++ enum variant: <span style='color: green;'>```RGB16_SNorm = 36762```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB16SNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36762);
        /// Equivalent to GL_RGBA16_SNORM (C++ enum variant: <span style='color: green;'>```RGBA16_SNorm = 36763```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA16SNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36763);
        /// Equivalent to GL_R8UI (C++ enum variant: <span style='color: green;'>```R8U = 33330```</span>)
        #[allow(non_upper_case_globals)]
        pub const R8U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33330);
        /// Equivalent to GL_RG8UI (C++ enum variant: <span style='color: green;'>```RG8U = 33336```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG8U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33336);
        /// Equivalent to GL_RGB8UI (C++ enum variant: <span style='color: green;'>```RGB8U = 36221```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB8U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36221);
        /// Equivalent to GL_RGBA8UI (C++ enum variant: <span style='color: green;'>```RGBA8U = 36220```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA8U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36220);
        /// Equivalent to GL_R16UI (C++ enum variant: <span style='color: green;'>```R16U = 33332```</span>)
        #[allow(non_upper_case_globals)]
        pub const R16U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33332);
        /// Equivalent to GL_RG16UI (C++ enum variant: <span style='color: green;'>```RG16U = 33338```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG16U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33338);
        /// Equivalent to GL_RGB16UI (C++ enum variant: <span style='color: green;'>```RGB16U = 36215```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB16U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36215);
        /// Equivalent to GL_RGBA16UI (C++ enum variant: <span style='color: green;'>```RGBA16U = 36214```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA16U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36214);
        /// Equivalent to GL_R32UI (C++ enum variant: <span style='color: green;'>```R32U = 33334```</span>)
        #[allow(non_upper_case_globals)]
        pub const R32U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33334);
        /// Equivalent to GL_RG32UI (C++ enum variant: <span style='color: green;'>```RG32U = 33340```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG32U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33340);
        /// Equivalent to GL_RGB32UI (C++ enum variant: <span style='color: green;'>```RGB32U = 36209```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB32U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36209);
        /// Equivalent to GL_RGBA32UI (C++ enum variant: <span style='color: green;'>```RGBA32U = 36208```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA32U: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36208);
        /// Equivalent to GL_R8I (C++ enum variant: <span style='color: green;'>```R8I = 33329```</span>)
        #[allow(non_upper_case_globals)]
        pub const R8I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33329);
        /// Equivalent to GL_RG8I (C++ enum variant: <span style='color: green;'>```RG8I = 33335```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG8I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33335);
        /// Equivalent to GL_RGB8I (C++ enum variant: <span style='color: green;'>```RGB8I = 36239```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB8I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36239);
        /// Equivalent to GL_RGBA8I (C++ enum variant: <span style='color: green;'>```RGBA8I = 36238```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA8I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36238);
        /// Equivalent to GL_R16I (C++ enum variant: <span style='color: green;'>```R16I = 33331```</span>)
        #[allow(non_upper_case_globals)]
        pub const R16I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33331);
        /// Equivalent to GL_RG16I (C++ enum variant: <span style='color: green;'>```RG16I = 33337```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG16I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33337);
        /// Equivalent to GL_RGB16I (C++ enum variant: <span style='color: green;'>```RGB16I = 36233```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB16I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36233);
        /// Equivalent to GL_RGBA16I (C++ enum variant: <span style='color: green;'>```RGBA16I = 36232```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA16I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36232);
        /// Equivalent to GL_R32I (C++ enum variant: <span style='color: green;'>```R32I = 33333```</span>)
        #[allow(non_upper_case_globals)]
        pub const R32I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33333);
        /// Equivalent to GL_RG32I (C++ enum variant: <span style='color: green;'>```RG32I = 33339```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG32I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33339);
        /// Equivalent to GL_RGB32I (C++ enum variant: <span style='color: green;'>```RGB32I = 36227```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB32I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36227);
        /// Equivalent to GL_RGBA32I (C++ enum variant: <span style='color: green;'>```RGBA32I = 36226```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA32I: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36226);
        /// Equivalent to GL_R16F (C++ enum variant: <span style='color: green;'>```R16F = 33325```</span>)
        #[allow(non_upper_case_globals)]
        pub const R16F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33325);
        /// Equivalent to GL_RG16F (C++ enum variant: <span style='color: green;'>```RG16F = 33327```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG16F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33327);
        /// Equivalent to GL_RGB16F (C++ enum variant: <span style='color: green;'>```RGB16F = 34843```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB16F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(34843);
        /// Equivalent to GL_RGBA16F (C++ enum variant: <span style='color: green;'>```RGBA16F = 34842```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA16F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(34842);
        /// Equivalent to GL_R32F (C++ enum variant: <span style='color: green;'>```R32F = 33326```</span>)
        #[allow(non_upper_case_globals)]
        pub const R32F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33326);
        /// Equivalent to GL_RG32F (C++ enum variant: <span style='color: green;'>```RG32F = 33328```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG32F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33328);
        /// Equivalent to GL_RGB32F (C++ enum variant: <span style='color: green;'>```RGB32F = 34837```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB32F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(34837);
        /// Equivalent to GL_RGBA32F (C++ enum variant: <span style='color: green;'>```RGBA32F = 34836```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA32F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(34836);
        /// Equivalent to GL_RGB9_E5 (C++ enum variant: <span style='color: green;'>```RGB9E5 = 35901```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB9E5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35901);
        /// Equivalent to GL_R11F_G11F_B10F (C++ enum variant: <span style='color: green;'>```RG11B10F = 35898```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG11B10F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35898);
        /// Equivalent to GL_R3_G3_B2 (C++ enum variant: <span style='color: green;'>```RG3B2 = 10768```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG3B2: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(10768);
        /// Equivalent to GL_RGB565 (C++ enum variant: <span style='color: green;'>```R5G6B5 = 36194```</span>)
        #[allow(non_upper_case_globals)]
        pub const R5G6B5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36194);
        /// Equivalent to GL_RGB5_A1 (C++ enum variant: <span style='color: green;'>```RGB5A1 = 32855```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB5A1: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(32855);
        /// Equivalent to GL_RGBA4 (C++ enum variant: <span style='color: green;'>```RGBA4 = 32854```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA4: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(32854);
        /// Equivalent to GL_RGB10_A2UI (C++ enum variant: <span style='color: green;'>```RGB10A2 = 36975```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB10A2: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36975);
        /// Equivalent to GL_DEPTH_COMPONENT16 (C++ enum variant: <span style='color: green;'>```D16 = 33189```</span>)
        #[allow(non_upper_case_globals)]
        pub const D16: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33189);
        /// Equivalent to GL_DEPTH_COMPONENT24 (C++ enum variant: <span style='color: green;'>```D24 = 33190```</span>)
        #[allow(non_upper_case_globals)]
        pub const D24: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33190);
        /// Equivalent to GL_DEPTH24_STENCIL8 (C++ enum variant: <span style='color: green;'>```D24S8 = 35056```</span>)
        #[allow(non_upper_case_globals)]
        pub const D24S8: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35056);
        /// Equivalent to GL_DEPTH_COMPONENT32 (C++ enum variant: <span style='color: green;'>```D32 = 33191```</span>)
        #[allow(non_upper_case_globals)]
        pub const D32: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33191);
        /// Equivalent to GL_DEPTH_COMPONENT32F (C++ enum variant: <span style='color: green;'>```D32F = 36012```</span>)
        #[allow(non_upper_case_globals)]
        pub const D32F: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36012);
        /// Equivalent to GL_DEPTH32F_STENCIL8 (C++ enum variant: <span style='color: green;'>```D32FS8X24 = 36013```</span>)
        #[allow(non_upper_case_globals)]
        pub const D32FS8X24: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36013);
        /// Equivalent to GL_STENCIL_INDEX8. Introduced in Qt 5.4 (C++ enum variant: <span style='color: green;'>```S8 = 36168```</span>)
        #[allow(non_upper_case_globals)]
        pub const S8: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36168);
        /// Equivalent to GL_COMPRESSED_RGB_S3TC_DXT1_EXT (C++ enum variant: <span style='color: green;'>```RGB_DXT1 = 33776```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBDXT1: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33776);
        /// Equivalent to GL_COMPRESSED_RGBA_S3TC_DXT1_EXT (C++ enum variant: <span style='color: green;'>```RGBA_DXT1 = 33777```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBADXT1: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33777);
        /// Equivalent to GL_COMPRESSED_RGBA_S3TC_DXT3_EXT (C++ enum variant: <span style='color: green;'>```RGBA_DXT3 = 33778```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBADXT3: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33778);
        /// Equivalent to GL_COMPRESSED_RGBA_S3TC_DXT5_EXT (C++ enum variant: <span style='color: green;'>```RGBA_DXT5 = 33779```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBADXT5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(33779);
        /// Equivalent to GL_COMPRESSED_RED_RGTC1 (C++ enum variant: <span style='color: green;'>```R_ATI1N_UNorm = 36283```</span>)
        #[allow(non_upper_case_globals)]
        pub const RATI1NUNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36283);
        /// Equivalent to GL_COMPRESSED_SIGNED_RED_RGTC1 (C++ enum variant: <span style='color: green;'>```R_ATI1N_SNorm = 36284```</span>)
        #[allow(non_upper_case_globals)]
        pub const RATI1NSNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36284);
        /// Equivalent to GL_COMPRESSED_RG_RGTC2 (C++ enum variant: <span style='color: green;'>```RG_ATI2N_UNorm = 36285```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGATI2NUNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36285);
        /// Equivalent to GL_COMPRESSED_SIGNED_RG_RGTC2 (C++ enum variant: <span style='color: green;'>```RG_ATI2N_SNorm = 36286```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGATI2NSNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36286);
        /// Equivalent to GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB (C++ enum variant: <span style='color: green;'>```RGB_BP_UNSIGNED_FLOAT = 36495```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBBPUNSIGNEDFLOAT: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36495);
        /// Equivalent to GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB (C++ enum variant: <span style='color: green;'>```RGB_BP_SIGNED_FLOAT = 36494```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBBPSIGNEDFLOAT: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36494);
        /// Equivalent to GL_COMPRESSED_RGBA_BPTC_UNORM_ARB (C++ enum variant: <span style='color: green;'>```RGB_BP_UNorm = 36492```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBBPUNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36492);
        /// Equivalent to GL_COMPRESSED_R11_EAC (C++ enum variant: <span style='color: green;'>```R11_EAC_UNorm = 37488```</span>)
        #[allow(non_upper_case_globals)]
        pub const R11EACUNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37488);
        /// Equivalent to GL_COMPRESSED_SIGNED_R11_EAC (C++ enum variant: <span style='color: green;'>```R11_EAC_SNorm = 37489```</span>)
        #[allow(non_upper_case_globals)]
        pub const R11EACSNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37489);
        /// Equivalent to GL_COMPRESSED_RG11_EAC (C++ enum variant: <span style='color: green;'>```RG11_EAC_UNorm = 37490```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG11EACUNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37490);
        /// Equivalent to GL_COMPRESSED_SIGNED_RG11_EAC (C++ enum variant: <span style='color: green;'>```RG11_EAC_SNorm = 37491```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG11EACSNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37491);
        /// Equivalent to GL_COMPRESSED_RGB8_ETC2 (C++ enum variant: <span style='color: green;'>```RGB8_ETC2 = 37492```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB8ETC2: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37492);
        /// Equivalent to GL_COMPRESSED_SRGB8_ETC2 (C++ enum variant: <span style='color: green;'>```SRGB8_ETC2 = 37493```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8ETC2: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37493);
        /// Equivalent to GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 (C++ enum variant: <span style='color: green;'>```RGB8_PunchThrough_Alpha1_ETC2 = 37494```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB8PunchThroughAlpha1ETC2: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37494);
        /// Equivalent to GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 (C++ enum variant: <span style='color: green;'>```SRGB8_PunchThrough_Alpha1_ETC2 = 37495```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8PunchThroughAlpha1ETC2: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37495);
        /// Equivalent to GL_COMPRESSED_RGBA8_ETC2_EAC (C++ enum variant: <span style='color: green;'>```RGBA8_ETC2_EAC = 37496```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA8ETC2EAC: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37496);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ETC2_EAC = 37497```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ETC2EAC: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37497);
        /// Equivalent to GL_ETC1_RGB8_OES (C++ enum variant: <span style='color: green;'>```RGB8_ETC1 = 36196```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB8ETC1: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36196);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_4x4_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_4x4 = 37808```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC4X4: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37808);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_5x4_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_5x4 = 37809```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC5X4: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37809);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_5x5_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_5x5 = 37810```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC5X5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37810);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_6x5_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_6x5 = 37811```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC6X5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37811);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_6x6_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_6x6 = 37812```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC6X6: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37812);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_8x5_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_8x5 = 37813```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC8X5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37813);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_8x6_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_8x6 = 37814```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC8X6: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37814);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_8x8_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_8x8 = 37815```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC8X8: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37815);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_10x5_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_10x5 = 37816```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC10X5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37816);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_10x6_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_10x6 = 37817```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC10X6: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37817);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_10x8_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_10x8 = 37818```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC10X8: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37818);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_10x10_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_10x10 = 37819```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC10X10: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37819);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_12x10_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_12x10 = 37820```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC12X10: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37820);
        /// Equivalent to GL_COMPRESSED_RGBA_ASTC_12x12_KHR (C++ enum variant: <span style='color: green;'>```RGBA_ASTC_12x12 = 37821```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAASTC12X12: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37821);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_4x4 = 37840```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC4X4: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37840);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_5x4 = 37841```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC5X4: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37841);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_5x5 = 37842```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC5X5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37842);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_6x5 = 37843```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC6X5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37843);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_6x6 = 37844```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC6X6: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37844);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_8x5 = 37845```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC8X5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37845);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_8x6 = 37846```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC8X6: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37846);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_8x8 = 37847```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC8X8: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37847);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_10x5 = 37848```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC10X5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37848);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_10x6 = 37849```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC10X6: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37849);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_10x8 = 37850```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC10X8: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37850);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_10x10 = 37851```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC10X10: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37851);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_12x10 = 37852```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC12X10: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37852);
        /// Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ASTC_12x12 = 37853```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ASTC12X12: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(37853);
        /// Equivalent to GL_SRGB8 (C++ enum variant: <span style='color: green;'>```SRGB8 = 35905```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35905);
        /// Equivalent to GL_SRGB8_ALPHA8 (C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8 = 35907```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35907);
        /// Equivalent to GL_COMPRESSED_SRGB_S3TC_DXT1_EXT (C++ enum variant: <span style='color: green;'>```SRGB_DXT1 = 35916```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGBDXT1: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35916);
        /// Equivalent to GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT (C++ enum variant: <span style='color: green;'>```SRGB_Alpha_DXT1 = 35917```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGBAlphaDXT1: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35917);
        /// Equivalent to GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT (C++ enum variant: <span style='color: green;'>```SRGB_Alpha_DXT3 = 35918```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGBAlphaDXT3: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35918);
        /// Equivalent to GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT (C++ enum variant: <span style='color: green;'>```SRGB_Alpha_DXT5 = 35919```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGBAlphaDXT5: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(35919);
        /// Equivalent to GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB (C++ enum variant: <span style='color: green;'>```SRGB_BP_UNorm = 36493```</span>)
        #[allow(non_upper_case_globals)]
        pub const SRGBBPUNorm: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(36493);
        /// Equivalent to GL_DEPTH_COMPONENT (only OpenGL ES 3 or ES 2 with OES_depth_texture) (C++ enum variant: <span style='color: green;'>```DepthFormat = 6402```</span>)
        #[allow(non_upper_case_globals)]
        pub const DepthFormat: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(6402);
        /// Equivalent to GL_ALPHA (OpenGL ES 2 only) (C++ enum variant: <span style='color: green;'>```AlphaFormat = 6406```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlphaFormat: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(6406);
        /// Equivalent to GL_RGB (OpenGL ES 2 only) (C++ enum variant: <span style='color: green;'>```RGBFormat = 6407```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBFormat: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(6407);
        /// Equivalent to GL_RGBA (OpenGL ES 2 only) (C++ enum variant: <span style='color: green;'>```RGBAFormat = 6408```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAFormat: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(6408);
        /// Equivalent to GL_LUMINANCE (OpenGL ES 2 only) (C++ enum variant: <span style='color: green;'>```LuminanceFormat = 6409```</span>)
        #[allow(non_upper_case_globals)]
        pub const LuminanceFormat: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(6409);
        /// Equivalent to GL_LUMINANCE_ALPHA (OpenGL ES 2 only) (C++ enum variant: <span style='color: green;'>```LuminanceAlphaFormat = 6410```</span>)
        #[allow(non_upper_case_globals)]
        pub const LuminanceAlphaFormat: crate::q_opengl_texture::TextureFormat =
            crate::q_opengl_texture::TextureFormat(6410);
    }

    /// <p>This enum defines the possible CubeMap faces.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::CubeMapFace```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#CubeMapFace-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the possible CubeMap faces.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CubeMapFace(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CubeMapFace {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CubeMapFace(value)
        }
    }

    impl From<CubeMapFace> for ::std::os::raw::c_int {
        fn from(value: CubeMapFace) -> Self {
            value.0
        }
    }

    impl CubeMapFace {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CubeMapFace {
        /// Equivalent to GL_TEXTURE_CUBE_MAP_POSITIVE_X (C++ enum variant: <span style='color: green;'>```CubeMapPositiveX = 34069```</span>)
        #[allow(non_upper_case_globals)]
        pub const CubeMapPositiveX: crate::q_opengl_texture::CubeMapFace =
            crate::q_opengl_texture::CubeMapFace(34069);
        /// Equivalent to GL_TEXTURE_CUBE_MAP_NEGATIVE_X (C++ enum variant: <span style='color: green;'>```CubeMapNegativeX = 34070```</span>)
        #[allow(non_upper_case_globals)]
        pub const CubeMapNegativeX: crate::q_opengl_texture::CubeMapFace =
            crate::q_opengl_texture::CubeMapFace(34070);
        /// Equivalent to GL_TEXTURE_CUBE_MAP_POSITIVE_Y (C++ enum variant: <span style='color: green;'>```CubeMapPositiveY = 34071```</span>)
        #[allow(non_upper_case_globals)]
        pub const CubeMapPositiveY: crate::q_opengl_texture::CubeMapFace =
            crate::q_opengl_texture::CubeMapFace(34071);
        /// Equivalent to GL_TEXTURE_CUBE_MAP_NEGATIVE_Y (C++ enum variant: <span style='color: green;'>```CubeMapNegativeY = 34072```</span>)
        #[allow(non_upper_case_globals)]
        pub const CubeMapNegativeY: crate::q_opengl_texture::CubeMapFace =
            crate::q_opengl_texture::CubeMapFace(34072);
        /// Equivalent to GL_TEXTURE_CUBE_MAP_POSITIVE_Z (C++ enum variant: <span style='color: green;'>```CubeMapPositiveZ = 34073```</span>)
        #[allow(non_upper_case_globals)]
        pub const CubeMapPositiveZ: crate::q_opengl_texture::CubeMapFace =
            crate::q_opengl_texture::CubeMapFace(34073);
        /// Equivalent to GL_TEXTURE_CUBE_MAP_NEGATIVE_Z (C++ enum variant: <span style='color: green;'>```CubeMapNegativeZ = 34074```</span>)
        #[allow(non_upper_case_globals)]
        pub const CubeMapNegativeZ: crate::q_opengl_texture::CubeMapFace =
            crate::q_opengl_texture::CubeMapFace(34074);
    }

    /// <p>This enum defines the possible client-side pixel formats for a pixel transfer operation.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::PixelFormat```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#PixelFormat-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the possible client-side pixel formats for a pixel transfer operation.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PixelFormat(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PixelFormat {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PixelFormat(value)
        }
    }

    impl From<PixelFormat> for ::std::os::raw::c_int {
        fn from(value: PixelFormat) -> Self {
            value.0
        }
    }

    impl PixelFormat {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PixelFormat {
        /// Equivalent to GL_NONE (C++ enum variant: <span style='color: green;'>```NoSourceFormat = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoSourceFormat: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(0);
        /// Equivalent to GL_RED (C++ enum variant: <span style='color: green;'>```Red = 6403```</span>)
        #[allow(non_upper_case_globals)]
        pub const Red: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(6403);
        /// Equivalent to GL_RG (C++ enum variant: <span style='color: green;'>```RG = 33319```</span>)
        #[allow(non_upper_case_globals)]
        pub const RG: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(33319);
        /// Equivalent to GL_RGB (C++ enum variant: <span style='color: green;'>```RGB = 6407```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGB: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(6407);
        /// Equivalent to GL_BGR (C++ enum variant: <span style='color: green;'>```BGR = 32992```</span>)
        #[allow(non_upper_case_globals)]
        pub const BGR: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(32992);
        /// Equivalent to GL_RGBA (C++ enum variant: <span style='color: green;'>```RGBA = 6408```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBA: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(6408);
        /// Equivalent to GL_BGRA (C++ enum variant: <span style='color: green;'>```BGRA = 32993```</span>)
        #[allow(non_upper_case_globals)]
        pub const BGRA: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(32993);
        /// Equivalent to GL_RED_INTEGER (C++ enum variant: <span style='color: green;'>```Red_Integer = 36244```</span>)
        #[allow(non_upper_case_globals)]
        pub const RedInteger: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(36244);
        /// Equivalent to GL_RG_INTEGER (C++ enum variant: <span style='color: green;'>```RG_Integer = 33320```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGInteger: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(33320);
        /// Equivalent to GL_RGB_INTEGER (C++ enum variant: <span style='color: green;'>```RGB_Integer = 36248```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBInteger: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(36248);
        /// Equivalent to GL_BGR_INTEGER (C++ enum variant: <span style='color: green;'>```BGR_Integer = 36250```</span>)
        #[allow(non_upper_case_globals)]
        pub const BGRInteger: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(36250);
        /// Equivalent to GL_RGBA_INTEGER (C++ enum variant: <span style='color: green;'>```RGBA_Integer = 36249```</span>)
        #[allow(non_upper_case_globals)]
        pub const RGBAInteger: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(36249);
        /// Equivalent to GL_BGRA_INTEGER (C++ enum variant: <span style='color: green;'>```BGRA_Integer = 36251```</span>)
        #[allow(non_upper_case_globals)]
        pub const BGRAInteger: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(36251);
        /// Equivalent to GL_STENCIL_INDEX. Introduced in Qt 5.4 (C++ enum variant: <span style='color: green;'>```Stencil = 6401```</span>)
        #[allow(non_upper_case_globals)]
        pub const Stencil: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(6401);
        /// Equivalent to GL_DEPTH_COMPONENT (C++ enum variant: <span style='color: green;'>```Depth = 6402```</span>)
        #[allow(non_upper_case_globals)]
        pub const Depth: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(6402);
        /// Equivalent to GL_DEPTH_STENCIL (C++ enum variant: <span style='color: green;'>```DepthStencil = 34041```</span>)
        #[allow(non_upper_case_globals)]
        pub const DepthStencil: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(34041);
        /// Equivalent to GL_ALPHA (OpenGL ES 2 only) (C++ enum variant: <span style='color: green;'>```Alpha = 6406```</span>)
        #[allow(non_upper_case_globals)]
        pub const Alpha: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(6406);
        /// Equivalent to GL_LUMINANCE (OpenGL ES 2 only) (C++ enum variant: <span style='color: green;'>```Luminance = 6409```</span>)
        #[allow(non_upper_case_globals)]
        pub const Luminance: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(6409);
        /// Equivalent to GL_LUMINANCE_ALPHA (OpenGL ES 2 only) (C++ enum variant: <span style='color: green;'>```LuminanceAlpha = 6410```</span>)
        #[allow(non_upper_case_globals)]
        pub const LuminanceAlpha: crate::q_opengl_texture::PixelFormat =
            crate::q_opengl_texture::PixelFormat(6410);
    }

    /// <p>This enum defines the possible pixel data types for a pixel transfer operation</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::PixelType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#PixelType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the possible pixel data types for a pixel transfer operation</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PixelType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PixelType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PixelType(value)
        }
    }

    impl From<PixelType> for ::std::os::raw::c_int {
        fn from(value: PixelType) -> Self {
            value.0
        }
    }

    impl PixelType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PixelType {
        /// Equivalent to GL_NONE (C++ enum variant: <span style='color: green;'>```NoPixelType = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoPixelType: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(0);
        /// Equivalent to GL_BYTE (C++ enum variant: <span style='color: green;'>```Int8 = 5120```</span>)
        #[allow(non_upper_case_globals)]
        pub const Int8: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(5120);
        /// Equivalent to GL_UNSIGNED_BYTE (C++ enum variant: <span style='color: green;'>```UInt8 = 5121```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt8: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(5121);
        /// Equivalent to GL_SHORT (C++ enum variant: <span style='color: green;'>```Int16 = 5122```</span>)
        #[allow(non_upper_case_globals)]
        pub const Int16: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(5122);
        /// Equivalent to GL_UNSIGNED_SHORT (C++ enum variant: <span style='color: green;'>```UInt16 = 5123```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt16: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(5123);
        /// Equivalent to GL_INT (C++ enum variant: <span style='color: green;'>```Int32 = 5124```</span>)
        #[allow(non_upper_case_globals)]
        pub const Int32: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(5124);
        /// Equivalent to GL_UNSIGNED_INT (C++ enum variant: <span style='color: green;'>```UInt32 = 5125```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt32: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(5125);
        /// Equivalent to GL_HALF_FLOAT (C++ enum variant: <span style='color: green;'>```Float16 = 5131```</span>)
        #[allow(non_upper_case_globals)]
        pub const Float16: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(5131);
        /// Equivalent to GL_HALF_FLOAT_OES (C++ enum variant: <span style='color: green;'>```Float16OES = 36193```</span>)
        #[allow(non_upper_case_globals)]
        pub const Float16OES: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(36193);
        /// Equivalent to GL_FLOAT (C++ enum variant: <span style='color: green;'>```Float32 = 5126```</span>)
        #[allow(non_upper_case_globals)]
        pub const Float32: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(5126);
        /// Equivalent to GL_UNSIGNED_INT_5_9_9_9_REV (C++ enum variant: <span style='color: green;'>```UInt32_RGB9_E5 = 35902```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt32RGB9E5: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(35902);
        /// Equivalent to GL_UNSIGNED_INT_10F_11F_11F_REV (C++ enum variant: <span style='color: green;'>```UInt32_RG11B10F = 35899```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt32RG11B10F: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(35899);
        /// Equivalent to GL_UNSIGNED_BYTE_3_3_2 (C++ enum variant: <span style='color: green;'>```UInt8_RG3B2 = 32818```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt8RG3B2: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(32818);
        /// Equivalent to GL_UNSIGNED_BYTE_2_3_3_REV (C++ enum variant: <span style='color: green;'>```UInt8_RG3B2_Rev = 33634```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt8RG3B2Rev: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(33634);
        /// Equivalent to GL_UNSIGNED_SHORT_5_5_5_1 (C++ enum variant: <span style='color: green;'>```UInt16_RGB5A1 = 32820```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt16RGB5A1: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(32820);
        /// Equivalent to GL_UNSIGNED_SHORT_1_5_5_5_REV (C++ enum variant: <span style='color: green;'>```UInt16_RGB5A1_Rev = 33638```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt16RGB5A1Rev: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(33638);
        /// Equivalent to GL_UNSIGNED_SHORT_5_6_5 (C++ enum variant: <span style='color: green;'>```UInt16_R5G6B5 = 33635```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt16R5G6B5: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(33635);
        /// Equivalent to GL_UNSIGNED_SHORT_5_6_5_REV (C++ enum variant: <span style='color: green;'>```UInt16_R5G6B5_Rev = 33636```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt16R5G6B5Rev: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(33636);
        /// Equivalent to GL_UNSIGNED_SHORT_4_4_4_4 (C++ enum variant: <span style='color: green;'>```UInt16_RGBA4 = 32819```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt16RGBA4: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(32819);
        /// Equivalent to GL_UNSIGNED_SHORT_4_4_4_4_REV (C++ enum variant: <span style='color: green;'>```UInt16_RGBA4_Rev = 33637```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt16RGBA4Rev: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(33637);
        /// Equivalent to GL_UNSIGNED_INT_8_8_8_8 (C++ enum variant: <span style='color: green;'>```UInt32_RGBA8 = 32821```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt32RGBA8: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(32821);
        /// Equivalent to GL_UNSIGNED_INT_8_8_8_8_REV (C++ enum variant: <span style='color: green;'>```UInt32_RGBA8_Rev = 33639```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt32RGBA8Rev: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(33639);
        /// Equivalent to GL_UNSIGNED_INT_10_10_10_2 (C++ enum variant: <span style='color: green;'>```UInt32_RGB10A2 = 32822```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt32RGB10A2: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(32822);
        /// Equivalent to GL_UNSIGNED_INT_2_10_10_10_REV (C++ enum variant: <span style='color: green;'>```UInt32_RGB10A2_Rev = 33640```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt32RGB10A2Rev: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(33640);
        /// Equivalent to GL_UNSIGNED_INT_24_8. Introduced in Qt 5.4 (C++ enum variant: <span style='color: green;'>```UInt32_D24S8 = 34042```</span>)
        #[allow(non_upper_case_globals)]
        pub const UInt32D24S8: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(34042);
        /// Equivalent to GL_FLOAT_32_UNSIGNED_INT_24_8_REV. Introduced in Qt 5.4 (C++ enum variant: <span style='color: green;'>```Float32_D32_UInt32_S8_X24 = 36269```</span>)
        #[allow(non_upper_case_globals)]
        pub const Float32D32UInt32S8X24: crate::q_opengl_texture::PixelType =
            crate::q_opengl_texture::PixelType(36269);
    }

    /// <p>This enum defines the texture color components that can be assigned a swizzle mask.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::SwizzleComponent```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#SwizzleComponent-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the texture color components that can be assigned a swizzle mask.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SwizzleComponent(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SwizzleComponent {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SwizzleComponent(value)
        }
    }

    impl From<SwizzleComponent> for ::std::os::raw::c_int {
        fn from(value: SwizzleComponent) -> Self {
            value.0
        }
    }

    impl SwizzleComponent {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SwizzleComponent {
        /// The red component. Equivalent to GL_TEXTURE_SWIZZLE_R (C++ enum variant: <span style='color: green;'>```SwizzleRed = 36418```</span>)
        #[allow(non_upper_case_globals)]
        pub const SwizzleRed: crate::q_opengl_texture::SwizzleComponent =
            crate::q_opengl_texture::SwizzleComponent(36418);
        /// The green component. Equivalent to GL_TEXTURE_SWIZZLE_G (C++ enum variant: <span style='color: green;'>```SwizzleGreen = 36419```</span>)
        #[allow(non_upper_case_globals)]
        pub const SwizzleGreen: crate::q_opengl_texture::SwizzleComponent =
            crate::q_opengl_texture::SwizzleComponent(36419);
        /// The blue component. Equivalent to GL_TEXTURE_SWIZZLE_B (C++ enum variant: <span style='color: green;'>```SwizzleBlue = 36420```</span>)
        #[allow(non_upper_case_globals)]
        pub const SwizzleBlue: crate::q_opengl_texture::SwizzleComponent =
            crate::q_opengl_texture::SwizzleComponent(36420);
        /// The alpha component. Equivalent to GL_TEXTURE_SWIZZLE_A (C++ enum variant: <span style='color: green;'>```SwizzleAlpha = 36421```</span>)
        #[allow(non_upper_case_globals)]
        pub const SwizzleAlpha: crate::q_opengl_texture::SwizzleComponent =
            crate::q_opengl_texture::SwizzleComponent(36421);
    }

    /// <p>This enum defines the possible mask values for texture swizzling.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::SwizzleValue```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#SwizzleValue-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the possible mask values for texture swizzling.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SwizzleValue(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SwizzleValue {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SwizzleValue(value)
        }
    }

    impl From<SwizzleValue> for ::std::os::raw::c_int {
        fn from(value: SwizzleValue) -> Self {
            value.0
        }
    }

    impl SwizzleValue {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SwizzleValue {
        /// Maps the component to the red channel. Equivalent to GL_RED (C++ enum variant: <span style='color: green;'>```RedValue = 6403```</span>)
        #[allow(non_upper_case_globals)]
        pub const RedValue: crate::q_opengl_texture::SwizzleValue =
            crate::q_opengl_texture::SwizzleValue(6403);
        /// Maps the component to the green channel. Equivalent to GL_GREEN (C++ enum variant: <span style='color: green;'>```GreenValue = 6404```</span>)
        #[allow(non_upper_case_globals)]
        pub const GreenValue: crate::q_opengl_texture::SwizzleValue =
            crate::q_opengl_texture::SwizzleValue(6404);
        /// Maps the component to the blue channel. Equivalent to GL_BLUE (C++ enum variant: <span style='color: green;'>```BlueValue = 6405```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlueValue: crate::q_opengl_texture::SwizzleValue =
            crate::q_opengl_texture::SwizzleValue(6405);
        /// Maps the component to the alpha channel. Equivalent to GL_ALPHA (C++ enum variant: <span style='color: green;'>```AlphaValue = 6406```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlphaValue: crate::q_opengl_texture::SwizzleValue =
            crate::q_opengl_texture::SwizzleValue(6406);
        /// Maps the component to a fixed value of 0. Equivalent to GL_ZERO (C++ enum variant: <span style='color: green;'>```ZeroValue = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const ZeroValue: crate::q_opengl_texture::SwizzleValue =
            crate::q_opengl_texture::SwizzleValue(0);
        /// Maps the component to a fixed value of 1. Equivalent to GL_ONE (C++ enum variant: <span style='color: green;'>```OneValue = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const OneValue: crate::q_opengl_texture::SwizzleValue =
            crate::q_opengl_texture::SwizzleValue(1);
    }

    /// <p>This enum defines the possible texture coordinate wrapping modes.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::WrapMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#WrapMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the possible texture coordinate wrapping modes.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct WrapMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for WrapMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            WrapMode(value)
        }
    }

    impl From<WrapMode> for ::std::os::raw::c_int {
        fn from(value: WrapMode) -> Self {
            value.0
        }
    }

    impl WrapMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl WrapMode {
        /// Texture coordinate is repeated. Equivalent to GL_REPEAT (C++ enum variant: <span style='color: green;'>```Repeat = 10497```</span>)
        #[allow(non_upper_case_globals)]
        pub const Repeat: crate::q_opengl_texture::WrapMode =
            crate::q_opengl_texture::WrapMode(10497);
        /// Texture coordinate is reflected about 0 and 1. Equivalent to GL_MIRRORED_REPEAT (C++ enum variant: <span style='color: green;'>```MirroredRepeat = 33648```</span>)
        #[allow(non_upper_case_globals)]
        pub const MirroredRepeat: crate::q_opengl_texture::WrapMode =
            crate::q_opengl_texture::WrapMode(33648);
        /// Clamps the texture coordinates to [0,1]. Equivalent to GL_CLAMP_TO_EDGE (C++ enum variant: <span style='color: green;'>```ClampToEdge = 33071```</span>)
        #[allow(non_upper_case_globals)]
        pub const ClampToEdge: crate::q_opengl_texture::WrapMode =
            crate::q_opengl_texture::WrapMode(33071);
        /// As for ClampToEdge but also blends samples at 0 and 1 with a fixed border color. Equivalent to GL_CLAMP_TO_BORDER (C++ enum variant: <span style='color: green;'>```ClampToBorder = 33069```</span>)
        #[allow(non_upper_case_globals)]
        pub const ClampToBorder: crate::q_opengl_texture::WrapMode =
            crate::q_opengl_texture::WrapMode(33069);
    }

    /// <p>This enum defines the possible texture coordinate directions</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::CoordinateDirection```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#CoordinateDirection-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the possible texture coordinate directions</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CoordinateDirection(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CoordinateDirection {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CoordinateDirection(value)
        }
    }

    impl From<CoordinateDirection> for ::std::os::raw::c_int {
        fn from(value: CoordinateDirection) -> Self {
            value.0
        }
    }

    impl CoordinateDirection {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CoordinateDirection {
        /// The horizontal direction. Equivalent to GL_TEXTURE_WRAP_S (C++ enum variant: <span style='color: green;'>```DirectionS = 10242```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirectionS: crate::q_opengl_texture::CoordinateDirection =
            crate::q_opengl_texture::CoordinateDirection(10242);
        /// The vertical direction. Equivalent to GL_TEXTURE_WRAP_T (C++ enum variant: <span style='color: green;'>```DirectionT = 10243```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirectionT: crate::q_opengl_texture::CoordinateDirection =
            crate::q_opengl_texture::CoordinateDirection(10243);
        /// The depth direction. Equivalent to GL_TEXTURE_WRAP_R (C++ enum variant: <span style='color: green;'>```DirectionR = 32882```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirectionR: crate::q_opengl_texture::CoordinateDirection =
            crate::q_opengl_texture::CoordinateDirection(32882);
    }

    /// <p>This enum defines the OpenGL texture-related features that can be tested for.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::Feature```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#Feature-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the OpenGL texture-related features that can be tested for.</p>
    ///
    /// <p>The Features type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;Feature&gt;. It stores an OR combination of Feature values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Feature(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Feature {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Feature(value)
        }
    }

    impl From<Feature> for ::std::os::raw::c_int {
        fn from(value: Feature) -> Self {
            value.0
        }
    }

    impl Feature {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Feature {
        /// Support for immutable texture storage (C++ enum variant: <span style='color: green;'>```ImmutableStorage = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ImmutableStorage: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(1);
        /// Support for immutable texture storage with multisample targets (C++ enum variant: <span style='color: green;'>```ImmutableMultisampleStorage = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ImmutableMultisampleStorage: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(2);
        /// Support for the GL_TEXTURE_RECTANGLE target (C++ enum variant: <span style='color: green;'>```TextureRectangle = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextureRectangle: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(4);
        /// Support for texture targets with array layers (C++ enum variant: <span style='color: green;'>```TextureArrays = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextureArrays: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(8);
        /// Support for the 3 dimensional texture target (C++ enum variant: <span style='color: green;'>```Texture3D = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const Texture3D: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(16);
        /// Support for texture targets that have multisample capabilities (C++ enum variant: <span style='color: green;'>```TextureMultisample = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextureMultisample: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(32);
        /// Support for textures that use OpenGL buffer objects as their data source (C++ enum variant: <span style='color: green;'>```TextureBuffer = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextureBuffer: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(64);
        /// Support for cubemap array texture target (C++ enum variant: <span style='color: green;'>```TextureCubeMapArrays = 128```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextureCubeMapArrays: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(128);
        /// Support for texture component swizzle masks (C++ enum variant: <span style='color: green;'>```Swizzle = 256```</span>)
        #[allow(non_upper_case_globals)]
        pub const Swizzle: crate::q_opengl_texture::Feature = crate::q_opengl_texture::Feature(256);
        /// Support for stencil texturing (i.e. looking up depth or stencil components of a combined depth/stencil format texture in GLSL shaders). (C++ enum variant: <span style='color: green;'>```StencilTexturing = 512```</span>)
        #[allow(non_upper_case_globals)]
        pub const StencilTexturing: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(512);
        /// Support for anisotropic texture filtering (C++ enum variant: <span style='color: green;'>```AnisotropicFiltering = 1024```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnisotropicFiltering: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(1024);
        /// Basic support for non-power-of-two textures (C++ enum variant: <span style='color: green;'>```NPOTTextures = 2048```</span>)
        #[allow(non_upper_case_globals)]
        pub const NPOTTextures: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(2048);
        /// Full support for non-power-of-two textures including texture repeat modes (C++ enum variant: <span style='color: green;'>```NPOTTextureRepeat = 4096```</span>)
        #[allow(non_upper_case_globals)]
        pub const NPOTTextureRepeat: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(4096);
        /// Support for the 1 dimensional texture target (C++ enum variant: <span style='color: green;'>```Texture1D = 8192```</span>)
        #[allow(non_upper_case_globals)]
        pub const Texture1D: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(8192);
        /// Support for texture comparison operators (C++ enum variant: <span style='color: green;'>```TextureComparisonOperators = 16384```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextureComparisonOperators: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(16384);
        /// Support for setting the base and maximum mipmap levels (C++ enum variant: <span style='color: green;'>```TextureMipMapLevel = 32768```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextureMipMapLevel: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(32768);
        /// C++ enum variant: <span style='color: green;'>```MaxFeatureFlag = 65536```</span>
        #[allow(non_upper_case_globals)]
        pub const MaxFeatureFlag: crate::q_opengl_texture::Feature =
            crate::q_opengl_texture::Feature(65536);
    }

    /// <p>This enum specifies which component of a depth/stencil texture is accessed when the texture is sampled.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::DepthStencilMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#DepthStencilMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies which component of a depth/stencil texture is accessed when the texture is sampled.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.4.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct DepthStencilMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for DepthStencilMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            DepthStencilMode(value)
        }
    }

    impl From<DepthStencilMode> for ::std::os::raw::c_int {
        fn from(value: DepthStencilMode) -> Self {
            value.0
        }
    }

    impl DepthStencilMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl DepthStencilMode {
        /// Equivalent to GL_DEPTH_COMPONENT. (C++ enum variant: <span style='color: green;'>```DepthMode = 6402```</span>)
        #[allow(non_upper_case_globals)]
        pub const DepthMode: crate::q_opengl_texture::DepthStencilMode =
            crate::q_opengl_texture::DepthStencilMode(6402);
        /// Equivalent to GL_STENCIL_INDEX. (C++ enum variant: <span style='color: green;'>```StencilMode = 6401```</span>)
        #[allow(non_upper_case_globals)]
        pub const StencilMode: crate::q_opengl_texture::DepthStencilMode =
            crate::q_opengl_texture::DepthStencilMode(6401);
    }

    /// <p>This enum specifies which comparison operator is used when texture comparison is enabled on this texture.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::ComparisonFunction```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#ComparisonFunction-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies which comparison operator is used when texture comparison is enabled on this texture.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.5.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ComparisonFunction(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ComparisonFunction {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ComparisonFunction(value)
        }
    }

    impl From<ComparisonFunction> for ::std::os::raw::c_int {
        fn from(value: ComparisonFunction) -> Self {
            value.0
        }
    }

    impl ComparisonFunction {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ComparisonFunction {
        /// Equivalent to GL_LEQUAL. (C++ enum variant: <span style='color: green;'>```CompareLessEqual = 515```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareLessEqual: crate::q_opengl_texture::ComparisonFunction =
            crate::q_opengl_texture::ComparisonFunction(515);
        /// Equivalent to GL_GEQUAL. (C++ enum variant: <span style='color: green;'>```CompareGreaterEqual = 518```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareGreaterEqual: crate::q_opengl_texture::ComparisonFunction =
            crate::q_opengl_texture::ComparisonFunction(518);
        /// Equivalent to GL_LESS. (C++ enum variant: <span style='color: green;'>```CompareLess = 513```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareLess: crate::q_opengl_texture::ComparisonFunction =
            crate::q_opengl_texture::ComparisonFunction(513);
        /// Equivalent to GL_GREATER. (C++ enum variant: <span style='color: green;'>```CompareGreater = 516```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareGreater: crate::q_opengl_texture::ComparisonFunction =
            crate::q_opengl_texture::ComparisonFunction(516);
        /// Equivalent to GL_EQUAL. (C++ enum variant: <span style='color: green;'>```CompareEqual = 514```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareEqual: crate::q_opengl_texture::ComparisonFunction =
            crate::q_opengl_texture::ComparisonFunction(514);
        /// Equivalent to GL_NOTEQUAL. (C++ enum variant: <span style='color: green;'>```CommpareNotEqual = 517```</span>)
        #[allow(non_upper_case_globals)]
        pub const CommpareNotEqual: crate::q_opengl_texture::ComparisonFunction =
            crate::q_opengl_texture::ComparisonFunction(517);
        /// Equivalent to GL_ALWAYS. (C++ enum variant: <span style='color: green;'>```CompareAlways = 519```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareAlways: crate::q_opengl_texture::ComparisonFunction =
            crate::q_opengl_texture::ComparisonFunction(519);
        /// Equivalent to GL_NEVER. (C++ enum variant: <span style='color: green;'>```CompareNever = 512```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareNever: crate::q_opengl_texture::ComparisonFunction =
            crate::q_opengl_texture::ComparisonFunction(512);
    }

    /// <p>This enum specifies which comparison mode is used when sampling this texture.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::ComparisonMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#ComparisonMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum specifies which comparison mode is used when sampling this texture.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.5.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ComparisonMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ComparisonMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ComparisonMode(value)
        }
    }

    impl From<ComparisonMode> for ::std::os::raw::c_int {
        fn from(value: ComparisonMode) -> Self {
            value.0
        }
    }

    impl ComparisonMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ComparisonMode {
        /// Equivalent to GL_COMPARE_REF_TO_TEXTURE. (C++ enum variant: <span style='color: green;'>```CompareRefToTexture = 34894```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareRefToTexture: crate::q_opengl_texture::ComparisonMode =
            crate::q_opengl_texture::ComparisonMode(34894);
        /// Equivalent to GL_NONE. (C++ enum variant: <span style='color: green;'>```CompareNone = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompareNone: crate::q_opengl_texture::ComparisonMode =
            crate::q_opengl_texture::ComparisonMode(0);
    }

    /// <p>This enum defines the filtering parameters for a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTexture::Filter```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#Filter-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the filtering parameters for a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Filter(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Filter {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Filter(value)
        }
    }

    impl From<Filter> for ::std::os::raw::c_int {
        fn from(value: Filter) -> Self {
            value.0
        }
    }

    impl Filter {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Filter {
        /// Equivalent to GL_NEAREST (C++ enum variant: <span style='color: green;'>```Nearest = 9728```</span>)
        #[allow(non_upper_case_globals)]
        pub const Nearest: crate::q_opengl_texture::Filter = crate::q_opengl_texture::Filter(9728);
        /// Equivalent to GL_LINEAR (C++ enum variant: <span style='color: green;'>```Linear = 9729```</span>)
        #[allow(non_upper_case_globals)]
        pub const Linear: crate::q_opengl_texture::Filter = crate::q_opengl_texture::Filter(9729);
        /// Equivalent to GL_NEAREST_MIPMAP_NEAREST (C++ enum variant: <span style='color: green;'>```NearestMipMapNearest = 9984```</span>)
        #[allow(non_upper_case_globals)]
        pub const NearestMipMapNearest: crate::q_opengl_texture::Filter =
            crate::q_opengl_texture::Filter(9984);
        /// Equivalent to GL_NEAREST_MIPMAP_LINEAR (C++ enum variant: <span style='color: green;'>```NearestMipMapLinear = 9986```</span>)
        #[allow(non_upper_case_globals)]
        pub const NearestMipMapLinear: crate::q_opengl_texture::Filter =
            crate::q_opengl_texture::Filter(9986);
        /// Equivalent to GL_LINEAR_MIPMAP_NEAREST (C++ enum variant: <span style='color: green;'>```LinearMipMapNearest = 9985```</span>)
        #[allow(non_upper_case_globals)]
        pub const LinearMipMapNearest: crate::q_opengl_texture::Filter =
            crate::q_opengl_texture::Filter(9985);
        /// Equivalent to GL_LINEAR_MIPMAP_LINEAR (C++ enum variant: <span style='color: green;'>```LinearMipMapLinear = 9987```</span>)
        #[allow(non_upper_case_globals)]
        pub const LinearMipMapLinear: crate::q_opengl_texture::Filter =
            crate::q_opengl_texture::Filter(9987);
    }

    impl From<crate::q_opengl_texture::Feature>
        for ::qt_core::QFlags<crate::q_opengl_texture::Feature>
    {
        fn from(value: crate::q_opengl_texture::Feature) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_opengl_texture::Feature>>> std::ops::BitOr<T>
        for crate::q_opengl_texture::Feature
    {
        type Output = ::qt_core::QFlags<crate::q_opengl_texture::Feature>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_opengl_texture::Feature> {
            Into::<::qt_core::QFlags<crate::q_opengl_texture::Feature>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> class encapsulates an OpenGL texture object.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLTexture```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopengltexture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> class encapsulates an OpenGL texture object.</p>
/// <p><a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> makes it easy to work with OpenGL textures and the myriad features and targets that they offer depending upon the capabilities of your OpenGL implementation.</p>
/// <p>The typical usage pattern for <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> is</p>
/// <ul>
/// <li>Instantiate the object specifying the texture target type</li>
/// <li>Set properties that affect the storage requirements e.g. storage format, dimensions</li>
/// <li>Allocate the server-side storage</li>
/// <li>Optionally upload pixel data</li>
/// <li>Optionally set any additional properties e.g. filtering and border options</li>
/// <li>Render with texture or render to texture</li>
/// </ul>
/// <p>In the common case of simply using a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> as the source of texture pixel data most of the above steps are performed automatically.</p>
/// <pre class="cpp">
///
///   <span class="comment">// Prepare texture</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qopengltexture.html#QOpenGLTexture">QOpenGLTexture</a></span> <span class="operator">*</span>texture <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopengltexture.html#QOpenGLTexture">QOpenGLTexture</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span>(fileName)<span class="operator">.</span>mirrored());
///   texture<span class="operator">-</span><span class="operator">&gt;</span>setMinificationFilter(<span class="type"><a href="http://doc.qt.io/qt-5/qopengltexture.html#QOpenGLTexture">QOpenGLTexture</a></span><span class="operator">::</span>LinearMipMapLinear);
///   texture<span class="operator">-</span><span class="operator">&gt;</span>setMagnificationFilter(<span class="type"><a href="http://doc.qt.io/qt-5/qopengltexture.html#QOpenGLTexture">QOpenGLTexture</a></span><span class="operator">::</span>Linear);
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="comment">// Render with texture</span>
///   texture<span class="operator">-</span><span class="operator">&gt;</span>bind();
///   glDrawArrays(<span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>);
///
/// </pre>
/// <p>Note that the <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> is mirrored vertically to account for the fact that OpenGL and <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> use opposite directions for the y axis. Another option would be to transform your texture coordinates.</p></div>
#[repr(C)]
pub struct QOpenGLTexture {
    _unused: u8,
}
impl QOpenGLTexture {
    /// <p>Allocates server-side storage for this texture object taking into account, the format, dimensions, mipmap levels, array layers and cubemap faces.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::allocateStorage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#allocateStorage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Allocates server-side storage for this texture object taking into account, the format, dimensions, mipmap levels, array layers and cubemap faces.</p>
    /// <p>Once storage has been allocated it is no longer possible to change these properties.</p>
    /// <p>If supported <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> makes use of immutable texture storage.</p>
    /// <p>Once storage has been allocated for the texture then pixel data can be uploaded via one of the <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() overloads.</p>
    /// <p><b>Note: </b>If immutable texture storage is not available, then a default pixel format and pixel type will be used to create the mutable storage. You can use the other allocateStorage() overload to specify exactly the pixel format and the pixel type to use when allocating mutable storage; this is particulary useful under certain OpenGL ES implementations (notably, OpenGL ES 2), where the pixel format and the pixel type used at allocation time must perfectly match the format and the type passed to any subsequent <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() call.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn allocate_storage_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_allocateStorage(
            self as *mut crate::QOpenGLTexture,
        )
    }

    /// <p>Allocates server-side storage for this texture object taking into account, the format, dimensions, mipmap levels, array layers and cubemap faces.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#allocateStorage-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Allocates server-side storage for this texture object taking into account, the format, dimensions, mipmap levels, array layers and cubemap faces.</p>
    /// <p>Once storage has been allocated it is no longer possible to change these properties.</p>
    /// <p>If supported <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> makes use of immutable texture storage. However, if immutable texture storage is not available, then the specified <i>pixelFormat</i> and <i>pixelType</i> will be used to allocate mutable storage; note that in certain OpenGL implementations (notably, OpenGL ES 2) they must perfectly match the format and the type passed to any subsequent <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() call.</p>
    /// <p>Once storage has been allocated for the texture then pixel data can be uploaded via one of the <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() overloads.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn allocate_storage_2a(
        &mut self,
        pixel_format: crate::q_opengl_texture::PixelFormat,
        pixel_type: crate::q_opengl_texture::PixelType,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_allocateStorage1(
            self as *mut crate::QOpenGLTexture,
            pixel_format,
            pixel_type,
        )
    }

    /// <p>Binds this texture to the currently active texture unit ready for rendering. Note that you do not need to bind <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> objects in order to modify them as the implementation makes use of the EXT_direct_state_access extension where available and simulates it where it is not.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::bind()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#bind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds this texture to the currently active texture unit ready for rendering. Note that you do not need to bind <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> objects in order to modify them as the implementation makes use of the EXT_direct_state_access extension where available and simulates it where it is not.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_bind(self as *mut crate::QOpenGLTexture)
    }

    /// <p>Binds this texture to texture unit <i>unit</i> ready for rendering. Note that you do not need to bind <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> objects in order to modify them as the implementation makes use of the EXT_direct_state_access extension where available and simulates it where it is not.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::bind(unsigned int unit, QOpenGLTexture::TextureUnitReset reset = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#bind-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds this texture to texture unit <i>unit</i> ready for rendering. Note that you do not need to bind <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> objects in order to modify them as the implementation makes use of the EXT_direct_state_access extension where available and simulates it where it is not.</p>
    /// <p>If parameter <i>reset</i> is <code>true</code> then this function will restore the active unit to the texture unit that was active upon entry.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_2a(
        &mut self,
        unit: ::std::os::raw::c_uint,
        reset: crate::q_opengl_texture::TextureUnitReset,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_bind1(
            self as *mut crate::QOpenGLTexture,
            unit,
            reset,
        )
    }

    /// <p>Binds this texture to texture unit <i>unit</i> ready for rendering. Note that you do not need to bind <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> objects in order to modify them as the implementation makes use of the EXT_direct_state_access extension where available and simulates it where it is not.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::bind(unsigned int unit)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#bind-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds this texture to texture unit <i>unit</i> ready for rendering. Note that you do not need to bind <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> objects in order to modify them as the implementation makes use of the EXT_direct_state_access extension where available and simulates it where it is not.</p>
    /// <p>If parameter <i>reset</i> is <code>true</code> then this function will restore the active unit to the texture unit that was active upon entry.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_1a(&mut self, unit: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_bind2(self as *mut crate::QOpenGLTexture, unit)
    }

    /// <p>Returns the borderColor of this texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor QOpenGLTexture::borderColor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#borderColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the borderColor of this texture.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setBorderColor">setBorderColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn border_color(&self) -> ::cpp_core::CppBox<crate::QColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_borderColor(
            self as *const crate::QOpenGLTexture,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Writes the texture border color into the first four elements of the array pointed to by <i>border</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::borderColor(float* border) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#borderColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the texture border color into the first four elements of the array pointed to by <i>border</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setBorderColor">setBorderColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn border_color_float(
        &self,
        border: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_borderColor1(
            self as *const crate::QOpenGLTexture,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_float>>::cast_into(border)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Writes the texture border color into the first four elements of the array pointed to by <i>border</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::borderColor(int* border) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#borderColor-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the texture border color into the first four elements of the array pointed to by <i>border</i>.</p>
    /// <p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn border_color_int(
        &self,
        border: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_borderColor2(
            self as *const crate::QOpenGLTexture,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(border)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Writes the texture border color into the first four elements of the array pointed to by <i>border</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::borderColor(unsigned int* border) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#borderColor-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the texture border color into the first four elements of the array pointed to by <i>border</i>.</p>
    /// <p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn border_color_uint(
        &self,
        border: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_uint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_borderColor3(
            self as *const crate::QOpenGLTexture,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_uint>>::cast_into(border)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">textureId</a> of the texture that is bound to the <i>target</i> of the currently active texture unit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static GLuint QOpenGLTexture::boundTextureId(QOpenGLTexture::BindingTarget target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#boundTextureId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">textureId</a> of the texture that is bound to the <i>target</i> of the currently active texture unit.</p></div>
    #[inline(always)]
    pub unsafe fn bound_texture_id_1a(target: crate::q_opengl_texture::BindingTarget) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_boundTextureId(target)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">textureId</a> of the texture that is bound to the <i>target</i> of the texture unit <i>unit</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static GLuint QOpenGLTexture::boundTextureId(unsigned int unit, QOpenGLTexture::BindingTarget target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#boundTextureId-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">textureId</a> of the texture that is bound to the <i>target</i> of the texture unit <i>unit</i>.</p></div>
    #[inline(always)]
    pub unsafe fn bound_texture_id_2a(
        unit: ::std::os::raw::c_uint,
        target: crate::q_opengl_texture::BindingTarget,
    ) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_boundTextureId1(unit, target)
    }

    /// <p>Returns the texture comparison operator set on this texture. By default, a texture has a <a href="http://doc.qt.io/qt-5/qopengltexture.html#ComparisonFunction-enum">CompareLessEqual</a> comparison function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::ComparisonFunction QOpenGLTexture::comparisonFunction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#comparisonFunction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture comparison operator set on this texture. By default, a texture has a <a href="http://doc.qt.io/qt-5/qopengltexture.html#ComparisonFunction-enum">CompareLessEqual</a> comparison function.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setComparisonFunction">setComparisonFunction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn comparison_function(&self) -> crate::q_opengl_texture::ComparisonFunction {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_comparisonFunction(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the texture comparison mode set on this texture. By default, a texture has a <a href="http://doc.qt.io/qt-5/qopengltexture.html#ComparisonMode-enum">CompareNone</a> comparison mode (i.e. comparisons are disabled).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::ComparisonMode QOpenGLTexture::comparisonMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#comparisonMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture comparison mode set on this texture. By default, a texture has a <a href="http://doc.qt.io/qt-5/qopengltexture.html#ComparisonMode-enum">CompareNone</a> comparison mode (i.e. comparisons are disabled).</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setComparisonMode">setComparisonMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn comparison_mode(&self) -> crate::q_opengl_texture::ComparisonMode {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_comparisonMode(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Creates the underlying OpenGL texture object. This requires a current valid OpenGL context. If the texture object already exists, this function does nothing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTexture::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates the underlying OpenGL texture object. This requires a current valid OpenGL context. If the texture object already exists, this function does nothing.</p>
    /// <p>Once the texture object is created you can obtain the object name from the <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">textureId</a>() function. This may be useful if you wish to make some raw OpenGL calls related to this texture.</p>
    /// <p>Normally it should not be necessary to call this function directly as all functions that set properties of the texture object implicitly call create() on your behalf.</p>
    /// <p>Returns <code>true</code> if the creation succeeded, otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#destroy">destroy</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#isCreated">isCreated</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">textureId</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_create(self as *mut crate::QOpenGLTexture)
    }

    /// <p>Attempts to create a texture view onto this texture. A texture view is somewhat analogous to a view in SQL in that it presents a restricted or reinterpreted view of the original data. Texture views do not allocate any more server-side storage, insted relying on the storage buffer of the source texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture* QOpenGLTexture::createTextureView(QOpenGLTexture::Target target, QOpenGLTexture::TextureFormat viewFormat, int minimumMipmapLevel, int maximumMipmapLevel, int minimumLayer, int maximumLayer) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#createTextureView">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to create a texture view onto this texture. A texture view is somewhat analogous to a view in SQL in that it presents a restricted or reinterpreted view of the original data. Texture views do not allocate any more server-side storage, insted relying on the storage buffer of the source texture.</p>
    /// <p>Texture views are only available when using immutable storage. For more information on texture views see http://www.opengl.org/wiki/Texture_Storage#Texture_views.</p>
    /// <p>The <i>target</i> argument specifies the target to use for the view. Only some targets can be used depending upon the target of the original target. For e.g. a view onto a <a href="http://doc.qt.io/qt-5/qopengltexture.html#Target-enum">Target1DArray</a> texture can specify either <a href="http://doc.qt.io/qt-5/qopengltexture.html#Target-enum">Target1DArray</a> or <a href="http://doc.qt.io/qt-5/qopengltexture.html#Target-enum">Target1D</a> but for the latter the number of array layers specified with <i>minimumLayer</i> and <i>maximumLayer</i> must be exactly 1.</p>
    /// <p>Simpliar constraints apply for the <i>viewFormat</i>. See the above link and the specification for more details.</p>
    /// <p>The <i>minimumMipmapLevel</i>, <i>maximumMipmapLevel</i>, <i>minimumLayer</i>, and <i>maximumLayer</i> arguments serve to restrict the parts of the texture accessible by the texture view.</p>
    /// <p>If creation of the texture view fails this function will return 0. If the function succeeds it will return a pointer to a new <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object that will return <code>true</code> from its <a href="http://doc.qt.io/qt-5/qopengltexture.html#isTextureView">isTextureView</a>() function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#isTextureView">isTextureView</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create_texture_view(
        &self,
        target: crate::q_opengl_texture::Target,
        view_format: crate::q_opengl_texture::TextureFormat,
        minimum_mipmap_level: ::std::os::raw::c_int,
        maximum_mipmap_level: ::std::os::raw::c_int,
        minimum_layer: ::std::os::raw::c_int,
        maximum_layer: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLTexture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_createTextureView(
            self as *const crate::QOpenGLTexture,
            target,
            view_format,
            minimum_mipmap_level,
            maximum_mipmap_level,
            minimum_layer,
            maximum_layer,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the depth of a 3D texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::depth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#depth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the depth of a 3D texture.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSize">setSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn depth(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_depth(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns the depth stencil mode for textures using a combined depth/stencil format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::DepthStencilMode QOpenGLTexture::depthStencilMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#depthStencilMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the depth stencil mode for textures using a combined depth/stencil format.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setDepthStencilMode">setDepthStencilMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn depth_stencil_mode(&self) -> crate::q_opengl_texture::DepthStencilMode {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_depthStencilMode(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Destroys the underlying OpenGL texture object. This requires a current valid OpenGL context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::destroy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#destroy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the underlying OpenGL texture object. This requires a current valid OpenGL context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#isCreated">isCreated</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">textureId</a>().</p></div>
    #[inline(always)]
    pub unsafe fn destroy(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_destroy(self as *mut crate::QOpenGLTexture)
    }

    /// <p>Returns the number of faces for this texture. For cubemap and cubemap array type targets this will be 6.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::faces() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#faces">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of faces for this texture. For cubemap and cubemap array type targets this will be 6.</p>
    /// <p>For non-cubemap type targets this will return 1.</p></div>
    #[inline(always)]
    pub unsafe fn faces(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_faces(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns the format of this texture object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::TextureFormat QOpenGLTexture::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format of this texture object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> crate::q_opengl_texture::TextureFormat {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_format(self as *const crate::QOpenGLTexture)
    }

    /// <p>Generates mipmaps for this texture object from mipmap level 0. If you are using a texture target and filtering option that requires mipmaps and you have disabled automatic mipmap generation then you need to call this function or the overload to create the mipmap chain.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::generateMipMaps()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#generateMipMaps">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Generates mipmaps for this texture object from mipmap level 0. If you are using a texture target and filtering option that requires mipmaps and you have disabled automatic mipmap generation then you need to call this function or the overload to create the mipmap chain.</p>
    /// <p><b>Note: </b>Mipmap generation is not supported for compressed textures with OpenGL ES 2.0.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setAutoMipMapGenerationEnabled">setAutoMipMapGenerationEnabled</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevels">setMipLevels</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevels">mipLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn generate_mip_maps_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_generateMipMaps(
            self as *mut crate::QOpenGLTexture,
        )
    }

    /// <p>Generates mipmaps for this texture object from mipmap level <i>baseLevel</i>. If you are using a texture target and filtering option that requires mipmaps and you have disabled automatic mipmap generation then you need to call this function or the overload to create the mipmap chain.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::generateMipMaps(int baseLevel, bool resetBaseLevel = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#generateMipMaps-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Generates mipmaps for this texture object from mipmap level <i>baseLevel</i>. If you are using a texture target and filtering option that requires mipmaps and you have disabled automatic mipmap generation then you need to call this function or the overload to create the mipmap chain.</p>
    /// <p>The generation of mipmaps to above <i>baseLevel</i> is achieved by setting the mipmap base level to <i>baseLevel</i> and then generating the mipmap chain. If <i>resetBaseLevel</i> is <code>true</code>, then the baseLevel of the texture will be reset to its previous value.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setAutoMipMapGenerationEnabled">setAutoMipMapGenerationEnabled</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevels">setMipLevels</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevels">mipLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn generate_mip_maps_2a(
        &mut self,
        base_level: ::std::os::raw::c_int,
        reset_base_level: bool,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_generateMipMaps1(
            self as *mut crate::QOpenGLTexture,
            base_level,
            reset_base_level,
        )
    }

    /// <p>Generates mipmaps for this texture object from mipmap level <i>baseLevel</i>. If you are using a texture target and filtering option that requires mipmaps and you have disabled automatic mipmap generation then you need to call this function or the overload to create the mipmap chain.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::generateMipMaps(int baseLevel)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#generateMipMaps-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Generates mipmaps for this texture object from mipmap level <i>baseLevel</i>. If you are using a texture target and filtering option that requires mipmaps and you have disabled automatic mipmap generation then you need to call this function or the overload to create the mipmap chain.</p>
    /// <p>The generation of mipmaps to above <i>baseLevel</i> is achieved by setting the mipmap base level to <i>baseLevel</i> and then generating the mipmap chain. If <i>resetBaseLevel</i> is <code>true</code>, then the baseLevel of the texture will be reset to its previous value.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setAutoMipMapGenerationEnabled">setAutoMipMapGenerationEnabled</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevels">setMipLevels</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevels">mipLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn generate_mip_maps_1a(&mut self, base_level: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_generateMipMaps2(
            self as *mut crate::QOpenGLTexture,
            base_level,
        )
    }

    /// <p>Returns <code>true</code> if your OpenGL implementation and version supports the texture feature <i>feature</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QOpenGLTexture::hasFeature(QOpenGLTexture::Feature feature)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#hasFeature">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if your OpenGL implementation and version supports the texture feature <i>feature</i>.</p></div>
    #[inline(always)]
    pub unsafe fn has_feature(feature: crate::q_opengl_texture::Feature) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_hasFeature(feature)
    }

    /// <p>Returns the height of a 2D or 3D texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of a 2D or 3D texture.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#depth">depth</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSize">setSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_height(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns whether auto mipmap generation is enabled for this texture object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTexture::isAutoMipMapGenerationEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#isAutoMipMapGenerationEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether auto mipmap generation is enabled for this texture object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setAutoMipMapGenerationEnabled">setAutoMipMapGenerationEnabled</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#generateMipMaps">generateMipMaps</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_auto_mip_map_generation_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_isAutoMipMapGenerationEnabled(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns <code>true</code> if this texture is bound to the corresponding target of the currently active texture unit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTexture::isBound() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#isBound">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this texture is bound to the corresponding target of the currently active texture unit.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#bind">bind</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_bound(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_isBound(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns <code>true</code> if this texture is bound to the corresponding target of texture unit <i>unit</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTexture::isBound(unsigned int unit)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#isBound-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this texture is bound to the corresponding target of texture unit <i>unit</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#bind">bind</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#release">release</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_bound_mut(&mut self, unit: ::std::os::raw::c_uint) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_isBound1(
            self as *mut crate::QOpenGLTexture,
            unit,
        )
    }

    /// <p>Returns <code>true</code> if the underlying OpenGL texture object has been created.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTexture::isCreated() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#isCreated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the underlying OpenGL texture object has been created.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#destroy">destroy</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">textureId</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_created(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_isCreated(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns whether this texture uses a fixed pattern of multisample samples. If storage has not yet been allocated for this texture then this function returns the requested fixed sample position setting.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTexture::isFixedSamplePositions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#isFixedSamplePositions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether this texture uses a fixed pattern of multisample samples. If storage has not yet been allocated for this texture then this function returns the requested fixed sample position setting.</p>
    /// <p>For texture targets that do not support multisampling this will return <code>true</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setFixedSamplePositions">setFixedSamplePositions</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_fixed_sample_positions(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_isFixedSamplePositions(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns <code>true</code> if server-side storage for this texture as been allocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTexture::isStorageAllocated() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if server-side storage for this texture as been allocated.</p>
    /// <p>The texture format, dimensions, mipmap levels and array layers cannot be altered once storage ihas been allocated.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#allocateStorage">allocateStorage</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSize">setSize</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevels">setMipLevels</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setLayers">setLayers</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_storage_allocated(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_isStorageAllocated(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns <code>true</code> if this texture object is actually a view onto another texture object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTexture::isTextureView() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#isTextureView">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this texture object is actually a view onto another texture object.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#createTextureView">createTextureView</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_texture_view(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_isTextureView(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the number of array layers for this texture. If storage has not yet been allocated for this texture then this function returns the requested number of array layers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::layers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#layers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of array layers for this texture. If storage has not yet been allocated for this texture then this function returns the requested number of array layers.</p>
    /// <p>For texture targets that do not support array layers this will return 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setLayers">setLayers</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn layers(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_layers(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns the minimum and maximum level of detail parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<float, float> QOpenGLTexture::levelOfDetailRange() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#levelOfDetailRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum and maximum level of detail parameters.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setLevelOfDetailRange">setLevelOfDetailRange</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#minimumLevelOfDetail">minimumLevelOfDetail</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumLevelOfDetail">maximumLevelOfDetail</a>().</p></div>
    #[inline(always)]
    pub unsafe fn level_of_detail_range(&self) -> ::cpp_core::CppBox<crate::QPairOfFloatFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_levelOfDetailRange(
            self as *const crate::QOpenGLTexture,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the level of detail bias parameter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QOpenGLTexture::levelofDetailBias() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#levelofDetailBias">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the level of detail bias parameter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setLevelofDetailBias">setLevelofDetailBias</a>().</p></div>
    #[inline(always)]
    pub unsafe fn levelof_detail_bias(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_levelofDetailBias(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the magnification filter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::Filter QOpenGLTexture::magnificationFilter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#magnificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the magnification filter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMagnificationFilter">setMagnificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn magnification_filter(&self) -> crate::q_opengl_texture::Filter {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_magnificationFilter(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the maximum level of anisotropy to be accounted for when performing texture lookups. This requires the GL_EXT_texture_filter_anisotropic extension.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QOpenGLTexture::maximumAnisotropy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumAnisotropy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum level of anisotropy to be accounted for when performing texture lookups. This requires the GL_EXT_texture_filter_anisotropic extension.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMaximumAnisotropy">setMaximumAnisotropy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_anisotropy(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_maximumAnisotropy(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the maximum level of detail parameter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QOpenGLTexture::maximumLevelOfDetail() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumLevelOfDetail">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum level of detail parameter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMaximumLevelOfDetail">setMaximumLevelOfDetail</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#minimumLevelOfDetail">minimumLevelOfDetail</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#levelOfDetailRange">levelOfDetailRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_level_of_detail(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_maximumLevelOfDetail(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the maximum number of mipmap levels that this texture can have given the current dimensions.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::maximumMipLevels() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumMipLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of mipmap levels that this texture can have given the current dimensions.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevels">setMipLevels</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevels">mipLevels</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSize">setSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_mip_levels(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_maximumMipLevels(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the current minification and magnification filters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter> QOpenGLTexture::minMagFilters() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#minMagFilters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current minification and magnification filters.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinMagFilters">setMinMagFilters</a>().</p></div>
    #[inline(always)]
    pub unsafe fn min_mag_filters(&self) -> ::cpp_core::CppBox<crate::QPairOfFilterFilter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_minMagFilters(
            self as *const crate::QOpenGLTexture,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the minification filter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::Filter QOpenGLTexture::minificationFilter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#minificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minification filter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinificationFilter">setMinificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn minification_filter(&self) -> crate::q_opengl_texture::Filter {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_minificationFilter(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the minimum level of detail parameter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QOpenGLTexture::minimumLevelOfDetail() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#minimumLevelOfDetail">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum level of detail parameter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinimumLevelOfDetail">setMinimumLevelOfDetail</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumLevelOfDetail">maximumLevelOfDetail</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#levelOfDetailRange">levelOfDetailRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn minimum_level_of_detail(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_minimumLevelOfDetail(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the mipmap base level used for all texture lookups with this texture. The default is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::mipBaseLevel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipBaseLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mipmap base level used for all texture lookups with this texture. The default is 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipBaseLevel">setMipBaseLevel</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipMaxLevel">mipMaxLevel</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevelRange">mipLevelRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mip_base_level(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_mipBaseLevel(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Returns the range of mipmap levels that can be used for texture lookups with this texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<int, int> QOpenGLTexture::mipLevelRange() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevelRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the range of mipmap levels that can be used for texture lookups with this texture.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevelRange">setMipLevelRange</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipBaseLevel">mipBaseLevel</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipMaxLevel">mipMaxLevel</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mip_level_range(&self) -> ::cpp_core::CppBox<crate::QPairOfIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_mipLevelRange(
            self as *const crate::QOpenGLTexture,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of mipmap levels for this texture. If storage has not yet been allocated for this texture it returns the requested number of mipmap levels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::mipLevels() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of mipmap levels for this texture. If storage has not yet been allocated for this texture it returns the requested number of mipmap levels.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevels">setMipLevels</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumMipLevels">maximumMipLevels</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mip_levels(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_mipLevels(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns the mipmap maximum level used for all texture lookups with this texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::mipMaxLevel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipMaxLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mipmap maximum level used for all texture lookups with this texture.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipMaxLevel">setMipMaxLevel</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipBaseLevel">mipBaseLevel</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevelRange">mipLevelRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mip_max_level(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_mipMaxLevel(
            self as *const crate::QOpenGLTexture,
        )
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object that can later be bound to <i>target</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLTexture::QOpenGLTexture(QOpenGLTexture::Target target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#QOpenGLTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object that can later be bound to <i>target</i>.</p>
    /// <p>This does not create the underlying OpenGL texture object. Therefore, construction using this constructor does not require a valid current OpenGL context.</p></div>
    #[inline(always)]
    pub unsafe fn from_target(
        target: crate::q_opengl_texture::Target,
    ) -> ::cpp_core::CppBox<crate::QOpenGLTexture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_QOpenGLTexture(target);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object that can later be bound to the 2D texture target and contains the pixel data contained in <i>image</i>. If you wish to have a chain of mipmaps generated then set <i>genMipMaps</i> to <code>true</code> (this is the default).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLTexture::QOpenGLTexture(const QImage& image, QOpenGLTexture::MipMapGeneration genMipMaps = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#QOpenGLTexture-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object that can later be bound to the 2D texture target and contains the pixel data contained in <i>image</i>. If you wish to have a chain of mipmaps generated then set <i>genMipMaps</i> to <code>true</code> (this is the default).</p>
    /// <p>This does create the underlying OpenGL texture object. Therefore, construction using this constructor does require a valid current OpenGL context.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_image_mip_map_generation(
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        gen_mip_maps: crate::q_opengl_texture::MipMapGeneration,
    ) -> ::cpp_core::CppBox<crate::QOpenGLTexture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_QOpenGLTexture1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            gen_mip_maps,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object that can later be bound to the 2D texture target and contains the pixel data contained in <i>image</i>. If you wish to have a chain of mipmaps generated then set <i>genMipMaps</i> to <code>true</code> (this is the default).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLTexture::QOpenGLTexture(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#QOpenGLTexture-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopengltexture.html">QOpenGLTexture</a> object that can later be bound to the 2D texture target and contains the pixel data contained in <i>image</i>. If you wish to have a chain of mipmaps generated then set <i>genMipMaps</i> to <code>true</code> (this is the default).</p>
    /// <p>This does create the underlying OpenGL texture object. Therefore, construction using this constructor does require a valid current OpenGL context.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_image(
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLTexture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_QOpenGLTexture3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Unbinds this texture from the currently active texture unit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::release()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#release">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unbinds this texture from the currently active texture unit.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn release_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_release(self as *mut crate::QOpenGLTexture)
    }

    /// <p>Unbinds this texture from texture unit <i>unit</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::release(unsigned int unit, QOpenGLTexture::TextureUnitReset reset = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#release-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unbinds this texture from texture unit <i>unit</i>.</p>
    /// <p>If parameter <i>reset</i> is <code>true</code> then this function will restore the active unit to the texture unit that was active upon entry.</p></div>
    #[inline(always)]
    pub unsafe fn release_2a(
        &mut self,
        unit: ::std::os::raw::c_uint,
        reset: crate::q_opengl_texture::TextureUnitReset,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_release1(
            self as *mut crate::QOpenGLTexture,
            unit,
            reset,
        )
    }

    /// <p>Unbinds this texture from texture unit <i>unit</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::release(unsigned int unit)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#release-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unbinds this texture from texture unit <i>unit</i>.</p>
    /// <p>If parameter <i>reset</i> is <code>true</code> then this function will restore the active unit to the texture unit that was active upon entry.</p></div>
    #[inline(always)]
    pub unsafe fn release_1a(&mut self, unit: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_release2(
            self as *mut crate::QOpenGLTexture,
            unit,
        )
    }

    /// <p>Returns the number of multisample sample points for this texture. If storage has not yet been allocated for this texture then this function returns the requested number of samples.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::samples() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#samples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of multisample sample points for this texture. If storage has not yet been allocated for this texture then this function returns the requested number of samples.</p>
    /// <p>For texture targets that do not support multisampling this will return 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setSamples">setSamples</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn samples(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_samples(self as *const crate::QOpenGLTexture)
    }

    /// <p>If <i>enabled</i> is <code>true</code>, enables automatic mipmap generation for this texture object to occur whenever the level 0 mipmap data is set via <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setAutoMipMapGenerationEnabled(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setAutoMipMapGenerationEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If <i>enabled</i> is <code>true</code>, enables automatic mipmap generation for this texture object to occur whenever the level 0 mipmap data is set via <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>().</p>
    /// <p>The automatic mipmap generation is enabled by default.</p>
    /// <p><b>Note: </b>Mipmap generation is not supported for compressed textures with OpenGL ES 2.0.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#isAutoMipMapGenerationEnabled">isAutoMipMapGenerationEnabled</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#generateMipMaps">generateMipMaps</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_auto_mip_map_generation_enabled(&mut self, enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setAutoMipMapGenerationEnabled(
            self as *mut crate::QOpenGLTexture,
            enabled,
        )
    }

    /// <p>Sets the border color of the texture to <i>color</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setBorderColor(QColor color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setBorderColor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the border color of the texture to <i>color</i>.</p>
    /// <p><b>Note: </b>This function has no effect on Mac and Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#borderColor">borderColor</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_border_color_q_color(
        &mut self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setBorderColor(
            self as *mut crate::QOpenGLTexture,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>Sets the color red to <i>r</i>, green to <i>g</i>, blue to <i>b</i>, and <i>a</i> to the alpha value. </p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setBorderColor(float r, float g, float b, float a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setBorderColor-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color red to <i>r</i>, green to <i>g</i>, blue to <i>b</i>, and <i>a</i> to the alpha value. </p><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_border_color_4_float(
        &mut self,
        r: ::std::os::raw::c_float,
        g: ::std::os::raw::c_float,
        b: ::std::os::raw::c_float,
        a: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setBorderColor1(
            self as *mut crate::QOpenGLTexture,
            r,
            g,
            b,
            a,
        )
    }

    /// <p>Sets the color red to <i>r</i>, green to <i>g</i>, blue to <i>b</i>, and the alpha value to <i>a</i>. </p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setBorderColor(int r, int g, int b, int a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setBorderColor-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color red to <i>r</i>, green to <i>g</i>, blue to <i>b</i>, and the alpha value to <i>a</i>. </p><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_border_color_4_int(
        &mut self,
        r: ::std::os::raw::c_int,
        g: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setBorderColor2(
            self as *mut crate::QOpenGLTexture,
            r,
            g,
            b,
            a,
        )
    }

    /// <p>Sets the color red to <i>r</i>, green to <i>g</i>, blue to <i>b</i>, and the alpha value to <i>a</i>. </p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setBorderColor(unsigned int r, unsigned int g, unsigned int b, unsigned int a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setBorderColor-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the color red to <i>r</i>, green to <i>g</i>, blue to <i>b</i>, and the alpha value to <i>a</i>. </p><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_border_color_4_uint(
        &mut self,
        r: ::std::os::raw::c_uint,
        g: ::std::os::raw::c_uint,
        b: ::std::os::raw::c_uint,
        a: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setBorderColor3(
            self as *mut crate::QOpenGLTexture,
            r,
            g,
            b,
            a,
        )
    }

    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#comparisonFunction">comparisonFunction</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setComparisonFunction(QOpenGLTexture::ComparisonFunction function)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setComparisonFunction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#comparisonFunction">comparisonFunction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_comparison_function(
        &mut self,
        function: crate::q_opengl_texture::ComparisonFunction,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setComparisonFunction(
            self as *mut crate::QOpenGLTexture,
            function,
        )
    }

    /// <p>Sets the texture comparison mode on this texture to <i>mode</i>. The texture comparison mode is used by shadow samplers when sampling a depth texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setComparisonMode(QOpenGLTexture::ComparisonMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setComparisonMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture comparison mode on this texture to <i>mode</i>. The texture comparison mode is used by shadow samplers when sampling a depth texture.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#comparisonMode">comparisonMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_comparison_mode(&mut self, mode: crate::q_opengl_texture::ComparisonMode) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setComparisonMode(
            self as *mut crate::QOpenGLTexture,
            mode,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    #[inline(always)]
    pub unsafe fn set_compressed_data_2_int_cube_map_face_int_void_q_opengl_pixel_transfer_options(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            cube_face,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int dataSize, void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    #[inline(always)]
    pub unsafe fn set_compressed_data_3_int_void_q_opengl_pixel_transfer_options(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData1(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int dataSize, void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    #[inline(always)]
    pub unsafe fn set_compressed_data_2_int_void_q_opengl_pixel_transfer_options(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData2(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int dataSize, void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    #[inline(always)]
    pub unsafe fn set_compressed_data_int_void_q_opengl_pixel_transfer_options(
        &mut self,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData3(
            self as *mut crate::QOpenGLTexture,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Uploads compressed pixel <i>data</i> to <i>mipLevel</i>, array <i>layer</i>, and <i>cubeFace</i>. The pixel transfer can optionally be controlled with <i>options</i>. The <i>dataSize</i> argument should specify the size of the data pointed to by <i>data</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uploads compressed pixel <i>data</i> to <i>mipLevel</i>, array <i>layer</i>, and <i>cubeFace</i>. The pixel transfer can optionally be controlled with <i>options</i>. The <i>dataSize</i> argument should specify the size of the data pointed to by <i>data</i>.</p>
    /// <p>If not using a compressed <a href="http://doc.qt.io/qt-5/qopengltexture.html#format">format</a>() then you should use <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() instead of this function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_2_int_cube_map_face_int_void_q_opengl_pixel_transfer_options2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData4(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            cube_face,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Parameter <i>layerCount</i> is the number of layers in a texture array that are being uploaded/populated by this call.</p>
    /// <p>This function was introduced in  Qt 5.9.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_3_int_cube_map_face_int_void_q_opengl_pixel_transfer_options(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        layer_count: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData5(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            layer_count,
            cube_face,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int dataSize, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_3_int_void_q_opengl_pixel_transfer_options2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData6(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int dataSize, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_2_int_void_q_opengl_pixel_transfer_options2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData7(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int dataSize, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_int_void_q_opengl_pixel_transfer_options2(
        &mut self,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData8(
            self as *mut crate::QOpenGLTexture,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn set_compressed_data_2_int_cube_map_face_int_void(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData9(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            cube_face,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int dataSize, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn set_compressed_data_3_int_void(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData10(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int dataSize, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn set_compressed_data_2_int_void(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData11(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int dataSize, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn set_compressed_data_int_void(
        &mut self,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData12(
            self as *mut crate::QOpenGLTexture,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Uploads compressed pixel <i>data</i> to <i>mipLevel</i>, array <i>layer</i>, and <i>cubeFace</i>. The pixel transfer can optionally be controlled with <i>options</i>. The <i>dataSize</i> argument should specify the size of the data pointed to by <i>data</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uploads compressed pixel <i>data</i> to <i>mipLevel</i>, array <i>layer</i>, and <i>cubeFace</i>. The pixel transfer can optionally be controlled with <i>options</i>. The <i>dataSize</i> argument should specify the size of the data pointed to by <i>data</i>.</p>
    /// <p>If not using a compressed <a href="http://doc.qt.io/qt-5/qopengltexture.html#format">format</a>() then you should use <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() instead of this function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_2_int_cube_map_face_int_void2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData13(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            cube_face,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Parameter <i>layerCount</i> is the number of layers in a texture array that are being uploaded/populated by this call.</p>
    /// <p>This function was introduced in  Qt 5.9.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_3_int_cube_map_face_int_void(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        layer_count: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData14(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            layer_count,
            cube_face,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int dataSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_3_int_void2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData15(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int mipLevel, int dataSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_2_int_void2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData16(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setCompressedData(int dataSize, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_compressed_data_int_void2(
        &mut self,
        data_size: ::std::os::raw::c_int,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setCompressedData17(
            self as *mut crate::QOpenGLTexture,
            data_size,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    #[inline(always)]
    pub unsafe fn set_data_2_int_cube_map_face_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            cube_face,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    #[inline(always)]
    pub unsafe fn set_data_2_int_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData1(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    #[inline(always)]
    pub unsafe fn set_data_int_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData2(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    #[inline(always)]
    pub unsafe fn set_data_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options(
        &mut self,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData3(
            self as *mut crate::QOpenGLTexture,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Uploads pixel <i>data</i> for this texture object <i>mipLevel</i>, array <i>layer</i>, and <i>cubeFace</i>. Storage must have been allocated before uploading pixel data. Some overloads of setData() will set appropriate dimensions, mipmap levels, and array layers and then allocate storage for you if they have enough information to do so. This will be noted in the function documentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uploads pixel <i>data</i> for this texture object <i>mipLevel</i>, array <i>layer</i>, and <i>cubeFace</i>. Storage must have been allocated before uploading pixel data. Some overloads of setData() will set appropriate dimensions, mipmap levels, and array layers and then allocate storage for you if they have enough information to do so. This will be noted in the function documentation.</p>
    /// <p>The structure of the pixel data pointed to by <i>data</i> is specified by <i>sourceFormat</i> and <i>sourceType</i>. The pixel data upload can optionally be controlled by <i>options</i>.</p>
    /// <p>If using a compressed <a href="http://doc.qt.io/qt-5/qopengltexture.html#format">format</a>() then you should use <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData">setCompressedData</a>() instead of this function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData">setCompressedData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data_2_int_cube_map_face_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData4(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            cube_face,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Parameter <i>layerCount</i> is the number of layers in a texture array that are being uploaded/populated by this call.</p>
    /// <p>This function was introduced in  Qt 5.9.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_3_int_cube_map_face_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        layer_count: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData5(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            layer_count,
            cube_face,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_2_int_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData6(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_int_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData7(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data, const QOpenGLPixelTransferOptions* options = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_pixel_format_pixel_type_void_q_opengl_pixel_transfer_options2(
        &mut self,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
        options: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData8(
            self as *mut crate::QOpenGLTexture,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QOpenGLPixelTransferOptions>>::cast_into(
                options,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This overload of <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() will allocate storage for you. The pixel data is contained in <i>image</i>. Mipmaps are generated by default. Set <i>genMipMaps</i> to <a href="http://doc.qt.io/qt-5/qopengltexture.html#MipMapGeneration-enum">DontGenerateMipMaps</a> to turn off mipmap generation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(const QImage& image, QOpenGLTexture::MipMapGeneration genMipMaps = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This overload of <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() will allocate storage for you. The pixel data is contained in <i>image</i>. Mipmaps are generated by default. Set <i>genMipMaps</i> to <a href="http://doc.qt.io/qt-5/qopengltexture.html#MipMapGeneration-enum">DontGenerateMipMaps</a> to turn off mipmap generation.</p>
    /// <p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_q_image_mip_map_generation(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        gen_mip_maps: crate::q_opengl_texture::MipMapGeneration,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData9(
            self as *mut crate::QOpenGLTexture,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            gen_mip_maps,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn set_data_2_int_cube_map_face_pixel_format_pixel_type_void(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData10(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            cube_face,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn set_data_2_int_pixel_format_pixel_type_void(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData11(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn set_data_int_pixel_format_pixel_type_void(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData12(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, void* data)```</span>.
    #[inline(always)]
    pub unsafe fn set_data_pixel_format_pixel_type_void(
        &mut self,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData13(
            self as *mut crate::QOpenGLTexture,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Uploads pixel <i>data</i> for this texture object <i>mipLevel</i>, array <i>layer</i>, and <i>cubeFace</i>. Storage must have been allocated before uploading pixel data. Some overloads of setData() will set appropriate dimensions, mipmap levels, and array layers and then allocate storage for you if they have enough information to do so. This will be noted in the function documentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Uploads pixel <i>data</i> for this texture object <i>mipLevel</i>, array <i>layer</i>, and <i>cubeFace</i>. Storage must have been allocated before uploading pixel data. Some overloads of setData() will set appropriate dimensions, mipmap levels, and array layers and then allocate storage for you if they have enough information to do so. This will be noted in the function documentation.</p>
    /// <p>The structure of the pixel data pointed to by <i>data</i> is specified by <i>sourceFormat</i> and <i>sourceType</i>. The pixel data upload can optionally be controlled by <i>options</i>.</p>
    /// <p>If using a compressed <a href="http://doc.qt.io/qt-5/qopengltexture.html#format">format</a>() then you should use <a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData">setCompressedData</a>() instead of this function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setCompressedData">setCompressedData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data_2_int_cube_map_face_pixel_format_pixel_type_void2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData14(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            cube_face,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Parameter <i>layerCount</i> is the number of layers in a texture array that are being uploaded/populated by this call.</p>
    /// <p>This function was introduced in  Qt 5.9.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_3_int_cube_map_face_pixel_format_pixel_type_void(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        layer_count: ::std::os::raw::c_int,
        cube_face: crate::q_opengl_texture::CubeMapFace,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData15(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            layer_count,
            cube_face,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_2_int_pixel_format_pixel_type_void2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        layer: ::std::os::raw::c_int,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData16(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            layer,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_int_pixel_format_pixel_type_void2(
        &mut self,
        mip_level: ::std::os::raw::c_int,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData17(
            self as *mut crate::QOpenGLTexture,
            mip_level,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 5.3.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_pixel_format_pixel_type_void2(
        &mut self,
        source_format: crate::q_opengl_texture::PixelFormat,
        source_type: crate::q_opengl_texture::PixelType,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData18(
            self as *mut crate::QOpenGLTexture,
            source_format,
            source_type,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::ffi::c_void>>::cast_into(data)
                .as_raw_ptr(),
        )
    }

    /// <p>This overload of <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() will allocate storage for you. The pixel data is contained in <i>image</i>. Mipmaps are generated by default. Set <i>genMipMaps</i> to <a href="http://doc.qt.io/qt-5/qopengltexture.html#MipMapGeneration-enum">DontGenerateMipMaps</a> to turn off mipmap generation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setData(const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This overload of <a href="http://doc.qt.io/qt-5/qopengltexture.html#setData">setData</a>() will allocate storage for you. The pixel data is contained in <i>image</i>. Mipmaps are generated by default. Set <i>genMipMaps</i> to <a href="http://doc.qt.io/qt-5/qopengltexture.html#MipMapGeneration-enum">DontGenerateMipMaps</a> to turn off mipmap generation.</p>
    /// <p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_q_image(
        &mut self,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setData19(
            self as *mut crate::QOpenGLTexture,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }

    /// <p>If using a texture that has a combined depth/stencil format this function sets which component of the texture is accessed to <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setDepthStencilMode(QOpenGLTexture::DepthStencilMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setDepthStencilMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If using a texture that has a combined depth/stencil format this function sets which component of the texture is accessed to <i>mode</i>.</p>
    /// <p>When the parameter is set to <a href="http://doc.qt.io/qt-5/qopengltexture.html#DepthStencilMode-enum">DepthMode</a>, then accessing it from the shader will access the depth component as a single float, as normal. But when the parameter is set to <a href="http://doc.qt.io/qt-5/qopengltexture.html#DepthStencilMode-enum">StencilMode</a>, the shader will access the stencil component.</p>
    /// <p><b>Note: </b>This function has no effect on Mac and Qt built for OpenGL ES 2.</p><p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#depthStencilMode">depthStencilMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_depth_stencil_mode(
        &mut self,
        mode: crate::q_opengl_texture::DepthStencilMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setDepthStencilMode(
            self as *mut crate::QOpenGLTexture,
            mode,
        )
    }

    /// <p>Sets whether the sample positions and number of samples used with a multisample capable texture target to <i>fixed</i>. If set to <code>true</code> the sample positions and number of samples used are the same for all texels in the image and will not depend upon the image size or internal format. This function should be called before storage is allocated for the texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setFixedSamplePositions(bool fixed)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setFixedSamplePositions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the sample positions and number of samples used with a multisample capable texture target to <i>fixed</i>. If set to <code>true</code> the sample positions and number of samples used are the same for all texels in the image and will not depend upon the image size or internal format. This function should be called before storage is allocated for the texture.</p>
    /// <p>For targets that do not support multisampling this function has no effect.</p>
    /// <p>The default value is <code>true</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#isFixedSamplePositions">isFixedSamplePositions</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_fixed_sample_positions(&mut self, fixed: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setFixedSamplePositions(
            self as *mut crate::QOpenGLTexture,
            fixed,
        )
    }

    /// <p>Sets the format of this texture object to <i>format</i>. This function must be called before texture storage is allocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setFormat(QOpenGLTexture::TextureFormat format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format of this texture object to <i>format</i>. This function must be called before texture storage is allocated.</p>
    /// <p>Note that all formats may not be supported. The exact set of supported formats is dependent upon your OpenGL implementation and version.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#format">format</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#allocateStorage">allocateStorage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(&mut self, format: crate::q_opengl_texture::TextureFormat) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setFormat(
            self as *mut crate::QOpenGLTexture,
            format,
        )
    }

    /// <p>Sets the number of array <i>layers</i> to allocate storage for. This function should be called before storage is allocated for the texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setLayers(int layers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setLayers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of array <i>layers</i> to allocate storage for. This function should be called before storage is allocated for the texture.</p>
    /// <p>For targets that do not support array layers this function has no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#layers">layers</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_layers(&mut self, layers: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setLayers(
            self as *mut crate::QOpenGLTexture,
            layers,
        )
    }

    /// <p>Sets the minimum level of detail parameters to <i>min</i> and the maximum level to <i>max</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setLevelOfDetailRange(float min, float max)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setLevelOfDetailRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the minimum level of detail parameters to <i>min</i> and the maximum level to <i>max</i>.</p>
    /// <p><b>Note: </b>This function has no effect on Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#levelOfDetailRange">levelOfDetailRange</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinimumLevelOfDetail">setMinimumLevelOfDetail</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMaximumLevelOfDetail">setMaximumLevelOfDetail</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_level_of_detail_range(
        &mut self,
        min: ::std::os::raw::c_float,
        max: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setLevelOfDetailRange(
            self as *mut crate::QOpenGLTexture,
            min,
            max,
        )
    }

    /// <p>Sets the level of detail bias to <i>bias</i>. Level of detail bias affects the point at which mipmapping levels change. Increasing values for level of detail bias makes the overall images blurrier or smoother. Decreasing values make the overall images sharper.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setLevelofDetailBias(float bias)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setLevelofDetailBias">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the level of detail bias to <i>bias</i>. Level of detail bias affects the point at which mipmapping levels change. Increasing values for level of detail bias makes the overall images blurrier or smoother. Decreasing values make the overall images sharper.</p>
    /// <p><b>Note: </b>This function has no effect on Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#levelofDetailBias">levelofDetailBias</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_levelof_detail_bias(&mut self, bias: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setLevelofDetailBias(
            self as *mut crate::QOpenGLTexture,
            bias,
        )
    }

    /// <p>Sets the magnification filter to <i>filter</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMagnificationFilter(QOpenGLTexture::Filter filter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMagnificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the magnification filter to <i>filter</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#magnificationFilter">magnificationFilter</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinificationFilter">setMinificationFilter</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinMagFilters">setMinMagFilters</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_magnification_filter(&mut self, filter: crate::q_opengl_texture::Filter) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMagnificationFilter(
            self as *mut crate::QOpenGLTexture,
            filter,
        )
    }

    /// <p>If your OpenGL implementation supports the GL_EXT_texture_filter_anisotropic extension this function sets the maximum anisotropy level to <i>anisotropy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMaximumAnisotropy(float anisotropy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMaximumAnisotropy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If your OpenGL implementation supports the GL_EXT_texture_filter_anisotropic extension this function sets the maximum anisotropy level to <i>anisotropy</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumAnisotropy">maximumAnisotropy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_maximum_anisotropy(&mut self, anisotropy: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMaximumAnisotropy(
            self as *mut crate::QOpenGLTexture,
            anisotropy,
        )
    }

    /// <p>Sets the maximum level of detail to <i>value</i>. This limits the selection of lowest resolution mipmap (highest mipmap level). The default value is 1000.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMaximumLevelOfDetail(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMaximumLevelOfDetail">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the maximum level of detail to <i>value</i>. This limits the selection of lowest resolution mipmap (highest mipmap level). The default value is 1000.</p>
    /// <p><b>Note: </b>This function has no effect on Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumLevelOfDetail">maximumLevelOfDetail</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinimumLevelOfDetail">setMinimumLevelOfDetail</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setLevelOfDetailRange">setLevelOfDetailRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_maximum_level_of_detail(&mut self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMaximumLevelOfDetail(
            self as *mut crate::QOpenGLTexture,
            value,
        )
    }

    /// <p>Sets the minification filter to <i>minificationFilter</i> and the magnification filter to <i>magnificationFilter</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMinMagFilters(QOpenGLTexture::Filter minificationFilter, QOpenGLTexture::Filter magnificationFilter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinMagFilters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the minification filter to <i>minificationFilter</i> and the magnification filter to <i>magnificationFilter</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#minMagFilters">minMagFilters</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinificationFilter">setMinificationFilter</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMagnificationFilter">setMagnificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_min_mag_filters(
        &mut self,
        minification_filter: crate::q_opengl_texture::Filter,
        magnification_filter: crate::q_opengl_texture::Filter,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMinMagFilters(
            self as *mut crate::QOpenGLTexture,
            minification_filter,
            magnification_filter,
        )
    }

    /// <p>Sets the filter used for minification to <i>filter</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMinificationFilter(QOpenGLTexture::Filter filter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the filter used for minification to <i>filter</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#minificationFilter">minificationFilter</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMagnificationFilter">setMagnificationFilter</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinMagFilters">setMinMagFilters</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_minification_filter(&mut self, filter: crate::q_opengl_texture::Filter) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMinificationFilter(
            self as *mut crate::QOpenGLTexture,
            filter,
        )
    }

    /// <p>Sets the minimum level of detail to <i>value</i>. This limits the selection of highest resolution mipmap (lowest mipmap level). The default value is -1000.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMinimumLevelOfDetail(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMinimumLevelOfDetail">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the minimum level of detail to <i>value</i>. This limits the selection of highest resolution mipmap (lowest mipmap level). The default value is -1000.</p>
    /// <p><b>Note: </b>This function has no effect on Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#minimumLevelOfDetail">minimumLevelOfDetail</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMaximumLevelOfDetail">setMaximumLevelOfDetail</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setLevelOfDetailRange">setLevelOfDetailRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_minimum_level_of_detail(&mut self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMinimumLevelOfDetail(
            self as *mut crate::QOpenGLTexture,
            value,
        )
    }

    /// <p>Sets the base mipmap level used for all texture lookups with this texture to <i>baseLevel</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMipBaseLevel(int baseLevel)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipBaseLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the base mipmap level used for all texture lookups with this texture to <i>baseLevel</i>.</p>
    /// <p><b>Note: </b>This function has no effect on Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#mipBaseLevel">mipBaseLevel</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipMaxLevel">setMipMaxLevel</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevelRange">setMipLevelRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mip_base_level(&mut self, base_level: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMipBaseLevel(
            self as *mut crate::QOpenGLTexture,
            base_level,
        )
    }

    /// <p>Sets the range of mipmap levels that can be used for texture lookups with this texture to range from <i>baseLevel</i> to <i>maxLevel</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMipLevelRange(int baseLevel, int maxLevel)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevelRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the range of mipmap levels that can be used for texture lookups with this texture to range from <i>baseLevel</i> to <i>maxLevel</i>.</p>
    /// <p><b>Note: </b>This function has no effect on Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipBaseLevel">setMipBaseLevel</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipMaxLevel">setMipMaxLevel</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevelRange">mipLevelRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mip_level_range(
        &mut self,
        base_level: ::std::os::raw::c_int,
        max_level: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMipLevelRange(
            self as *mut crate::QOpenGLTexture,
            base_level,
            max_level,
        )
    }

    /// <p>For texture targets that support mipmaps, this function sets the requested number of mipmap <i>levels</i> to allocate storage for. This function should be called before storage is allocated for the texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMipLevels(int levels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>For texture targets that support mipmaps, this function sets the requested number of mipmap <i>levels</i> to allocate storage for. This function should be called before storage is allocated for the texture.</p>
    /// <p>If the texture target does not support mipmaps this function has no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#mipLevels">mipLevels</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#maximumMipLevels">maximumMipLevels</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mip_levels(&mut self, levels: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMipLevels(
            self as *mut crate::QOpenGLTexture,
            levels,
        )
    }

    /// <p>Sets the maximum mipmap level used for all texture lookups with this texture to <i>maxLevel</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setMipMaxLevel(int maxLevel)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipMaxLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the maximum mipmap level used for all texture lookups with this texture to <i>maxLevel</i>.</p>
    /// <p><b>Note: </b>This function has no effect on Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#mipMaxLevel">mipMaxLevel</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipBaseLevel">setMipBaseLevel</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setMipLevelRange">setMipLevelRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mip_max_level(&mut self, max_level: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setMipMaxLevel(
            self as *mut crate::QOpenGLTexture,
            max_level,
        )
    }

    /// <p>Sets the number of <i>samples</i> to allocate storage for when rendering to a multisample capable texture target. This function should be called before storage is allocated for the texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setSamples(int samples)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSamples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of <i>samples</i> to allocate storage for when rendering to a multisample capable texture target. This function should be called before storage is allocated for the texture.</p>
    /// <p>For targets that do not support multisampling this function has no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#samples">samples</a>() and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isStorageAllocated">isStorageAllocated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_samples(&mut self, samples: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setSamples(
            self as *mut crate::QOpenGLTexture,
            samples,
        )
    }

    /// <p>Sets the dimensions of this texture object to <i>width</i>, <i>height</i>, and <i>depth</i>. The default for each dimension is 1. The maximum allowable texture size is dependent upon your OpenGL implementation. Allocating storage for a texture less than the maximum size can still fail if your system is low on resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setSize(int width, int height = …, int depth = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the dimensions of this texture object to <i>width</i>, <i>height</i>, and <i>depth</i>. The default for each dimension is 1. The maximum allowable texture size is dependent upon your OpenGL implementation. Allocating storage for a texture less than the maximum size can still fail if your system is low on resources.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#depth">depth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_size_3a(
        &mut self,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        depth: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setSize(
            self as *mut crate::QOpenGLTexture,
            width,
            height,
            depth,
        )
    }

    /// <p>Sets the dimensions of this texture object to <i>width</i>, <i>height</i>, and <i>depth</i>. The default for each dimension is 1. The maximum allowable texture size is dependent upon your OpenGL implementation. Allocating storage for a texture less than the maximum size can still fail if your system is low on resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setSize(int width, int height = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the dimensions of this texture object to <i>width</i>, <i>height</i>, and <i>depth</i>. The default for each dimension is 1. The maximum allowable texture size is dependent upon your OpenGL implementation. Allocating storage for a texture less than the maximum size can still fail if your system is low on resources.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#depth">depth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_size_2a(
        &mut self,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setSize1(
            self as *mut crate::QOpenGLTexture,
            width,
            height,
        )
    }

    /// <p>Sets the dimensions of this texture object to <i>width</i>, <i>height</i>, and <i>depth</i>. The default for each dimension is 1. The maximum allowable texture size is dependent upon your OpenGL implementation. Allocating storage for a texture less than the maximum size can still fail if your system is low on resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setSize(int width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the dimensions of this texture object to <i>width</i>, <i>height</i>, and <i>depth</i>. The default for each dimension is 1. The maximum allowable texture size is dependent upon your OpenGL implementation. Allocating storage for a texture less than the maximum size can still fail if your system is low on resources.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#depth">depth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_size_1a(&mut self, width: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setSize2(
            self as *mut crate::QOpenGLTexture,
            width,
        )
    }

    /// <p>GLSL shaders are able to reorder the components of the vec4 returned by texture functions. It is also desirable to be able to control this reordering from CPU side code. This is made possible by swizzle masks since OpenGL 3.3.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setSwizzleMask(QOpenGLTexture::SwizzleComponent component, QOpenGLTexture::SwizzleValue value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSwizzleMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>GLSL shaders are able to reorder the components of the vec4 returned by texture functions. It is also desirable to be able to control this reordering from CPU side code. This is made possible by swizzle masks since OpenGL 3.3.</p>
    /// <p>Each component of the texture can be mapped to one of the <a href="http://doc.qt.io/qt-5/qopengltexture.html#SwizzleValue-enum">SwizzleValue</a> options.</p>
    /// <p>This function maps <i>component</i> to the output <i>value</i>.</p>
    /// <p><b>Note: </b>This function has no effect on Mac and Qt built for OpenGL ES 2.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#swizzleMask">swizzleMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_swizzle_mask_2a(
        &mut self,
        component: crate::q_opengl_texture::SwizzleComponent,
        value: crate::q_opengl_texture::SwizzleValue,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setSwizzleMask(
            self as *mut crate::QOpenGLTexture,
            component,
            value,
        )
    }

    /// <p>Parameters <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i> are values used for setting the colors red, green, blue, and the alpha value. </p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setSwizzleMask(QOpenGLTexture::SwizzleValue r, QOpenGLTexture::SwizzleValue g, QOpenGLTexture::SwizzleValue b, QOpenGLTexture::SwizzleValue a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSwizzleMask-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Parameters <i>r</i>, <i>g</i>, <i>b</i>, and <i>a</i> are values used for setting the colors red, green, blue, and the alpha value. </p><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_swizzle_mask_4a(
        &mut self,
        r: crate::q_opengl_texture::SwizzleValue,
        g: crate::q_opengl_texture::SwizzleValue,
        b: crate::q_opengl_texture::SwizzleValue,
        a: crate::q_opengl_texture::SwizzleValue,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setSwizzleMask1(
            self as *mut crate::QOpenGLTexture,
            r,
            g,
            b,
            a,
        )
    }

    /// <p>Sets the wrap (or repeat mode) for all texture dimentions to <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setWrapMode(QOpenGLTexture::WrapMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setWrapMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap (or repeat mode) for all texture dimentions to <i>mode</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#wrapMode">wrapMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_wrap_mode_1a(&mut self, mode: crate::q_opengl_texture::WrapMode) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setWrapMode(
            self as *mut crate::QOpenGLTexture,
            mode,
        )
    }

    /// <p>Holds the texture dimension <i>direction</i>. </p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTexture::setWrapMode(QOpenGLTexture::CoordinateDirection direction, QOpenGLTexture::WrapMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#setWrapMode-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the texture dimension <i>direction</i>. </p><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_wrap_mode_2a(
        &mut self,
        direction: crate::q_opengl_texture::CoordinateDirection,
        mode: crate::q_opengl_texture::WrapMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_setWrapMode1(
            self as *mut crate::QOpenGLTexture,
            direction,
            mode,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the swizzle mask for texture <i>component</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::SwizzleValue QOpenGLTexture::swizzleMask(QOpenGLTexture::SwizzleComponent component) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#swizzleMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the swizzle mask for texture <i>component</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setSwizzleMask">setSwizzleMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swizzle_mask(
        &self,
        component: crate::q_opengl_texture::SwizzleComponent,
    ) -> crate::q_opengl_texture::SwizzleValue {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_swizzleMask(
            self as *const crate::QOpenGLTexture,
            component,
        )
    }

    /// <p>Returns the binding target of this texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::Target QOpenGLTexture::target() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#target">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the binding target of this texture.</p>
    /// <p>This function was introduced in  Qt 5.4.</p></div>
    #[inline(always)]
    pub unsafe fn target(&self) -> crate::q_opengl_texture::Target {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_target(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns the name of the underlying OpenGL texture object or 0 if it has not yet been created.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLTexture::textureId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#textureId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the name of the underlying OpenGL texture object or 0 if it has not yet been created.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#create">create</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#destroy">destroy</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#isCreated">isCreated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn texture_id(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_textureId(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns the width of a 1D, 2D or 3D texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTexture::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of a 1D, 2D or 3D texture.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#height">height</a>(), <a href="http://doc.qt.io/qt-5/qopengltexture.html#depth">depth</a>(), and <a href="http://doc.qt.io/qt-5/qopengltexture.html#setSize">setSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_width(self as *const crate::QOpenGLTexture)
    }

    /// <p>Returns the wrap mode for the texture dimension <i>direction</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::WrapMode QOpenGLTexture::wrapMode(QOpenGLTexture::CoordinateDirection direction) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#wrapMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the wrap mode for the texture dimension <i>direction</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltexture.html#setWrapMode">setWrapMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wrap_mode(
        &self,
        direction: crate::q_opengl_texture::CoordinateDirection,
    ) -> crate::q_opengl_texture::WrapMode {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_wrapMode(
            self as *const crate::QOpenGLTexture,
            direction,
        )
    }
}

pub mod q_opengl_texture_blitter {
    //! C++ type: <span style='color: green;'>```QOpenGLTextureBlitter```</span>

    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>().</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLTextureBlitter::Origin```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#Origin-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Origin(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Origin {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Origin(value)
        }
    }

    impl From<Origin> for ::std::os::raw::c_int {
        fn from(value: Origin) -> Self {
            value.0
        }
    }

    impl Origin {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Origin {
        /// Indicates that the data in the texture follows the OpenGL convention of coordinate systems, meaning Y is running from bottom to top. (C++ enum variant: <span style='color: green;'>```OriginBottomLeft = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const OriginBottomLeft: crate::q_opengl_texture_blitter::Origin =
            crate::q_opengl_texture_blitter::Origin(0);
        /// Indicates that the data in the texture has Y running from top to bottom, which is typical with regular, unflipped image data. (C++ enum variant: <span style='color: green;'>```OriginTopLeft = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const OriginTopLeft: crate::q_opengl_texture_blitter::Origin =
            crate::q_opengl_texture_blitter::Origin(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html">QOpenGLTextureBlitter</a> class provides a convenient way to draw textured quads via OpenGL.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLTextureBlitter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html">QOpenGLTextureBlitter</a> class provides a convenient way to draw textured quads via OpenGL.</p>
/// <p>Drawing textured quads, in order to get the contents of a texture onto the screen, is a common operation when developing 2D user interfaces. <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html">QOpenGLTextureBlitter</a> provides a convenience class to avoid repeating vertex data, shader sources, buffer and program management and matrix calculations.</p>
/// <p>For example, a <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a> subclass can do the following to draw the contents rendered into a framebuffer at the pixel position <code>(x, y)</code>:</p>
/// <pre class="cpp">
///
///   <span class="type">void</span> OpenGLWidget<span class="operator">::</span>initializeGL()
///   {
/// &#32;     m_blitter<span class="operator">.</span>create();
/// &#32;     m_fbo <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html">QOpenGLFramebufferObject</a></span>(size);
///   }
///
///   <span class="type">void</span> OpenGLWidget<span class="operator">::</span>paintGL()
///   {
/// &#32;     m_fbo<span class="operator">-</span><span class="operator">&gt;</span>bind();
/// &#32;     <span class="comment">// update offscreen content</span>
/// &#32;     m_fbo<span class="operator">-</span><span class="operator">&gt;</span>release();
///
/// &#32;     m_blitter<span class="operator">.</span>bind();
/// &#32;     <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> targetRect(<span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span>(x<span class="operator">,</span> y)<span class="operator">,</span> m_fbo<span class="operator">-</span><span class="operator">&gt;</span>size());
/// &#32;     <span class="keyword">const</span> QMatrix4x4 target <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#QOpenGLTextureBlitter">QOpenGLTextureBlitter</a></span><span class="operator">::</span>targetTransform(targetRect<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a></span>(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span>)<span class="operator">,</span> m_fbo<span class="operator">-</span><span class="operator">&gt;</span>size()));
/// &#32;     m_blitter<span class="operator">.</span>blit(m_fbo<span class="operator">-</span><span class="operator">&gt;</span>texture()<span class="operator">,</span> target<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#QOpenGLTextureBlitter">QOpenGLTextureBlitter</a></span><span class="operator">::</span>OriginBottomLeft);
/// &#32;     m_blitter<span class="operator">.</span>release();
///   }
///
/// </pre>
/// <p>The blitter implements GLSL shaders both for GLSL 1.00 (suitable for OpenGL (ES) 2.x and compatibility profiles of newer OpenGL versions) and version 150 (suitable for core profile contexts with OpenGL 3.2 and newer).</p></div>
#[repr(C)]
pub struct QOpenGLTextureBlitter {
    _unused: u8,
}
impl QOpenGLTextureBlitter {
    /// <p>Binds the graphics resources used by the blitter. This must be called before calling <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>(). Code modifying the OpenGL state should be avoided between the call to bind() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>() because otherwise conflicts may arise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTextureBlitter::bind(unsigned int target = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#bind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds the graphics resources used by the blitter. This must be called before calling <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>(). Code modifying the OpenGL state should be avoided between the call to bind() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>() because otherwise conflicts may arise.</p>
    /// <p><i>target</i> is the texture target for the source texture and must be either <code>GL_TEXTURE_2D</code> or <code>GL_OES_EGL_image_external</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#release">release</a>() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_1a(&mut self, target: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_bind(
            self as *mut crate::QOpenGLTextureBlitter,
            target,
        )
    }

    /// <p>Binds the graphics resources used by the blitter. This must be called before calling <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>(). Code modifying the OpenGL state should be avoided between the call to bind() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>() because otherwise conflicts may arise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTextureBlitter::bind()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#bind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds the graphics resources used by the blitter. This must be called before calling <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>(). Code modifying the OpenGL state should be avoided between the call to bind() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>() because otherwise conflicts may arise.</p>
    /// <p><i>target</i> is the texture target for the source texture and must be either <code>GL_TEXTURE_2D</code> or <code>GL_OES_EGL_image_external</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#release">release</a>() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bind_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_bind1(
            self as *mut crate::QOpenGLTextureBlitter,
        )
    }

    /// <p>Performs the blit with the source texture <i>texture</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTextureBlitter::blit(GLuint texture, const QMatrix4x4& targetTransform, QOpenGLTextureBlitter::Origin sourceOrigin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Performs the blit with the source texture <i>texture</i>.</p>
    /// <p><i>targetTransform</i> specifies the transformation applied. This is usually generated by the <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#targetTransform">targetTransform</a>() helper function.</p>
    /// <p><i>sourceOrigin</i> specifies if the image data needs flipping. When <i>texture</i> corresponds to a texture attached to an FBO pass <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#Origin-enum">OriginBottomLeft</a>. On the other hand, when <i>texture</i> is based on unflipped image data, pass <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#Origin-enum">OriginTopLeft</a>. This is more efficient than using <a href="http://doc.qt.io/qt-5/qimage.html#mirrored">QImage::mirrored</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#targetTransform">targetTransform</a>(), <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#Origin-enum">Origin</a>, and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn blit(
        &mut self,
        texture: u32,
        target_transform: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
        source_origin: crate::q_opengl_texture_blitter::Origin,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_blit(
            self as *mut crate::QOpenGLTextureBlitter,
            texture,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(target_transform)
                .as_raw_ptr(),
            source_origin,
        )
    }

    /// <p>Initializes the graphics resources used by the blitter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTextureBlitter::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Initializes the graphics resources used by the blitter.</p>
    /// <p>Returns <code>true</code> if successful, <code>false</code> if there was a failure. Failures can occur when there is no OpenGL context current on the current thread, or when shader compilation fails for some reason.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#isCreated">isCreated</a>() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#destroy">destroy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_create(
            self as *mut crate::QOpenGLTextureBlitter,
        )
    }

    /// <p>Frees all graphics resources held by the blitter. Assumes that the OpenGL context, or another context sharing resources with it, that was current on the thread when invoking <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">create</a>() is current.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTextureBlitter::destroy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#destroy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Frees all graphics resources held by the blitter. Assumes that the OpenGL context, or another context sharing resources with it, that was current on the thread when invoking <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">create</a>() is current.</p>
    /// <p>The function has no effect when the blitter is not in created state.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn destroy(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_destroy(
            self as *mut crate::QOpenGLTextureBlitter,
        )
    }

    /// <p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">create</a>() was called and succeeded. <code>false</code> otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTextureBlitter::isCreated() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#isCreated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">create</a>() was called and succeeded. <code>false</code> otherwise.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">create</a>() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#destroy">destroy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_created(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_isCreated(
            self as *const crate::QOpenGLTextureBlitter,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html">QOpenGLTextureBlitter</a> instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLTextureBlitter::QOpenGLTextureBlitter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#QOpenGLTextureBlitter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html">QOpenGLTextureBlitter</a> instance.</p>
    /// <p><b>Note: </b>no graphics resources are initialized in the constructor. This makes it safe to place plain <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html">QOpenGLTextureBlitter</a> members into classes because the actual initialization that depends on the OpenGL context happens only in <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QOpenGLTextureBlitter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_QOpenGLTextureBlitter();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Unbinds the graphics resources used by the blitter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTextureBlitter::release()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#release">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unbinds the graphics resources used by the blitter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#bind">bind</a>().</p></div>
    #[inline(always)]
    pub unsafe fn release(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_release(
            self as *mut crate::QOpenGLTextureBlitter,
        )
    }

    /// <p>Changes the opacity to <i>opacity</i>. The default opacity is 1.0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTextureBlitter::setOpacity(float opacity)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#setOpacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Changes the opacity to <i>opacity</i>. The default opacity is 1.0.</p>
    /// <p><b>Note: </b>the blitter does not alter the blend state. It is up to the caller of <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>() to ensure the correct blend settings are active.</p></div>
    #[inline(always)]
    pub unsafe fn set_opacity(&mut self, opacity: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_setOpacity(
            self as *mut crate::QOpenGLTextureBlitter,
            opacity,
        )
    }

    /// <p>Sets whether swizzling is enabled for the red and blue color channels to <i>swizzle</i>. An BGRA to RGBA conversion (occurring in the shader on the GPU, instead of a slow CPU-side transformation) can be useful when the source texture contains data from a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> with a format like <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_ARGB32</a> which maps to BGRA on little endian systems.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTextureBlitter::setRedBlueSwizzle(bool swizzle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#setRedBlueSwizzle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether swizzling is enabled for the red and blue color channels to <i>swizzle</i>. An BGRA to RGBA conversion (occurring in the shader on the GPU, instead of a slow CPU-side transformation) can be useful when the source texture contains data from a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> with a format like <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_ARGB32</a> which maps to BGRA on little endian systems.</p>
    /// <p>By default the red-blue swizzle is disabled since this is what a texture attached to an framebuffer object or a texture based on a byte ordered <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> format (like <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_RGBA8888</a>) needs.</p></div>
    #[inline(always)]
    pub unsafe fn set_red_blue_swizzle(&mut self, swizzle: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_setRedBlueSwizzle(
            self as *mut crate::QOpenGLTextureBlitter,
            swizzle,
        )
    }

    /// <p>Returns <code>true</code> when <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#bind">bind</a>() accepts <code>GL_TEXTURE_EXTERNAL_OES</code> as its target argument.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTextureBlitter::supportsExternalOESTarget() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#supportsExternalOESTarget">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> when <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#bind">bind</a>() accepts <code>GL_TEXTURE_EXTERNAL_OES</code> as its target argument.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#bind">bind</a>() and <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supports_external_o_e_s_target(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_supportsExternalOESTarget(
            self as *const crate::QOpenGLTextureBlitter,
        )
    }

    /// <p>Calculates a target transform suitable for <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QMatrix4x4 QOpenGLTextureBlitter::targetTransform(const QRectF& target, const QRect& viewport)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#targetTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Calculates a target transform suitable for <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>().</p>
    /// <p><i>target</i> is the target rectangle in pixels. <i>viewport</i> describes the source dimensions and will in most cases be set to (0, 0, image width, image height).</p>
    /// <p>For unscaled output the size of <i>target</i> and <i>viewport</i> should match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#blit">blit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn target_transform(
        target: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        viewport: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_targetTransform(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(target)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(viewport)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> class wraps an OpenGL timer query object.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLTimerQuery```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> class wraps an OpenGL timer query object.</p>
/// <p>OpenGL timer query objects are OpenGL managed resources to measure the execution times of sequences of OpenGL commands on the GPU.</p>
/// <p>OpenGL offers various levels of support for timer queries, depending on the version of OpenGL you have and the presence of the ARB_timer_query or EXT_timer_query extensions. The support can be summarized as:</p>
/// <ul>
/// <li>OpenGL &gt;=3.3 offers full support for all timer query functionality.</li>
/// <li>OpenGL 3.2 with the ARB_timer_query extension offers full support for all timer query functionality.</li>
/// <li>OpenGL &lt;=3.2 with the EXT_timer_query extension offers limited support in that the timestamp of the GPU cannot be queried. Places where this impacts functions provided by Qt classes will be highlighted in the function documentation.</li>
/// <li>OpenGL ES 2 (and OpenGL ES 3) do not provide any support for OpenGL timer queries.</li>
/// </ul>
/// <p>OpenGL represents time with a granularity of 1 nanosecond (1e-9 seconds). As a consequence of this, 32-bit integers would only give a total possible duration of approximately 4 seconds, which would not be difficult to exceed in poorly performing or lengthy operations. OpenGL therefore uses 64 bit integer types to represent times. A GLuint64 variable has enough width to contain a duration of hundreds of years, which is plenty for real-time rendering needs.</p>
/// <p>As with the other Qt OpenGL classes, <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> has a <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#create">create</a>() function to create the underlying OpenGL object. This is to allow the developer to ensure that there is a valid current OpenGL context at the time.</p>
/// <p>Once created, timer queries can be issued in one of several ways. The simplest method is to delimit a block of commands with calls to <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>(). This instructs OpenGL to measure the time taken from completing all commands issued prior to <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>() until the completion of all commands issued prior to <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>().</p>
/// <p>At the end of a frame we can retrieve the results by calling <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(). As this function's name implies, it blocks CPU execution until OpenGL notifies that the timer query result is available. To avoid blocking, you can check if the query result is available by calling <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>(). Note that modern GPUs are deeply pipelined and query results may not become available for between 1-5 frames after they were issued.</p>
/// <p>Note that OpenGL does not permit nesting or interleaving of multiple timer queries using <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>(). Using multiple timer queries and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>() avoids this limitation. When using <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>() the result can be obtained at some later time using <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>() and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(). Qt provides the convenience class <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> that helps with using multiple query objects.</p></div>
#[repr(C)]
pub struct QOpenGLTimerQuery {
    _unused: u8,
}
impl QOpenGLTimerQuery {
    /// <p>Marks the start point in the OpenGL command queue for a sequence of commands to be timed by this query object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimerQuery::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the start point in the OpenGL command queue for a sequence of commands to be timed by this query object.</p>
    /// <p>This is useful for simple use-cases. Usually it is better to use <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(), and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_begin(self as *mut crate::QOpenGLTimerQuery)
    }

    /// <p>Creates the underlying OpenGL timer query object. There must be a valid OpenGL context that supports query objects current for this function to succeed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTimerQuery::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates the underlying OpenGL timer query object. There must be a valid OpenGL context that supports query objects current for this function to succeed.</p>
    /// <p>Returns <code>true</code> if the OpenGL timer query object was successfully created.</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_create(self as *mut crate::QOpenGLTimerQuery)
    }

    /// <p>Destroys the underlying OpenGL timer query object. The context that was current when <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#create">create</a>() was called must be current when calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimerQuery::destroy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#destroy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the underlying OpenGL timer query object. The context that was current when <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#create">create</a>() was called must be current when calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn destroy(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_destroy(
            self as *mut crate::QOpenGLTimerQuery,
        )
    }

    /// <p>Marks the end point in the OpenGL command queue for a sequence of commands to be timed by this query object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimerQuery::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the end point in the OpenGL command queue for a sequence of commands to be timed by this query object.</p>
    /// <p>This is useful for simple use-cases. Usually it is better to use <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(), and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_end(self as *mut crate::QOpenGLTimerQuery)
    }

    /// <p>Returns <code>true</code> if the underlying OpenGL query object has been created. If this returns <code>true</code> and the associated OpenGL context is current, then you are able to issue queries with this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTimerQuery::isCreated() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isCreated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the underlying OpenGL query object has been created. If this returns <code>true</code> and the associated OpenGL context is current, then you are able to issue queries with this object.</p></div>
    #[inline(always)]
    pub unsafe fn is_created(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_isCreated(
            self as *const crate::QOpenGLTimerQuery,
        )
    }

    /// <p>Returns <code>true</code> if the OpenGL timer query result is available.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTimerQuery::isResultAvailable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the OpenGL timer query result is available.</p>
    /// <p>This function is non-blocking and ideally should be used to check for the availability of the query result before calling <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_result_available(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_isResultAvailable(
            self as *const crate::QOpenGLTimerQuery,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLTimerQuery::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_metaObject(
            self as *const crate::QOpenGLTimerQuery,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> instance with the given <i>parent</i>. You must call <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#create">create</a>() with a valid OpenGL context before using.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLTimerQuery::QOpenGLTimerQuery(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#QOpenGLTimerQuery">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> instance with the given <i>parent</i>. You must call <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#create">create</a>() with a valid OpenGL context before using.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLTimerQuery> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_QOpenGLTimerQuery(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> class wraps an OpenGL timer query object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLTimerQuery::QOpenGLTimerQuery()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> class wraps an OpenGL timer query object.</p>
    /// <p>OpenGL timer query objects are OpenGL managed resources to measure the execution times of sequences of OpenGL commands on the GPU.</p>
    /// <p>OpenGL offers various levels of support for timer queries, depending on the version of OpenGL you have and the presence of the ARB_timer_query or EXT_timer_query extensions. The support can be summarized as:</p>
    /// <ul>
    /// <li>OpenGL &gt;=3.3 offers full support for all timer query functionality.</li>
    /// <li>OpenGL 3.2 with the ARB_timer_query extension offers full support for all timer query functionality.</li>
    /// <li>OpenGL &lt;=3.2 with the EXT_timer_query extension offers limited support in that the timestamp of the GPU cannot be queried. Places where this impacts functions provided by Qt classes will be highlighted in the function documentation.</li>
    /// <li>OpenGL ES 2 (and OpenGL ES 3) do not provide any support for OpenGL timer queries.</li>
    /// </ul>
    /// <p>OpenGL represents time with a granularity of 1 nanosecond (1e-9 seconds). As a consequence of this, 32-bit integers would only give a total possible duration of approximately 4 seconds, which would not be difficult to exceed in poorly performing or lengthy operations. OpenGL therefore uses 64 bit integer types to represent times. A GLuint64 variable has enough width to contain a duration of hundreds of years, which is plenty for real-time rendering needs.</p>
    /// <p>As with the other Qt OpenGL classes, <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> has a <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#create">create</a>() function to create the underlying OpenGL object. This is to allow the developer to ensure that there is a valid current OpenGL context at the time.</p>
    /// <p>Once created, timer queries can be issued in one of several ways. The simplest method is to delimit a block of commands with calls to <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>(). This instructs OpenGL to measure the time taken from completing all commands issued prior to <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>() until the completion of all commands issued prior to <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>().</p>
    /// <p>At the end of a frame we can retrieve the results by calling <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(). As this function's name implies, it blocks CPU execution until OpenGL notifies that the timer query result is available. To avoid blocking, you can check if the query result is available by calling <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>(). Note that modern GPUs are deeply pipelined and query results may not become available for between 1-5 frames after they were issued.</p>
    /// <p>Note that OpenGL does not permit nesting or interleaving of multiple timer queries using <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>(). Using multiple timer queries and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>() avoids this limitation. When using <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>() the result can be obtained at some later time using <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>() and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(). Qt provides the convenience class <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> that helps with using multiple query objects.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLTimerQuery> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_QOpenGLTimerQuery1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the id of the underlying OpenGL query object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLTimerQuery::objectId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#objectId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the id of the underlying OpenGL query object.</p></div>
    #[inline(always)]
    pub unsafe fn object_id(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_objectId(
            self as *const crate::QOpenGLTimerQuery,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLTimerQuery::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_qt_metacall(
            self as *mut crate::QOpenGLTimerQuery,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLTimerQuery::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_qt_metacast(
            self as *mut crate::QOpenGLTimerQuery,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Places a marker in the OpenGL command queue for the GPU to record the timestamp when this marker is reached by the GPU. This function is non-blocking and the result will become available at some later time.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimerQuery::recordTimestamp()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Places a marker in the OpenGL command queue for the GPU to record the timestamp when this marker is reached by the GPU. This function is non-blocking and the result will become available at some later time.</p>
    /// <p>The availability of the result can be checked with <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>(). The result can be fetched with <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>() which will block if the result is not yet available.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>(), and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn record_timestamp(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_recordTimestamp(
            self as *mut crate::QOpenGLTimerQuery,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLTimerQuery::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLTimerQuery::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the result of the OpenGL timer query.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64 QOpenGLTimerQuery::waitForResult() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the result of the OpenGL timer query.</p>
    /// <p>This function will block until the result is made available by OpenGL. It is recommended to call <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>() to ensure that the result is available to avoid unnecessary blocking and stalling.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wait_for_result(&self) -> u64 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_waitForResult(
            self as *const crate::QOpenGLTimerQuery,
        )
    }

    /// <p>Returns the current timestamp of the GPU when all previously issued OpenGL commands have been received but not necessarily executed by the GPU.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64 QOpenGLTimerQuery::waitForTimestamp() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForTimestamp">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current timestamp of the GPU when all previously issued OpenGL commands have been received but not necessarily executed by the GPU.</p>
    /// <p>This function blocks until the result is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wait_for_timestamp(&self) -> u64 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_waitForTimestamp(
            self as *const crate::QOpenGLTimerQuery,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> class wraps a sequence of OpenGL timer query objects.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLTimeMonitor```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> class wraps a sequence of OpenGL timer query objects.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> class is a convenience wrapper around a collection of OpenGL timer query objects used to measure intervals of time on the GPU to the level of granularity required by your rendering application.</p>
/// <p>The OpenGL timer queries objects are queried in sequence to record the GPU timestamps at positions of interest in your rendering code. Once the results for all issues timer queries become available, the results can be fetched and QOpenGLTimerMonitor will calculate the recorded time intervals for you.</p>
/// <p>The typical use case of this class is to either profile your application's rendering algorithms or to adjust those algorithms in real-time for dynamic performance/quality balancing.</p>
/// <p>Prior to using <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> in your rendering function you should set the required number of sample points that you wish to record by calling setSamples(). Note that measuring N sample points will produce N-1 time intervals. Once you have set the number of sample points, call the <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>() function with a valid current OpenGL context to create the necessary query timer objects. These steps are usually performed just once in an initialization function.</p>
/// <p>Use the <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>() function to delimit blocks of code containing OpenGL commands that you wish to time. You can check availability of the resulting time samples and time intervals with <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isResultAvailable">isResultAvailable</a>(). The calculated time intervals and the raw timestamp samples can be retrieved with the blocking <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForIntervals">waitForIntervals</a>() and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForSamples">waitForSamples</a>() functions respectively.</p>
/// <p>After retrieving the results and before starting a new round of taking samples (for example, in the next frame) be sure to call the <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#reset">reset</a>() function which will clear the cached results and reset the timer index back to the first timer object.</p></div>
#[repr(C)]
pub struct QOpenGLTimeMonitor {
    _unused: u8,
}
impl QOpenGLTimeMonitor {
    /// <p>Instantiate <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#sampleCount">sampleCount</a>() OpenGL timer query objects that will be used to track the amount of time taken to execute OpenGL commands between successive calls to <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTimeMonitor::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Instantiate <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#sampleCount">sampleCount</a>() OpenGL timer query objects that will be used to track the amount of time taken to execute OpenGL commands between successive calls to <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>().</p>
    /// <p>Returns <code>true</code> if the OpenGL timer query objects could be created.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#destroy">destroy</a>(), <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">setSampleCount</a>(), and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_create(
            self as *mut crate::QOpenGLTimeMonitor,
        )
    }

    /// <p>Destroys any OpenGL timer query objects used within this instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimeMonitor::destroy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#destroy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys any OpenGL timer query objects used within this instance.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn destroy(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_destroy(
            self as *mut crate::QOpenGLTimeMonitor,
        )
    }

    /// <p>Returns <code>true</code> if the underlying OpenGL query objects have been created. If this returns <code>true</code> and the associated OpenGL context is current, then you are able to record time samples with this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTimeMonitor::isCreated() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isCreated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the underlying OpenGL query objects have been created. If this returns <code>true</code> and the associated OpenGL context is current, then you are able to record time samples with this object.</p></div>
    #[inline(always)]
    pub unsafe fn is_created(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_isCreated(
            self as *const crate::QOpenGLTimeMonitor,
        )
    }

    /// <p>Returns <code>true</code> if the OpenGL timer query results are available.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLTimeMonitor::isResultAvailable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isResultAvailable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the OpenGL timer query results are available.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForSamples">waitForSamples</a>() and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForIntervals">waitForIntervals</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_result_available(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_isResultAvailable(
            self as *const crate::QOpenGLTimeMonitor,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLTimeMonitor::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_metaObject(
            self as *const crate::QOpenGLTimeMonitor,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> instance with the given <i>parent</i>. You must call <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>() with a valid OpenGL context before using.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLTimeMonitor::QOpenGLTimeMonitor(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#QOpenGLTimeMonitor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> instance with the given <i>parent</i>. You must call <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>() with a valid OpenGL context before using.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">setSampleCount</a>() and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLTimeMonitor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_QOpenGLTimeMonitor(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> class wraps a sequence of OpenGL timer query objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLTimeMonitor::QOpenGLTimeMonitor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> class wraps a sequence of OpenGL timer query objects.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> class is a convenience wrapper around a collection of OpenGL timer query objects used to measure intervals of time on the GPU to the level of granularity required by your rendering application.</p>
    /// <p>The OpenGL timer queries objects are queried in sequence to record the GPU timestamps at positions of interest in your rendering code. Once the results for all issues timer queries become available, the results can be fetched and QOpenGLTimerMonitor will calculate the recorded time intervals for you.</p>
    /// <p>The typical use case of this class is to either profile your application's rendering algorithms or to adjust those algorithms in real-time for dynamic performance/quality balancing.</p>
    /// <p>Prior to using <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> in your rendering function you should set the required number of sample points that you wish to record by calling setSamples(). Note that measuring N sample points will produce N-1 time intervals. Once you have set the number of sample points, call the <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>() function with a valid current OpenGL context to create the necessary query timer objects. These steps are usually performed just once in an initialization function.</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>() function to delimit blocks of code containing OpenGL commands that you wish to time. You can check availability of the resulting time samples and time intervals with <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isResultAvailable">isResultAvailable</a>(). The calculated time intervals and the raw timestamp samples can be retrieved with the blocking <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForIntervals">waitForIntervals</a>() and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForSamples">waitForSamples</a>() functions respectively.</p>
    /// <p>After retrieving the results and before starting a new round of taking samples (for example, in the next frame) be sure to call the <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#reset">reset</a>() function which will clear the cached results and reset the timer index back to the first timer object.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLTimeMonitor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_QOpenGLTimeMonitor1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> containing the object Ids of the OpenGL timer query objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint> QOpenGLTimeMonitor::objectIds() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#objectIds">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> containing the object Ids of the OpenGL timer query objects.</p></div>
    #[inline(always)]
    pub unsafe fn object_ids(&self) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_objectIds(
            self as *const crate::QOpenGLTimeMonitor,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLTimeMonitor::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_qt_metacall(
            self as *mut crate::QOpenGLTimeMonitor,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLTimeMonitor::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_qt_metacast(
            self as *mut crate::QOpenGLTimeMonitor,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Issues an OpenGL timer query at this point in the OpenGL command queue. Calling this function in a sequence in your application's rendering function, will build up details of the GPU time taken to execute the OpenGL commands between successive calls to this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTimeMonitor::recordSample()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Issues an OpenGL timer query at this point in the OpenGL command queue. Calling this function in a sequence in your application's rendering function, will build up details of the GPU time taken to execute the OpenGL commands between successive calls to this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">setSampleCount</a>(), <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isResultAvailable">isResultAvailable</a>(), <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForSamples">waitForSamples</a>(), and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForIntervals">waitForIntervals</a>().</p></div>
    #[inline(always)]
    pub unsafe fn record_sample(&mut self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_recordSample(
            self as *mut crate::QOpenGLTimeMonitor,
        )
    }

    /// <p>Resets the time monitor ready for use in another frame of rendering. Call this once you have obtained the previous results and before calling <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>() for the first time on the next frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimeMonitor::reset()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#reset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resets the time monitor ready for use in another frame of rendering. Call this once you have obtained the previous results and before calling <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>() for the first time on the next frame.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reset(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_reset(
            self as *mut crate::QOpenGLTimeMonitor,
        )
    }

    /// <p>Returns the number of sample points that have been requested with <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">setSampleCount</a>(). If create was successfully called following <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">setSampleCount</a>(), then the value returned will be the actual number of sample points that can be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLTimeMonitor::sampleCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#sampleCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of sample points that have been requested with <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">setSampleCount</a>(). If create was successfully called following <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">setSampleCount</a>(), then the value returned will be the actual number of sample points that can be used.</p>
    /// <p>The default value for sample count is 2, leading to the measurement of a single interval.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">setSampleCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn sample_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_sampleCount(
            self as *const crate::QOpenGLTimeMonitor,
        )
    }

    /// <p>Sets the number of sample points to <i>sampleCount</i>. After setting the number of samples with this function, you must call <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>() to instantiate the underlying OpenGL timer query objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimeMonitor::setSampleCount(int sampleCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#setSampleCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of sample points to <i>sampleCount</i>. After setting the number of samples with this function, you must call <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>() to instantiate the underlying OpenGL timer query objects.</p>
    /// <p>The new <i>sampleCount</i> must be at least 2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#sampleCount">sampleCount</a>(), <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#create">create</a>(), and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_sample_count(&mut self, sample_count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_setSampleCount(
            self as *mut crate::QOpenGLTimeMonitor,
            sample_count,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLTimeMonitor::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLTimeMonitor::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> containing the time intervals delimited by the calls to <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>(). The resulting vector will contain one fewer element as this represents the intervening intervals rather than the actual timestamp samples.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64> QOpenGLTimeMonitor::waitForIntervals() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForIntervals">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> containing the time intervals delimited by the calls to <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>(). The resulting vector will contain one fewer element as this represents the intervening intervals rather than the actual timestamp samples.</p>
    /// <p>This function will block until OpenGL indicates the results are available. It is recommended to check the availability of the result prior to calling this function with <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isResultAvailable">isResultAvailable</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForSamples">waitForSamples</a>() and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isResultAvailable">isResultAvailable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wait_for_intervals(&self) -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_waitForIntervals(
            self as *const crate::QOpenGLTimeMonitor,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> containing the GPU timestamps taken with <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64> QOpenGLTimeMonitor::waitForSamples() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForSamples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> containing the GPU timestamps taken with <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#recordSample">recordSample</a>().</p>
    /// <p>This function will block until OpenGL indicates the results are available. It is recommended to check the availability of the result prior to calling this function with <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isResultAvailable">isResultAvailable</a>().</p>
    /// <p><b>Note: </b>This function only works on systems that have OpenGL &gt;=3.3 or the ARB_timer_query extension. See <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> for more details.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#waitForIntervals">waitForIntervals</a>() and <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#isResultAvailable">isResultAvailable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wait_for_samples(&self) -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_waitForSamples(
            self as *const crate::QOpenGLTimeMonitor,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_opengl_vertex_array_object {
    //! C++ type: <span style='color: green;'>```QOpenGLVertexArrayObject```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html">QOpenGLVertexArrayObject::Binder</a> class is a convenience class to help with the binding and releasing of OpenGL Vertex Array Objects.</p>
    ///
    /// C++ class: <span style='color: green;'>```QOpenGLVertexArrayObject::Binder```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html">QOpenGLVertexArrayObject::Binder</a> class is a convenience class to help with the binding and releasing of OpenGL Vertex Array Objects.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html">QOpenGLVertexArrayObject::Binder</a> is a simple convenience class that can be used to assist with the binding and releasing of <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> instances. This class is to <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> as <a href="http://doc.qt.io/qt-5/qmutexlocker.html">QMutexLocker</a> is to <a href="http://doc.qt.io/qt-5/qmutex.html">QMutex</a>.</p>
    /// <p>This class implements the RAII principle which helps to ensure behavior in complex code or in the presence of exceptions.</p>
    /// <p>The constructor of this class accepts a <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> (VAO) as an argument and attempts to bind the VAO, calling <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#create">QOpenGLVertexArrayObject::create</a>() if necessary. The destructor of this class calls <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#release">QOpenGLVertexArrayObject::release</a>() which unbinds the VAO.</p>
    /// <p>If needed the VAO can be temporarily unbound with the <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html#release">release</a>() function and bound once more with <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html#rebind">rebind</a>().</p></div>
    #[repr(C)]
    pub struct Binder {
        _unused: u8,
    }
    impl Binder {
        /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html">QOpenGLVertexArrayObject::Binder</a> object and binds <i>v</i> by calling <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#bind">QOpenGLVertexArrayObject::bind</a>(). If necessary it first calls <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#create">QOpenGLVertexArrayObject::create</a>().</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLVertexArrayObject::Binder::Binder(QOpenGLVertexArrayObject* v)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html#Binder">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html">QOpenGLVertexArrayObject::Binder</a> object and binds <i>v</i> by calling <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#bind">QOpenGLVertexArrayObject::bind</a>(). If necessary it first calls <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#create">QOpenGLVertexArrayObject::create</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new(
            v: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLVertexArrayObject>>,
        ) -> ::cpp_core::CppBox<crate::q_opengl_vertex_array_object::Binder> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_Binder_Binder(::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLVertexArrayObject>>::cast_into(v).as_mut_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Can be used to rebind the associated vertex array object.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```void QOpenGLVertexArrayObject::Binder::rebind()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html#rebind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Can be used to rebind the associated vertex array object.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html#release">release</a>().</p></div>
        #[inline(always)]
        pub unsafe fn rebind(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_Binder_rebind(
                self as *mut crate::q_opengl_vertex_array_object::Binder,
            )
        }

        /// <p>Can be used to temporarily release the associated vertex array object.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```void QOpenGLVertexArrayObject::Binder::release()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html#release">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Can be used to temporarily release the associated vertex array object.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html#rebind">rebind</a>().</p></div>
        #[inline(always)]
        pub unsafe fn release(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_Binder_release(
                self as *mut crate::q_opengl_vertex_array_object::Binder,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_opengl_vertex_array_object::Binder {
        /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html">QOpenGLVertexArrayObject::Binder</a> and releases the associated vertex array object.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLVertexArrayObject::Binder::~Binder()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html#dtor.Binder">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject-binder.html">QOpenGLVertexArrayObject::Binder</a> and releases the associated vertex array object.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_Binder_dBinder(
                self as *mut crate::q_opengl_vertex_array_object::Binder,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> class wraps an OpenGL Vertex Array Object.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLVertexArrayObject```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> class wraps an OpenGL Vertex Array Object.</p>
/// <p>A Vertex Array Object (VAO) is an OpenGL container object that encapsulates the state needed to specify per-vertex attribute data to the OpenGL pipeline. To put it another way, a VAO remembers the states of buffer objects (see <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a>) and their associated state (e.g. vertex attribute divisors). This allows a very easy and efficient method of switching between OpenGL buffer states for rendering different "objects" in a scene. The <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> class is a thin wrapper around an OpenGL VAO.</p>
/// <p>For the desktop, VAOs are supported as a core feature in OpenGL 3.0 or newer and by the GL_ARB_vertex_array_object for older versions. On OpenGL ES 2, VAOs are provided by the optional GL_OES_vertex_array_object extension. You can check the version of OpenGL with QOpenGLContext::surfaceFormat() and check for the presence of extensions with <a href="http://doc.qt.io/qt-5/qopenglcontext.html#hasExtension">QOpenGLContext::hasExtension</a>().</p>
/// <p>As with the other Qt OpenGL classes, <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> has a <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#create">create</a>() function to create the underlying OpenGL object. This is to allow the developer to ensure that there is a valid current OpenGL context at the time.</p>
/// <p>Once you have successfully created a VAO the typical usage pattern is:</p>
/// <ul>
/// <li>In scene initialization function, for each visual object:<ul>
/// <li>Bind the VAO</li>
/// <li>Set vertex data state for this visual object (vertices, normals, texture coordinates etc.)</li>
/// <li>Unbind (<a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#release">release</a>()) the VAO</li>
/// </ul>
/// </li>
/// <li>In render function, for each visual object:<ul>
/// <li>Bind the VAO (and shader program if needed)</li>
/// <li>Call a glDraw*() function</li>
/// <li>Unbind (<a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#release">release</a>()) the VAO</li>
/// </ul>
/// </li>
/// </ul>
/// <p>The act of binding the VAO in the render function has the effect of restoring all of the vertex data state setup in the initialization phase. In this way we can set a great deal of state when setting up a VAO and efficiently switch between state sets of objects to be rendered. Using VAOs also allows the OpenGL driver to amortise the validation checks of the vertex data.</p>
/// <p><b>Note: </b>Vertex Array Objects, like all other OpenGL container objects, are specific to the context for which they were created and cannot be shared amongst a context group.</p></div>
#[repr(C)]
pub struct QOpenGLVertexArrayObject {
    _unused: u8,
}
impl QOpenGLVertexArrayObject {
    /// <p>Binds this vertex array object to the OpenGL binding point. From this point on and until <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#release">release</a>() is called or another vertex array object is bound, any modifications made to vertex data state are stored inside this vertex array object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLVertexArrayObject::bind()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#bind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Binds this vertex array object to the OpenGL binding point. From this point on and until <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#release">release</a>() is called or another vertex array object is bound, any modifications made to vertex data state are stored inside this vertex array object.</p>
    /// <p>If another vertex array object is then bound you can later restore the set of state associated with this object by calling bind() on this object once again. This allows efficient changes between vertex data states in rendering functions.</p></div>
    #[inline(always)]
    pub unsafe fn bind(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_bind(
            self as *mut crate::QOpenGLVertexArrayObject,
        )
    }

    /// <p>Creates the underlying OpenGL vertex array object. There must be a valid OpenGL context that supports vertex array objects current for this function to succeed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLVertexArrayObject::create()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates the underlying OpenGL vertex array object. There must be a valid OpenGL context that supports vertex array objects current for this function to succeed.</p>
    /// <p>Returns <code>true</code> if the OpenGL vertex array object was successfully created.</p>
    /// <p>When the return value is <code>false</code>, vertex array object support is not available. This is not an error: on systems with OpenGL 2.x or OpenGL ES 2.0 vertex array objects may not be supported. The application is free to continue execution in this case, but it then has to be prepared to operate in a VAO-less manner too. This means that instead of merely calling <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#bind">bind</a>(), the value of <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#isCreated">isCreated</a>() must be checked and the vertex arrays has to be initialized in the traditional way when there is no vertex array object present.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#isCreated">isCreated</a>().</p></div>
    #[inline(always)]
    pub unsafe fn create(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_create(
            self as *mut crate::QOpenGLVertexArrayObject,
        )
    }

    /// <p>Destroys the underlying OpenGL vertex array object. There must be a valid OpenGL context that supports vertex array objects current for this function to succeed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLVertexArrayObject::destroy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#destroy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the underlying OpenGL vertex array object. There must be a valid OpenGL context that supports vertex array objects current for this function to succeed.</p></div>
    #[inline(always)]
    pub unsafe fn destroy(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_destroy(
            self as *mut crate::QOpenGLVertexArrayObject,
        )
    }

    /// <p>Returns <code>true</code> is the underlying OpenGL vertex array object has been created. If this returns <code>true</code> and the associated OpenGL context is current, then you are able to <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#bind">bind</a>() this object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLVertexArrayObject::isCreated() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#isCreated">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> is the underlying OpenGL vertex array object has been created. If this returns <code>true</code> and the associated OpenGL context is current, then you are able to <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#bind">bind</a>() this object.</p></div>
    #[inline(always)]
    pub unsafe fn is_created(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_isCreated(
            self as *const crate::QOpenGLVertexArrayObject,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLVertexArrayObject::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_metaObject(
            self as *const crate::QOpenGLVertexArrayObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> with the given <i>parent</i>. You must call <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#create">create</a>() with a valid OpenGL context before using.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLVertexArrayObject::QOpenGLVertexArrayObject(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#QOpenGLVertexArrayObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> with the given <i>parent</i>. You must call <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#create">create</a>() with a valid OpenGL context before using.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLVertexArrayObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_QOpenGLVertexArrayObject(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                    .as_mut_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> class wraps an OpenGL Vertex Array Object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLVertexArrayObject::QOpenGLVertexArrayObject()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> class wraps an OpenGL Vertex Array Object.</p>
    /// <p>A Vertex Array Object (VAO) is an OpenGL container object that encapsulates the state needed to specify per-vertex attribute data to the OpenGL pipeline. To put it another way, a VAO remembers the states of buffer objects (see <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a>) and their associated state (e.g. vertex attribute divisors). This allows a very easy and efficient method of switching between OpenGL buffer states for rendering different "objects" in a scene. The <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> class is a thin wrapper around an OpenGL VAO.</p>
    /// <p>For the desktop, VAOs are supported as a core feature in OpenGL 3.0 or newer and by the GL_ARB_vertex_array_object for older versions. On OpenGL ES 2, VAOs are provided by the optional GL_OES_vertex_array_object extension. You can check the version of OpenGL with QOpenGLContext::surfaceFormat() and check for the presence of extensions with <a href="http://doc.qt.io/qt-5/qopenglcontext.html#hasExtension">QOpenGLContext::hasExtension</a>().</p>
    /// <p>As with the other Qt OpenGL classes, <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> has a <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#create">create</a>() function to create the underlying OpenGL object. This is to allow the developer to ensure that there is a valid current OpenGL context at the time.</p>
    /// <p>Once you have successfully created a VAO the typical usage pattern is:</p>
    /// <ul>
    /// <li>In scene initialization function, for each visual object:<ul>
    /// <li>Bind the VAO</li>
    /// <li>Set vertex data state for this visual object (vertices, normals, texture coordinates etc.)</li>
    /// <li>Unbind (<a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#release">release</a>()) the VAO</li>
    /// </ul>
    /// </li>
    /// <li>In render function, for each visual object:<ul>
    /// <li>Bind the VAO (and shader program if needed)</li>
    /// <li>Call a glDraw*() function</li>
    /// <li>Unbind (<a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#release">release</a>()) the VAO</li>
    /// </ul>
    /// </li>
    /// </ul>
    /// <p>The act of binding the VAO in the render function has the effect of restoring all of the vertex data state setup in the initialization phase. In this way we can set a great deal of state when setting up a VAO and efficiently switch between state sets of objects to be rendered. Using VAOs also allows the OpenGL driver to amortise the validation checks of the vertex data.</p>
    /// <p><b>Note: </b>Vertex Array Objects, like all other OpenGL container objects, are specific to the context for which they were created and cannot be shared amongst a context group.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QOpenGLVertexArrayObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_QOpenGLVertexArrayObject1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the id of the underlying OpenGL vertex array object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLVertexArrayObject::objectId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#objectId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the id of the underlying OpenGL vertex array object.</p></div>
    #[inline(always)]
    pub unsafe fn object_id(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_objectId(
            self as *const crate::QOpenGLVertexArrayObject,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLVertexArrayObject::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_qt_metacall(
            self as *mut crate::QOpenGLVertexArrayObject,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLVertexArrayObject::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_qt_metacast(
            self as *mut crate::QOpenGLVertexArrayObject,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Unbinds this vertex array object by binding the default vertex array object (id = 0).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLVertexArrayObject::release()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#release">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unbinds this vertex array object by binding the default vertex array object (id = 0).</p></div>
    #[inline(always)]
    pub unsafe fn release(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_release(
            self as *mut crate::QOpenGLVertexArrayObject,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLVertexArrayObject::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLVertexArrayObject::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Convenience subclass of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> that is also a <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a>.</p>
///
/// C++ class: <span style='color: green;'>```QPaintDeviceWindow```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience subclass of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> that is also a <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html">QPaintDeviceWindow</a> is like a regular <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>, with the added functionality of being a paint device too. Whenever the content needs to be updated, the virtual <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#paintEvent">paintEvent</a>() function is called. Subclasses, that reimplement this function, can then simply open a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on the window.</p>
/// <p><b>Note: </b>This class cannot directly be used in applications. It rather serves as a base for subclasses like <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>.</p></div>
#[repr(C)]
pub struct QPaintDeviceWindow {
    _unused: u8,
}
impl QPaintDeviceWindow {
    /// <p>Marks the entire window as dirty and schedules a repaint.</p>
    ///
    /// Returns a built-in Qt slot `QPaintDeviceWindow::update` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the entire window as dirty and schedules a repaint.</p>
    /// <p><b>Note: </b>Subsequent calls to this function before the next paint event will get ignored.</p><p><b>Note: </b>For non-exposed windows the update is deferred until the window becomes exposed again.</p></div>
    #[inline(always)]
    pub fn slot_update(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1update()\0"),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QPaintDeviceWindow::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_metaObject(
            self as *const crate::QPaintDeviceWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QPaintDeviceWindow::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_qt_metacall(
            self as *mut crate::QPaintDeviceWindow,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QPaintDeviceWindow::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_qt_metacast(
            self as *mut crate::QPaintDeviceWindow,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QPaintDeviceWindow::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QPaintDeviceWindow::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Marks the <i>rect</i> of the window as dirty and schedules a repaint.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPaintDeviceWindow::update(const QRect& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the <i>rect</i> of the window as dirty and schedules a repaint.</p>
    /// <p><b>Note: </b>Subsequent calls to this function before the next paint event will get ignored, but <i>rect</i> is added to the region to update.</p><p><b>Note: </b>For non-exposed windows the update is deferred until the window becomes exposed again.</p></div>
    #[inline(always)]
    pub unsafe fn update_q_rect(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_update(
            self as *mut crate::QPaintDeviceWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>Marks the <i>region</i> of the window as dirty and schedules a repaint.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPaintDeviceWindow::update(const QRegion& region)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the <i>region</i> of the window as dirty and schedules a repaint.</p>
    /// <p><b>Note: </b>Subsequent calls to this function before the next paint event will get ignored, but <i>region</i> is added to the region to update.</p><p><b>Note: </b>For non-exposed windows the update is deferred until the window becomes exposed again.</p></div>
    #[inline(always)]
    pub unsafe fn update_q_region(
        &mut self,
        region: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_update1(
            self as *mut crate::QPaintDeviceWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(region).as_raw_ptr(),
        )
    }

    /// <p>Marks the entire window as dirty and schedules a repaint.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QPaintDeviceWindow::update()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the entire window as dirty and schedules a repaint.</p>
    /// <p><b>Note: </b>Subsequent calls to this function before the next paint event will get ignored.</p><p><b>Note: </b>For non-exposed windows the update is deferred until the window becomes exposed again.</p></div>
    #[inline(always)]
    pub unsafe fn update(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_update2(
            self as *mut crate::QPaintDeviceWindow,
        )
    }
}

pub mod q_opengl_window {
    //! C++ type: <span style='color: green;'>```QOpenGLWindow```</span>

    /// <p>This enum describes the update strategy of the <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QOpenGLWindow::UpdateBehavior```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#UpdateBehavior-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the update strategy of the <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct UpdateBehavior(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for UpdateBehavior {
        fn from(value: ::std::os::raw::c_int) -> Self {
            UpdateBehavior(value)
        }
    }

    impl From<UpdateBehavior> for ::std::os::raw::c_int {
        fn from(value: UpdateBehavior) -> Self {
            value.0
        }
    }

    impl UpdateBehavior {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl UpdateBehavior {
        /// Indicates that the entire window surface will redrawn on each update and so no additional framebuffers are needed. This is the setting used in most cases and is equivalent to how drawing directly via <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> would function. (C++ enum variant: <span style='color: green;'>```NoPartialUpdate = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const NoPartialUpdate: crate::q_opengl_window::UpdateBehavior =
            crate::q_opengl_window::UpdateBehavior(0);
        /// Indicates that the drawing performed in <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>() does not cover the entire window. In this case an extra framebuffer object is created under the hood, and rendering performed in <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>() will target this framebuffer. This framebuffer is then blitted onto the window surface's default framebuffer after each paint. This allows having <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>-based drawing code in <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>() which only repaints a smaller area at a time, because, unlike NoPartialUpdate, the previous content is preserved. (C++ enum variant: <span style='color: green;'>```PartialUpdateBlit = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PartialUpdateBlit: crate::q_opengl_window::UpdateBehavior =
            crate::q_opengl_window::UpdateBehavior(1);
        /// Similar to PartialUpdateBlit, but instead of using framebuffer blits, the contents of the extra framebuffer is rendered by drawing a textured quad with blending enabled. This, unlike PartialUpdateBlit, allows alpha blended content and works even when the glBlitFramebuffer is not available. Performance-wise this setting is likely to be somewhat slower than PartialUpdateBlit. (C++ enum variant: <span style='color: green;'>```PartialUpdateBlend = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const PartialUpdateBlend: crate::q_opengl_window::UpdateBehavior =
            crate::q_opengl_window::UpdateBehavior(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> class is a convenience subclass of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> to perform OpenGL painting.</p>
///
/// C++ class: <span style='color: green;'>```QOpenGLWindow```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qopenglwindow.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> class is a convenience subclass of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> to perform OpenGL painting.</p>
/// <p><a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> is an enhanced <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> that allows easily creating windows that perform OpenGL rendering using an API that is compatible with <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a> and is similar to the legacy QGLWidget. Unlike <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a>, <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> has no dependency on the widgets module and offers better performance.</p>
/// <p>A typical application will subclass <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> and reimplement the following virtual functions:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qopenglwindow.html#initializeGL">initializeGL</a>() to perform OpenGL resource initialization</li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglwindow.html#resizeGL">resizeGL</a>() to set up the transformation matrices and other window size dependent resources</li>
/// <li><a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>() to issue OpenGL commands or draw using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></li>
/// </ul>
/// <p>To schedule a repaint, call the <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">update</a>() function. Note that this will not immediately result in a call to <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>(). Calling <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">update</a>() multiple times in a row will not change the behavior in any way.</p>
/// <p>This is a slot so it can be connected to a <a href="http://doc.qt.io/qt-5/qtimer.html#timeout">QTimer::timeout</a>() signal to perform animation. Note however that in the modern OpenGL world it is a much better choice to rely on synchronization to the vertical refresh rate of the display. See <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setSwapInterval">setSwapInterval()</a> on a description of the swap interval. With a swap interval of <code>1</code>, which is the case on most systems by default, the <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">swapBuffers()</a> call, that is executed internally by <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> after each repaint, will block and wait for vsync. This means that whenever the swap is done, an update can be scheduled again by calling <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">update</a>(), without relying on timers.</p>
/// <p>To request a specific configuration for the context, use <a href="http://doc.qt.io/qt-5/qwindow.html#setFormat">setFormat</a>() like for any other <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>. This allows, among others, requesting a given OpenGL version and profile, or enabling depth and stencil buffers.</p>
/// <p>Unlike <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>, <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> allows opening a painter on itself and perform <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>-based drawing.</p>
/// <p><a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> supports multiple update behaviors. The default, <code>NoPartialUpdate</code> is equivalent to a regular, OpenGL-based <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> or the legacy QGLWidget. In contrast, <code>PartialUpdateBlit</code> and <code>PartialUpdateBlend</code> are more in line with <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a>'s way of working, where there is always an extra, dedicated framebuffer object present. These modes allow, by sacrificing some performance, redrawing only a smaller area on each paint and having the rest of the content preserved from of the previous frame. This is useful for applications than render incrementally using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>, because this way they do not have to redraw the entire window content on each <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>() call.</p>
/// <p>Similarly to <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a>, <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> supports the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_ShareOpenGLContexts</a> attribute. When enabled, the OpenGL contexts of all <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> instances will share with each other. This allows accessing each other's shareable OpenGL resources.</p>
/// <p>For more information on graphics in Qt, see <a href="http://doc.qt.io/qt-5/graphicsview.html">Graphics</a>.</p></div>
#[repr(C)]
pub struct QOpenGLWindow {
    _unused: u8,
}
impl QOpenGLWindow {
    /// <p>This signal is emitted after the potentially blocking <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">buffer swap</a> has been done. Applications that wish to continuously repaint synchronized to the vertical refresh, should issue an <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">update</a>() upon this signal. This allows for a much smoother experience compared to the traditional usage of timers.</p>
    ///
    /// Returns a built-in Qt signal `QOpenGLWindow::frameSwapped` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#frameSwapped">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted after the potentially blocking <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">buffer swap</a> has been done. Applications that wish to continuously repaint synchronized to the vertical refresh, should issue an <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">update</a>() upon this signal. This allows for a much smoother experience compared to the traditional usage of timers.</p></div>
    #[inline(always)]
    pub fn frame_swapped(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2frameSwapped()\0"),
            )
        }
    }

    /// <p>Returns The <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> used by this window or <code>0</code> if not yet initialized.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* QOpenGLWindow::context() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#context">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns The <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> used by this window or <code>0</code> if not yet initialized.</p></div>
    #[inline(always)]
    pub unsafe fn context(&self) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_context(self as *const crate::QOpenGLWindow);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>The framebuffer object handle used by this window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint QOpenGLWindow::defaultFramebufferObject() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#defaultFramebufferObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The framebuffer object handle used by this window.</p>
    /// <p>When the update behavior is set to <code>NoPartialUpdate</code>, there is no separate framebuffer object. In this case the returned value is the ID of the default framebuffer.</p>
    /// <p>Otherwise the value of the ID of the framebuffer object or <code>0</code> if not yet initialized.</p></div>
    #[inline(always)]
    pub unsafe fn default_framebuffer_object(&self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_defaultFramebufferObject(
            self as *const crate::QOpenGLWindow,
        )
    }

    /// <p>Releases the context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLWindow::doneCurrent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#doneCurrent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases the context.</p>
    /// <p>It is not necessary to call this function in most cases, since the widget will make sure the context is bound and released properly when invoking <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglwindow.html#makeCurrent">makeCurrent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn done_current(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_doneCurrent(self as *mut crate::QOpenGLWindow)
    }

    /// <p>Returns a 32-bit RGB image of the framebuffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage QOpenGLWindow::grabFramebuffer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#grabFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a 32-bit RGB image of the framebuffer.</p>
    /// <p><b>Note: </b>This is a potentially expensive operation because it relies on glReadPixels() to read back the pixels. This may be slow and can stall the GPU pipeline.</p><p><b>Note: </b>When used together with update behavior <code>NoPartialUpdate</code>, the returned image may not contain the desired content when called after the front and back buffers have been swapped (unless preserved swap is enabled in the underlying windowing system interface). In this mode the function reads from the back buffer and the contents of that may not match the content on the screen (the front buffer). In this case the only place where this function can safely be used is <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>() or <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintOverGL">paintOverGL</a>().</p></div>
    #[inline(always)]
    pub unsafe fn grab_framebuffer(&mut self) -> ::cpp_core::CppBox<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_grabFramebuffer(
            self as *mut crate::QOpenGLWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the window's OpenGL resources, like the context, have been successfully initialized. Note that the return value is always <code>false</code> until the window becomes exposed (shown).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLWindow::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the window's OpenGL resources, like the context, have been successfully initialized. Note that the return value is always <code>false</code> until the window becomes exposed (shown).</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_isValid(self as *const crate::QOpenGLWindow)
    }

    /// <p>Prepares for rendering OpenGL content for this window by making the corresponding context current and binding the framebuffer object, if there is one, in that context context.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLWindow::makeCurrent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#makeCurrent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Prepares for rendering OpenGL content for this window by making the corresponding context current and binding the framebuffer object, if there is one, in that context context.</p>
    /// <p>It is not necessary to call this function in most cases, because it is called automatically before invoking <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>(). It is provided nonetheless to support advanced, multi-threaded scenarios where a thread different than the GUI or main thread may want to update the surface or framebuffer contents. See <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> for more information on threading related issues.</p>
    /// <p>This function is suitable for calling also when the underlying platform window is already destroyed. This means that it is safe to call this function from a <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> subclass' destructor. If there is no native window anymore, an offscreen surface is used instead. This ensures that OpenGL resource cleanup operations in the destructor will always work, as long as this function is called first.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>, <a href="http://doc.qt.io/qt-5/qopenglwindow.html#context">context</a>(), <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>(), and <a href="http://doc.qt.io/qt-5/qopenglwindow.html#doneCurrent">doneCurrent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn make_current(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_makeCurrent(self as *mut crate::QOpenGLWindow)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QOpenGLWindow::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_metaObject(
            self as *const crate::QOpenGLWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLWindow::QOpenGLWindow(QOpenGLWindow::UpdateBehavior updateBehavior = …, QWindow* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#QOpenGLWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglwindow.html#UpdateBehavior-enum">QOpenGLWindow::UpdateBehavior</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_update_behavior_q_window(
        update_behavior: crate::q_opengl_window::UpdateBehavior,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_QOpenGLWindow(
            update_behavior,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>. The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>'s context will share with <i>shareContext</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLWindow::QOpenGLWindow(QOpenGLContext* shareContext, QOpenGLWindow::UpdateBehavior updateBehavior = …, QWindow* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#QOpenGLWindow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>. The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>'s context will share with <i>shareContext</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglwindow.html#UpdateBehavior-enum">QOpenGLWindow::UpdateBehavior</a> and <a href="http://doc.qt.io/qt-5/qopenglwindow.html#shareContext">shareContext</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_opengl_context_update_behavior_q_window(
        share_context: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
        update_behavior: crate::q_opengl_window::UpdateBehavior,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_QOpenGLWindow1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(
                share_context,
            )
            .as_mut_raw_ptr(),
            update_behavior,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> class is a convenience subclass of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> to perform OpenGL painting.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLWindow::QOpenGLWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> class is a convenience subclass of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> to perform OpenGL painting.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> is an enhanced <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> that allows easily creating windows that perform OpenGL rendering using an API that is compatible with <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a> and is similar to the legacy QGLWidget. Unlike <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a>, <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> has no dependency on the widgets module and offers better performance.</p>
    /// <p>A typical application will subclass <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> and reimplement the following virtual functions:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglwindow.html#initializeGL">initializeGL</a>() to perform OpenGL resource initialization</li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglwindow.html#resizeGL">resizeGL</a>() to set up the transformation matrices and other window size dependent resources</li>
    /// <li><a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>() to issue OpenGL commands or draw using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></li>
    /// </ul>
    /// <p>To schedule a repaint, call the <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">update</a>() function. Note that this will not immediately result in a call to <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>(). Calling <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">update</a>() multiple times in a row will not change the behavior in any way.</p>
    /// <p>This is a slot so it can be connected to a <a href="http://doc.qt.io/qt-5/qtimer.html#timeout">QTimer::timeout</a>() signal to perform animation. Note however that in the modern OpenGL world it is a much better choice to rely on synchronization to the vertical refresh rate of the display. See <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setSwapInterval">setSwapInterval()</a> on a description of the swap interval. With a swap interval of <code>1</code>, which is the case on most systems by default, the <a href="http://doc.qt.io/qt-5/qopenglcontext.html#swapBuffers">swapBuffers()</a> call, that is executed internally by <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> after each repaint, will block and wait for vsync. This means that whenever the swap is done, an update can be scheduled again by calling <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#update-2">update</a>(), without relying on timers.</p>
    /// <p>To request a specific configuration for the context, use <a href="http://doc.qt.io/qt-5/qwindow.html#setFormat">setFormat</a>() like for any other <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>. This allows, among others, requesting a given OpenGL version and profile, or enabling depth and stencil buffers.</p>
    /// <p>Unlike <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>, <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> allows opening a painter on itself and perform <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>-based drawing.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> supports multiple update behaviors. The default, <code>NoPartialUpdate</code> is equivalent to a regular, OpenGL-based <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> or the legacy QGLWidget. In contrast, <code>PartialUpdateBlit</code> and <code>PartialUpdateBlend</code> are more in line with <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a>'s way of working, where there is always an extra, dedicated framebuffer object present. These modes allow, by sacrificing some performance, redrawing only a smaller area on each paint and having the rest of the content preserved from of the previous frame. This is useful for applications than render incrementally using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>, because this way they do not have to redraw the entire window content on each <a href="http://doc.qt.io/qt-5/qopenglwindow.html#paintGL">paintGL</a>() call.</p>
    /// <p>Similarly to <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a>, <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> supports the <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_ShareOpenGLContexts</a> attribute. When enabled, the OpenGL contexts of all <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> instances will share with each other. This allows accessing each other's shareable OpenGL resources.</p>
    /// <p>For more information on graphics in Qt, see <a href="http://doc.qt.io/qt-5/graphicsview.html">Graphics</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_QOpenGLWindow2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLWindow::QOpenGLWindow(QOpenGLWindow::UpdateBehavior updateBehavior = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#QOpenGLWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglwindow.html#UpdateBehavior-enum">QOpenGLWindow::UpdateBehavior</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_update_behavior(
        update_behavior: crate::q_opengl_window::UpdateBehavior,
    ) -> ::cpp_core::CppBox<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_QOpenGLWindow3(update_behavior);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>. The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>'s context will share with <i>shareContext</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLWindow::QOpenGLWindow(QOpenGLContext* shareContext, QOpenGLWindow::UpdateBehavior updateBehavior = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#QOpenGLWindow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>. The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>'s context will share with <i>shareContext</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglwindow.html#UpdateBehavior-enum">QOpenGLWindow::UpdateBehavior</a> and <a href="http://doc.qt.io/qt-5/qopenglwindow.html#shareContext">shareContext</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_opengl_context_update_behavior(
        share_context: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
        update_behavior: crate::q_opengl_window::UpdateBehavior,
    ) -> ::cpp_core::CppBox<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_QOpenGLWindow4(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(
                share_context,
            )
            .as_mut_raw_ptr(),
            update_behavior,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>. The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>'s context will share with <i>shareContext</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QOpenGLWindow::QOpenGLWindow(QOpenGLContext* shareContext)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#QOpenGLWindow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> with the given <i>parent</i> and <i>updateBehavior</i>. The <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>'s context will share with <i>shareContext</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglwindow.html#UpdateBehavior-enum">QOpenGLWindow::UpdateBehavior</a> and <a href="http://doc.qt.io/qt-5/qopenglwindow.html#shareContext">shareContext</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_opengl_context(
        share_context: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QOpenGLContext>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_QOpenGLWindow5(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QOpenGLContext>>::cast_into(
                share_context,
            )
            .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QOpenGLWindow::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_qt_metacall(
            self as *mut crate::QOpenGLWindow,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QOpenGLWindow::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_qt_metacast(
            self as *mut crate::QOpenGLWindow,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns The <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> requested to be shared with this window's <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* QOpenGLWindow::shareContext() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#shareContext">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns The <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> requested to be shared with this window's <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a>.</p></div>
    #[inline(always)]
    pub unsafe fn share_context(&self) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_shareContext(
            self as *const crate::QOpenGLWindow,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLWindow::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QOpenGLWindow::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the update behavior for this <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow::UpdateBehavior QOpenGLWindow::updateBehavior() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#updateBehavior">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the update behavior for this <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>.</p></div>
    #[inline(always)]
    pub unsafe fn update_behavior(&self) -> crate::q_opengl_window::UpdateBehavior {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_updateBehavior(
            self as *const crate::QOpenGLWindow,
        )
    }
}

pub mod q_page_size {
    //! C++ type: <span style='color: green;'>```QPageSize```</span>

    /// <p>This enum type lists the available page sizes as defined in the Postscript PPD standard. These values are duplicated in <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html">QPagedPaintDevice</a> and QPrinter.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPageSize::PageSizeId```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type lists the available page sizes as defined in the Postscript PPD standard. These values are duplicated in <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html">QPagedPaintDevice</a> and QPrinter.</p>
    /// <p>The defined sizes are:</p>
    ///
    /// <p>Due to historic reasons QPageSize::Executive is not the same as the standard Postscript and Windows Executive size, use QPageSize::ExecutiveStandard instead.</p>
    /// <p>The Postscript standard size QPageSize::Folio is different to the Windows DMPAPER_FOLIO size, use the Postscript standard size QPageSize::FanFoldGermanLegal if needed.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PageSizeId(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PageSizeId {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PageSizeId(value)
        }
    }

    impl From<PageSizeId> for ::std::os::raw::c_int {
        fn from(value: PageSizeId) -> Self {
            value.0
        }
    }

    impl PageSizeId {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PageSizeId {
        /// 210 x 297 mm, 8.26 x 11.69 inches (C++ enum variant: <span style='color: green;'>```A4 = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const A4: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(0);
        /// 176 x 250 mm, 6.93 x 9.84 inches (C++ enum variant: <span style='color: green;'>```B5 = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const B5: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(1);
        /// 8.5 x 11 inches, 215.9 x 279.4 mm (C++ enum variant: <span style='color: green;'>```Letter = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Letter: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(2);
        /// 8.5 x 14 inches, 215.9 x 355.6 mm (C++ enum variant: <span style='color: green;'>```Legal = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Legal: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(3);
        /// 7.5 x 10 inches, 190.5 x 254 mm (C++ enum variant: <span style='color: green;'>```Executive = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Executive: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(4);
        /// 841 x 1189 mm (C++ enum variant: <span style='color: green;'>```A0 = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const A0: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(5);
        /// 594 x 841 mm (C++ enum variant: <span style='color: green;'>```A1 = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const A1: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(6);
        /// 420 x 594 mm (C++ enum variant: <span style='color: green;'>```A2 = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const A2: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(7);
        /// 297 x 420 mm (C++ enum variant: <span style='color: green;'>```A3 = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const A3: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(8);
        /// 148 x 210 mm (C++ enum variant: <span style='color: green;'>```A5 = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const A5: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(9);
        /// 105 x 148 mm (C++ enum variant: <span style='color: green;'>```A6 = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const A6: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(10);
        /// 74 x 105 mm (C++ enum variant: <span style='color: green;'>```A7 = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const A7: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(11);
        /// 52 x 74 mm (C++ enum variant: <span style='color: green;'>```A8 = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const A8: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(12);
        /// 37 x 52 mm (C++ enum variant: <span style='color: green;'>```A9 = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const A9: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(13);
        /// 1000 x 1414 mm (C++ enum variant: <span style='color: green;'>```B0 = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const B0: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(14);
        /// 707 x 1000 mm (C++ enum variant: <span style='color: green;'>```B1 = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const B1: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(15);
        /// 31 x 44 mm (C++ enum variant: <span style='color: green;'>```B10 = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const B10: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(16);
        /// 500 x 707 mm (C++ enum variant: <span style='color: green;'>```B2 = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const B2: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(17);
        /// 353 x 500 mm (C++ enum variant: <span style='color: green;'>```B3 = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const B3: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(18);
        /// 250 x 353 mm (C++ enum variant: <span style='color: green;'>```B4 = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const B4: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(19);
        /// 125 x 176 mm (C++ enum variant: <span style='color: green;'>```B6 = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const B6: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(20);
        /// 88 x 125 mm (C++ enum variant: <span style='color: green;'>```B7 = 21```</span>)
        #[allow(non_upper_case_globals)]
        pub const B7: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(21);
        /// 62 x 88 mm (C++ enum variant: <span style='color: green;'>```B8 = 22```</span>)
        #[allow(non_upper_case_globals)]
        pub const B8: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(22);
        /// 44 x 62 mm (C++ enum variant: <span style='color: green;'>```B9 = 23```</span>)
        #[allow(non_upper_case_globals)]
        pub const B9: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(23);
        /// 163 x 229 mm (C++ enum variant: <span style='color: green;'>```C5E = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const C5E: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(24);
        /// 105 x 241 mm, U.S. Common 10 Envelope (C++ enum variant: <span style='color: green;'>```Comm10E = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const Comm10E: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(25);
        /// 110 x 220 mm (C++ enum variant: <span style='color: green;'>```DLE = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const DLE: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(26);
        /// 210 x 330 mm (C++ enum variant: <span style='color: green;'>```Folio = 27```</span>)
        #[allow(non_upper_case_globals)]
        pub const Folio: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(27);
        /// 431.8 x 279.4 mm (C++ enum variant: <span style='color: green;'>```Ledger = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const Ledger: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(28);
        /// 279.4 x 431.8 mm (C++ enum variant: <span style='color: green;'>```Tabloid = 29```</span>)
        #[allow(non_upper_case_globals)]
        pub const Tabloid: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(29);
        /// Unknown, or a user defined size. (C++ enum variant: <span style='color: green;'>```Custom = 30```</span>)
        #[allow(non_upper_case_globals)]
        pub const Custom: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(30);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A10 = 31```</span>)
        #[allow(non_upper_case_globals)]
        pub const A10: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(31);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A3Extra = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const A3Extra: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(32);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A4Extra = 33```</span>)
        #[allow(non_upper_case_globals)]
        pub const A4Extra: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(33);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A4Plus = 34```</span>)
        #[allow(non_upper_case_globals)]
        pub const A4Plus: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(34);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A4Small = 35```</span>)
        #[allow(non_upper_case_globals)]
        pub const A4Small: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(35);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A5Extra = 36```</span>)
        #[allow(non_upper_case_globals)]
        pub const A5Extra: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(36);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```B5Extra = 37```</span>)
        #[allow(non_upper_case_globals)]
        pub const B5Extra: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(37);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB0 = 38```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB0: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(38);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB1 = 39```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB1: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(39);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB2 = 40```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB2: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(40);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB3 = 41```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB3: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(41);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB4 = 42```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB4: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(42);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB5 = 43```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB5: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(43);
        /// , (C++ enum variant: <span style='color: green;'>```JisB6 = 44```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB6: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(44);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB7 = 45```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB7: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(45);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB8 = 46```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB8: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(46);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB9 = 47```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB9: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(47);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB10 = 48```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB10: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(48);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AnsiC = 49```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiC: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(49);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AnsiD = 50```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiD: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(50);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AnsiE = 51```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiE: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(51);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LegalExtra = 52```</span>)
        #[allow(non_upper_case_globals)]
        pub const LegalExtra: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(52);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LetterExtra = 53```</span>)
        #[allow(non_upper_case_globals)]
        pub const LetterExtra: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(53);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LetterPlus = 54```</span>)
        #[allow(non_upper_case_globals)]
        pub const LetterPlus: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(54);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LetterSmall = 55```</span>)
        #[allow(non_upper_case_globals)]
        pub const LetterSmall: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(55);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TabloidExtra = 56```</span>)
        #[allow(non_upper_case_globals)]
        pub const TabloidExtra: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(56);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchA = 57```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchA: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(57);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchB = 58```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchB: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(58);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchC = 59```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchC: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(59);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchD = 60```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchD: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(60);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchE = 61```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchE: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(61);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial7x9 = 62```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial7X9: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(62);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial8x10 = 63```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial8X10: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(63);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial9x11 = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial9X11: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(64);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial9x12 = 65```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial9X12: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(65);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial10x11 = 66```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial10X11: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(66);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial10x13 = 67```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial10X13: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(67);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial10x14 = 68```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial10X14: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(68);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial12x11 = 69```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial12X11: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(69);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial15x11 = 70```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial15X11: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(70);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ExecutiveStandard = 71```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExecutiveStandard: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(71);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Note = 72```</span>)
        #[allow(non_upper_case_globals)]
        pub const Note: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(72);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Quarto = 73```</span>)
        #[allow(non_upper_case_globals)]
        pub const Quarto: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(73);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Statement = 74```</span>)
        #[allow(non_upper_case_globals)]
        pub const Statement: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(74);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```SuperA = 75```</span>)
        #[allow(non_upper_case_globals)]
        pub const SuperA: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(75);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```SuperB = 76```</span>)
        #[allow(non_upper_case_globals)]
        pub const SuperB: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(76);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Postcard = 77```</span>)
        #[allow(non_upper_case_globals)]
        pub const Postcard: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(77);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```DoublePostcard = 78```</span>)
        #[allow(non_upper_case_globals)]
        pub const DoublePostcard: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(78);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Prc16K = 79```</span>)
        #[allow(non_upper_case_globals)]
        pub const Prc16K: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(79);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Prc32K = 80```</span>)
        #[allow(non_upper_case_globals)]
        pub const Prc32K: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(80);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Prc32KBig = 81```</span>)
        #[allow(non_upper_case_globals)]
        pub const Prc32KBig: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(81);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FanFoldUS = 82```</span>)
        #[allow(non_upper_case_globals)]
        pub const FanFoldUS: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(82);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FanFoldGerman = 83```</span>)
        #[allow(non_upper_case_globals)]
        pub const FanFoldGerman: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(83);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FanFoldGermanLegal = 84```</span>)
        #[allow(non_upper_case_globals)]
        pub const FanFoldGermanLegal: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(84);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeB4 = 85```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeB4: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(85);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeB5 = 86```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeB5: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(86);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeB6 = 87```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeB6: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(87);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC0 = 88```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC0: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(88);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC1 = 89```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC1: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(89);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC2 = 90```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC2: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(90);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC3 = 91```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC3: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(91);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC4 = 92```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC4: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(92);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC6 = 93```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC6: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(93);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC65 = 94```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC65: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(94);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC7 = 95```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC7: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(95);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Envelope9 = 96```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope9: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(96);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Envelope11 = 97```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope11: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(97);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Envelope12 = 98```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope12: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(98);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Envelope14 = 99```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope14: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(99);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeMonarch = 100```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeMonarch: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(100);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePersonal = 101```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePersonal: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(101);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeChou3 = 102```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeChou3: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(102);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeChou4 = 103```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeChou4: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(103);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeInvite = 104```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeInvite: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(104);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeItalian = 105```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeItalian: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(105);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeKaku2 = 106```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeKaku2: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(106);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeKaku3 = 107```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeKaku3: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(107);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc1 = 108```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc1: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(108);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc2 = 109```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc2: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(109);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc3 = 110```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc3: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(110);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc4 = 111```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc4: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(111);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc5 = 112```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc5: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(112);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc6 = 113```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc6: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(113);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc7 = 114```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc7: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(114);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc8 = 115```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc8: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(115);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc9 = 116```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc9: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(116);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc10 = 117```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc10: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(117);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeYou4 = 118```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeYou4: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(118);
        /// = EnvelopeYou4 (C++ enum variant: <span style='color: green;'>```LastPageSize = 118```</span>)
        #[allow(non_upper_case_globals)]
        pub const LastPageSize: crate::q_page_size::PageSizeId =
            crate::q_page_size::PageSizeId(118);
        /// C++ enum variant: <span style='color: green;'>```NPageSize = 118```</span>
        #[allow(non_upper_case_globals)]
        pub const NPageSize: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(118);
        /// C++ enum variant: <span style='color: green;'>```NPaperSize = 118```</span>
        #[allow(non_upper_case_globals)]
        pub const NPaperSize: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(118);
        /// = Letter (C++ enum variant: <span style='color: green;'>```AnsiA = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiA: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(2);
        /// = Ledger (C++ enum variant: <span style='color: green;'>```AnsiB = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiB: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(28);
        /// = C5E (C++ enum variant: <span style='color: green;'>```EnvelopeC5 = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC5: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(24);
        /// = DLE (C++ enum variant: <span style='color: green;'>```EnvelopeDL = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeDL: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(26);
        /// = Comm10E (C++ enum variant: <span style='color: green;'>```Envelope10 = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope10: crate::q_page_size::PageSizeId = crate::q_page_size::PageSizeId(25);
    }

    /// <p>This enum type is used to specify the measurement unit for page sizes.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPageSize::Unit```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#Unit-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type is used to specify the measurement unit for page sizes.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Unit(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Unit {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Unit(value)
        }
    }

    impl From<Unit> for ::std::os::raw::c_int {
        fn from(value: Unit) -> Self {
            value.0
        }
    }

    impl Unit {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Unit {
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Millimeter = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Millimeter: crate::q_page_size::Unit = crate::q_page_size::Unit(0);
        /// 1/72th of an inch (C++ enum variant: <span style='color: green;'>```Point = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Point: crate::q_page_size::Unit = crate::q_page_size::Unit(1);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Inch = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Inch: crate::q_page_size::Unit = crate::q_page_size::Unit(2);
        /// 1/72th of a foot, 1/6th of an inch, 12 Points (C++ enum variant: <span style='color: green;'>```Pica = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Pica: crate::q_page_size::Unit = crate::q_page_size::Unit(3);
        /// 1/72th of a French inch, 0.375 mm (C++ enum variant: <span style='color: green;'>```Didot = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Didot: crate::q_page_size::Unit = crate::q_page_size::Unit(4);
        /// 1/6th of a French inch, 12 Didot, 4.5mm (C++ enum variant: <span style='color: green;'>```Cicero = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cicero: crate::q_page_size::Unit = crate::q_page_size::Unit(5);
    }

    /// C++ enum: <span style='color: green;'>```QPageSize::SizeMatchPolicy```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SizeMatchPolicy(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SizeMatchPolicy {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SizeMatchPolicy(value)
        }
    }

    impl From<SizeMatchPolicy> for ::std::os::raw::c_int {
        fn from(value: SizeMatchPolicy) -> Self {
            value.0
        }
    }

    impl SizeMatchPolicy {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SizeMatchPolicy {
        /// Match to a standard page size if within the margin of tolerance. (C++ enum variant: <span style='color: green;'>```FuzzyMatch = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const FuzzyMatch: crate::q_page_size::SizeMatchPolicy =
            crate::q_page_size::SizeMatchPolicy(0);
        /// Match to a standard page size if within the margin of tolerance regardless of orientation. (C++ enum variant: <span style='color: green;'>```FuzzyOrientationMatch = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const FuzzyOrientationMatch: crate::q_page_size::SizeMatchPolicy =
            crate::q_page_size::SizeMatchPolicy(1);
        /// Only match to a standard page size if the sizes match exactly. (C++ enum variant: <span style='color: green;'>```ExactMatch = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExactMatch: crate::q_page_size::SizeMatchPolicy =
            crate::q_page_size::SizeMatchPolicy(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> class describes the size and name of a defined page size</p>
///
/// C++ class: <span style='color: green;'>```QPageSize```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpagesize.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> class describes the size and name of a defined page size</p>
/// <p>This class implements support for the set of standard page sizes as defined in the Adobe Postscript PPD Standard v4.3. It defines the standard set of page sizes in points, millimeters and inches and ensures these sizes are consistently used. Other size units can be used but will be calculated results and so may not always be consistent. The defined point sizes are always a integer, all other sizes can be fractions of a unit.</p>
/// <p>The defined size is always in width x height order with no implied page orientation. Note that it is possible for page sizes to be defined where the width is greater than the height, such as <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Ledger</a>, so you cannot rely on comparing the width and height values to determine page orientation.</p>
/// <p>For example, A4 is defined by the standard as 210mm x 297mm, 8.27in x 11.69in, or 595pt x 842pt.</p>
/// <p>You can also define custom page sizes with custom names in any units you want and this unit size will be preserved and used as the base for all other unit size calculations.</p>
/// <p>When creating a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> using a custom <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> you can choose if you want <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> to try match the size to a standard page size. By default QPaperSize uses a <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> mode where it will match a given page size to a standard page size if it falls within 3 postscript points of a defined standard size. You can override this to request only an exact match but this is not recommended as conversions between units can easily lose 3 points and result in incorrect page sizes.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> instance may also be obtained by querying the supported page sizes for a print device. In this case the localized name returned is that defined by the printer itself. Note that the print device may not support the current default locale language.</p>
/// <p>The class also provides convenience methods for converting page size IDs to and from various unit sizes.</p></div>
#[repr(C)]
pub struct QPageSize {
    _unused: u8,
}
impl QPageSize {
    /// <p>Assignment operator, assigns <i>other</i> to this.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageSize& QPageSize::operator=(const QPageSize& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assignment operator, assigns <i>other</i> to this.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
    ) -> ::cpp_core::MutRef<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_operator_1(
            self as *mut crate::QPageSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the definition size of the page size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QPageSize::definitionSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#definitionSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the definition size of the page size.</p>
    /// <p>For a standard page size this will be the size as defined in the relevant standard, i.e. ISO A4 will be defined in millimeters while ANSI Letter will be defined in inches.</p>
    /// <p>For a custom page size this will be the original size used to create the page size object.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the <a href="http://doc.qt.io/qt-5/qsizef.html">QSizeF</a> will be invalid.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagesize.html#definitionUnits">definitionUnits</a>().</p></div>
    #[inline(always)]
    pub unsafe fn definition_size_0a(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageSize_definitionSize(self as *const crate::QPageSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the definition size of the standard <i>pageSizeId</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QSizeF QPageSize::definitionSize(QPageSize::PageSizeId pageSizeId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#definitionSize-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the definition size of the standard <i>pageSizeId</i>.</p>
    /// <p>To obtain the definition units, call <a href="http://doc.qt.io/qt-5/qpagesize.html#definitionUnits">QPageSize::definitionUnits</a>().</p></div>
    #[inline(always)]
    pub unsafe fn definition_size_1a(
        page_size_id: crate::q_page_size::PageSizeId,
    ) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_definitionSize1(page_size_id);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the definition units of the page size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageSize::Unit QPageSize::definitionUnits() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#definitionUnits">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the definition units of the page size.</p>
    /// <p>For a standard page size this will be the units as defined in the relevant standard, i.e. ISO A4 will be defined in millimeters while ANSI Letter will be defined in inches.</p>
    /// <p>For a custom page size this will be the original units used to create the page size object.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the <a href="http://doc.qt.io/qt-5/qpagesize.html#Unit-enum">QPageSize::Unit</a> will be invalid.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagesize.html#definitionSize">definitionSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn definition_units_0a(&self) -> crate::q_page_size::Unit {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_definitionUnits(self as *const crate::QPageSize)
    }

    /// <p>Returns the definition units of the standard <i>pageSizeId</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPageSize::Unit QPageSize::definitionUnits(QPageSize::PageSizeId pageSizeId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#definitionUnits-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the definition units of the standard <i>pageSizeId</i>.</p>
    /// <p>To obtain the definition size, call <a href="http://doc.qt.io/qt-5/qpagesize.html#definitionSize">QPageSize::definitionSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn definition_units_1a(
        page_size_id: crate::q_page_size::PageSizeId,
    ) -> crate::q_page_size::Unit {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_definitionUnits1(page_size_id)
    }

    /// <p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the page, or <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageSize::PageSizeId QPageSize::id() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#id">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the page, or <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a>.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the ID will be <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a>.</p></div>
    #[inline(always)]
    pub unsafe fn id(&self) -> crate::q_page_size::PageSizeId {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_id(self as *const crate::QPageSize)
    }

    /// <p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the given <i>pointSize</i> in points using the given <i>matchPolicy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPageSize::PageSizeId QPageSize::id(const QSize& pointSize, QPageSize::SizeMatchPolicy matchPolicy = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#id-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the given <i>pointSize</i> in points using the given <i>matchPolicy</i>.</p>
    /// <p>If using <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> then the point size of the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> returned may not exactly match the <i>pointSize</i> you passed in. You should call <a href="http://doc.qt.io/qt-5/qpagesize.html#sizePoints">QPageSize::sizePoints</a>() using the returned <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> to find out the actual point size of the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> before using it in any calculations.</p></div>
    #[inline(always)]
    pub unsafe fn id_q_size_size_match_policy(
        point_size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        match_policy: crate::q_page_size::SizeMatchPolicy,
    ) -> crate::q_page_size::PageSizeId {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_id1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(point_size)
                .as_raw_ptr(),
            match_policy,
        )
    }

    /// <p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the given <i>size</i> in <i>units</i> using the given <i>matchPolicy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPageSize::PageSizeId QPageSize::id(const QSizeF& size, QPageSize::Unit units, QPageSize::SizeMatchPolicy matchPolicy = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#id-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the given <i>size</i> in <i>units</i> using the given <i>matchPolicy</i>.</p>
    /// <p>If using <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> then the unit size of the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> returned may not exactly match the <i>size</i> you passed in. You should call <a href="http://doc.qt.io/qt-5/qpagesize.html#size">QPageSize::size</a>() using the returned <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> to find out the actual unit size of the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> before using it in any calculations.</p></div>
    #[inline(always)]
    pub unsafe fn id_q_size_f_unit_size_match_policy(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
        units: crate::q_page_size::Unit,
        match_policy: crate::q_page_size::SizeMatchPolicy,
    ) -> crate::q_page_size::PageSizeId {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_id2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
            units,
            match_policy,
        )
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> for the given Windows DMPAPER enum value <i>windowsId</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPageSize::PageSizeId QPageSize::id(int windowsId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#id-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> for the given Windows DMPAPER enum value <i>windowsId</i>.</p>
    /// <p>If there is no matching <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> then <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a> is returned.</p></div>
    #[inline(always)]
    pub unsafe fn id_int(windows_id: ::std::os::raw::c_int) -> crate::q_page_size::PageSizeId {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_id3(windows_id)
    }

    /// <p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the given <i>pointSize</i> in points using the given <i>matchPolicy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPageSize::PageSizeId QPageSize::id(const QSize& pointSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#id-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the given <i>pointSize</i> in points using the given <i>matchPolicy</i>.</p>
    /// <p>If using <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> then the point size of the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> returned may not exactly match the <i>pointSize</i> you passed in. You should call <a href="http://doc.qt.io/qt-5/qpagesize.html#sizePoints">QPageSize::sizePoints</a>() using the returned <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> to find out the actual point size of the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> before using it in any calculations.</p></div>
    #[inline(always)]
    pub unsafe fn id_q_size(
        point_size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> crate::q_page_size::PageSizeId {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_id4(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(point_size)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the given <i>size</i> in <i>units</i> using the given <i>matchPolicy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPageSize::PageSizeId QPageSize::id(const QSizeF& size, QPageSize::Unit units)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#id-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> of the given <i>size</i> in <i>units</i> using the given <i>matchPolicy</i>.</p>
    /// <p>If using <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> then the unit size of the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> returned may not exactly match the <i>size</i> you passed in. You should call <a href="http://doc.qt.io/qt-5/qpagesize.html#size">QPageSize::size</a>() using the returned <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> to find out the actual unit size of the <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a> before using it in any calculations.</p></div>
    #[inline(always)]
    pub unsafe fn id_q_size_f_unit(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
        units: crate::q_page_size::Unit,
    ) -> crate::q_page_size::PageSizeId {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_id5(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
            units,
        )
    }

    /// <p>Returns <code>true</code> if this page is equivalent to the <i>other</i> page, i.e. if the page has the same size regardless of other attributes like name.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageSize::isEquivalentTo(const QPageSize& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#isEquivalentTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this page is equivalent to the <i>other</i> page, i.e. if the page has the same size regardless of other attributes like name.</p></div>
    #[inline(always)]
    pub unsafe fn is_equivalent_to(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_isEquivalentTo(
            self as *const crate::QPageSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if this page size is valid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageSize::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this page size is valid.</p>
    /// <p>The page size may be invalid if created with an invalid <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">PageSizeId</a>, or a negative or invalid <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> or <a href="http://doc.qt.io/qt-5/qsizef.html">QSizeF</a>, or the null constructor.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_isValid(self as *const crate::QPageSize)
    }

    /// <p>Returns the unique key of the page size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QPageSize::key() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#key">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the unique key of the page size.</p>
    /// <p>By default this is the PPD standard mediaOption keyword for the page size, or the PPD custom format key. If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> instance was obtained from a print device then this will be the key provided by the print device and may differ from the standard key.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the key will be an empty string.</p>
    /// <p>This key should never be shown to end users, it is an internal key only. For a human-readable name use <a href="http://doc.qt.io/qt-5/qpagesize.html#name">name</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagesize.html#name">name</a>().</p></div>
    #[inline(always)]
    pub unsafe fn key_0a(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageSize_key(self as *const crate::QPageSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the PPD mediaOption keyword of the standard <i>pageSizeId</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QPageSize::key(QPageSize::PageSizeId pageSizeId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#key-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the PPD mediaOption keyword of the standard <i>pageSizeId</i>.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the key will be empty.</p></div>
    #[inline(always)]
    pub unsafe fn key_1a(
        page_size_id: crate::q_page_size::PageSizeId,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_key1(page_size_id);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a localized human-readable name for the page size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QPageSize::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#name">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a localized human-readable name for the page size.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> instance was obtained from a print device then the name used is that provided by the print device. Note that a print device may not support the current default locale language.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the name will be an empty string.</p></div>
    #[inline(always)]
    pub unsafe fn name_0a(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageSize_name(self as *const crate::QPageSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the localized name of the standard <i>pageSizeId</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString QPageSize::name(QPageSize::PageSizeId pageSizeId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#name-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the localized name of the standard <i>pageSizeId</i>.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the name will be empty.</p></div>
    #[inline(always)]
    pub unsafe fn name_1a(
        page_size_id: crate::q_page_size::PageSizeId,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_name1(page_size_id);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a null <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a null <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> of the standard <i>pageSize</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize(QPageSize::PageSizeId pageSizeId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> of the standard <i>pageSize</i>.</p>
    /// <p>If <i>pageSize</i> is <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a> then the resulting <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> will not be valid. Use the custom size constructor instead.</p></div>
    #[inline(always)]
    pub unsafe fn from_page_size_id(
        page_size_id: crate::q_page_size::PageSizeId,
    ) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize1(page_size_id);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> of the given <i>pointSize</i> in Points using the matching <i>matchPolicy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize(const QSize& pointSize, const QString& name = …, QPageSize::SizeMatchPolicy matchPolicy = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> of the given <i>pointSize</i> in Points using the matching <i>matchPolicy</i>.</p>
    /// <p>If the given <i>pointSize</i> matches a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a>, then that page size will be used. Note that if the <i>matchPolicy</i> is <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> this may result in the <i>pointSize</i> being adjusted to the standard size. To prevent this happening use a <i>matchPolicy</i> of <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">ExactMatch</a> instead.</p>
    /// <p>If the given <i>pointSize</i> is not a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> then a <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a> size will be created.</p>
    /// <p>If <i>name</i> is null then the standard localized name will be used. If a custom page size then a custom name in the format "Custom (width x height)" will be created.</p>
    /// <p>The <i>matchPolicy</i> defaults to <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_q_string_size_match_policy(
        point_size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        match_policy: crate::q_page_size::SizeMatchPolicy,
    ) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(point_size)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            match_policy,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a custom page of the given <i>size</i> in <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize(const QSizeF& size, QPageSize::Unit units, const QString& name = …, QPageSize::SizeMatchPolicy matchPolicy = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a custom page of the given <i>size</i> in <i>units</i>.</p>
    /// <p>If the given <i>size</i> matches a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a>, then that page size will be used. Note that if the <i>matchPolicy</i> is <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> this may result in the <i>size</i> being adjusted to the standard size. To prevent this happening use a <i>matchPolicy</i> of <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">ExactMatch</a> instead.</p>
    /// <p>If the given <i>size</i> is not a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> then a <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a> size will be created. The original unit size will be preserved and used as the base for all other unit size calculations.</p>
    /// <p>If <i>name</i> is null then a custom name will be created in the form "Custom (width x height)" where the size is expressed in units provided.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_f_unit_q_string_size_match_policy(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
        units: crate::q_page_size::Unit,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        match_policy: crate::q_page_size::SizeMatchPolicy,
    ) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
            units,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            match_policy,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> of the given <i>pointSize</i> in Points using the matching <i>matchPolicy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize(const QSize& pointSize, const QString& name = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> of the given <i>pointSize</i> in Points using the matching <i>matchPolicy</i>.</p>
    /// <p>If the given <i>pointSize</i> matches a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a>, then that page size will be used. Note that if the <i>matchPolicy</i> is <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> this may result in the <i>pointSize</i> being adjusted to the standard size. To prevent this happening use a <i>matchPolicy</i> of <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">ExactMatch</a> instead.</p>
    /// <p>If the given <i>pointSize</i> is not a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> then a <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a> size will be created.</p>
    /// <p>If <i>name</i> is null then the standard localized name will be used. If a custom page size then a custom name in the format "Custom (width x height)" will be created.</p>
    /// <p>The <i>matchPolicy</i> defaults to <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_q_string(
        point_size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize5(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(point_size)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> of the given <i>pointSize</i> in Points using the matching <i>matchPolicy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize(const QSize& pointSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> of the given <i>pointSize</i> in Points using the matching <i>matchPolicy</i>.</p>
    /// <p>If the given <i>pointSize</i> matches a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a>, then that page size will be used. Note that if the <i>matchPolicy</i> is <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> this may result in the <i>pointSize</i> being adjusted to the standard size. To prevent this happening use a <i>matchPolicy</i> of <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">ExactMatch</a> instead.</p>
    /// <p>If the given <i>pointSize</i> is not a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> then a <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a> size will be created.</p>
    /// <p>If <i>name</i> is null then the standard localized name will be used. If a custom page size then a custom name in the format "Custom (width x height)" will be created.</p>
    /// <p>The <i>matchPolicy</i> defaults to <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size(
        point_size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize6(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(point_size)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a custom page of the given <i>size</i> in <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize(const QSizeF& size, QPageSize::Unit units, const QString& name = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a custom page of the given <i>size</i> in <i>units</i>.</p>
    /// <p>If the given <i>size</i> matches a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a>, then that page size will be used. Note that if the <i>matchPolicy</i> is <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> this may result in the <i>size</i> being adjusted to the standard size. To prevent this happening use a <i>matchPolicy</i> of <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">ExactMatch</a> instead.</p>
    /// <p>If the given <i>size</i> is not a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> then a <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a> size will be created. The original unit size will be preserved and used as the base for all other unit size calculations.</p>
    /// <p>If <i>name</i> is null then a custom name will be created in the form "Custom (width x height)" where the size is expressed in units provided.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_f_unit_q_string(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
        units: crate::q_page_size::Unit,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize7(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
            units,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a custom page of the given <i>size</i> in <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize(const QSizeF& size, QPageSize::Unit units)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a custom page of the given <i>size</i> in <i>units</i>.</p>
    /// <p>If the given <i>size</i> matches a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a>, then that page size will be used. Note that if the <i>matchPolicy</i> is <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">FuzzyMatch</a> this may result in the <i>size</i> being adjusted to the standard size. To prevent this happening use a <i>matchPolicy</i> of <a href="http://doc.qt.io/qt-5/qpagesize.html#SizeMatchPolicy-enum">ExactMatch</a> instead.</p>
    /// <p>If the given <i>size</i> is not a standard <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::PageSizeId</a> then a <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Custom</a> size will be created. The original unit size will be preserved and used as the base for all other unit size calculations.</p>
    /// <p>If <i>name</i> is null then a custom name will be created in the form "Custom (width x height)" where the size is expressed in units provided.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_size_f_unit(
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
        units: crate::q_page_size::Unit,
    ) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize8(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
            units,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy constructor, copies <i>other</i> to this.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageSize::QPageSize(const QPageSize& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#QPageSize-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor, copies <i>other</i> to this.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
    ) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_QPageSize4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the page rectangle in the required <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPageSize::rect(QPageSize::Unit units) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#rect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page rectangle in the required <i>units</i>.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> will be invalid.</p></div>
    #[inline(always)]
    pub unsafe fn rect(
        &self,
        units: crate::q_page_size::Unit,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageSize_rect(self as *const crate::QPageSize, units);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the page rectangle in Device Pixels at the given <i>resolution</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPageSize::rectPixels(int resolution) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#rectPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page rectangle in Device Pixels at the given <i>resolution</i>.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> will be invalid.</p></div>
    #[inline(always)]
    pub unsafe fn rect_pixels(
        &self,
        resolution: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_rectPixels(
            self as *const crate::QPageSize,
            resolution,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the page rectangle in Postscript Points (1/72 of an inch).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPageSize::rectPoints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#rectPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page rectangle in Postscript Points (1/72 of an inch).</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a> will be invalid.</p></div>
    #[inline(always)]
    pub unsafe fn rect_points(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageSize_rectPoints(self as *const crate::QPageSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size of the page in the required <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QPageSize::size(QPageSize::Unit units) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the page in the required <i>units</i>.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the <a href="http://doc.qt.io/qt-5/qsizef.html">QSizeF</a> will be invalid.</p></div>
    #[inline(always)]
    pub unsafe fn size_1a(
        &self,
        units: crate::q_page_size::Unit,
    ) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageSize_size(self as *const crate::QPageSize, units);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size of the standard <i>pageSizeId</i> in the requested <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QSizeF QPageSize::size(QPageSize::PageSizeId pageSizeId, QPageSize::Unit units)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#size-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the standard <i>pageSizeId</i> in the requested <i>units</i>.</p></div>
    #[inline(always)]
    pub unsafe fn size_2a(
        page_size_id: crate::q_page_size::PageSizeId,
        units: crate::q_page_size::Unit,
    ) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_size1(page_size_id, units);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size of the page in Device Pixels at the given <i>resolution</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QPageSize::sizePixels(int resolution) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#sizePixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the page in Device Pixels at the given <i>resolution</i>.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> will be invalid.</p></div>
    #[inline(always)]
    pub unsafe fn size_pixels_1a(
        &self,
        resolution: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_sizePixels(
            self as *const crate::QPageSize,
            resolution,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size of the standard <i>pageSizeId</i> in Device Pixels for the given <i>resolution</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QSize QPageSize::sizePixels(QPageSize::PageSizeId pageSizeId, int resolution)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#sizePixels-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the standard <i>pageSizeId</i> in Device Pixels for the given <i>resolution</i>.</p></div>
    #[inline(always)]
    pub unsafe fn size_pixels_2a(
        page_size_id: crate::q_page_size::PageSizeId,
        resolution: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageSize_sizePixels1(page_size_id, resolution);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size of the page in Postscript Points (1/72 of an inch).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QPageSize::sizePoints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#sizePoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the page in Postscript Points (1/72 of an inch).</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> will be invalid.</p></div>
    #[inline(always)]
    pub unsafe fn size_points_0a(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageSize_sizePoints(self as *const crate::QPageSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the size of the standard <i>pageSizeId</i> in Points.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QSize QPageSize::sizePoints(QPageSize::PageSizeId pageSizeId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#sizePoints-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the standard <i>pageSizeId</i> in Points.</p></div>
    #[inline(always)]
    pub unsafe fn size_points_1a(
        page_size_id: crate::q_page_size::PageSizeId,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageSize_sizePoints1(page_size_id);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPageSize::swap(QPageSize& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> with <i>other</i>. This function is very fast and never fails.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPageSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_swap(
            self as *mut crate::QPageSize,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPageSize>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the Windows DMPAPER enum value for the page size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPageSize::windowsId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#windowsId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the Windows DMPAPER enum value for the page size.</p>
    /// <p>Not all valid PPD page sizes have a Windows equivalent, in which case 0 will be returned.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is invalid then the Windows ID will be 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagesize.html#id">id</a>().</p></div>
    #[inline(always)]
    pub unsafe fn windows_id_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_windowsId(self as *const crate::QPageSize)
    }

    /// <p>Returns the Windows DMPAPER enum value of the standard <i>pageSizeId</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static int QPageSize::windowsId(QPageSize::PageSizeId pageSizeId)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#windowsId-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the Windows DMPAPER enum value of the standard <i>pageSizeId</i>.</p>
    /// <p>Not all valid PPD page sizes have a Windows equivalent, in which case 0 will be returned.</p></div>
    #[inline(always)]
    pub unsafe fn windows_id_1a(
        page_size_id: crate::q_page_size::PageSizeId,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_windowsId1(page_size_id)
    }
}

pub mod q_page_layout {
    //! C++ type: <span style='color: green;'>```QPageLayout```</span>

    /// <p>This enum type is used to specify the measurement unit for page layout and margins.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPageLayout::Unit```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#Unit-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type is used to specify the measurement unit for page layout and margins.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Unit(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Unit {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Unit(value)
        }
    }

    impl From<Unit> for ::std::os::raw::c_int {
        fn from(value: Unit) -> Self {
            value.0
        }
    }

    impl Unit {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Unit {
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Millimeter = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Millimeter: crate::q_page_layout::Unit = crate::q_page_layout::Unit(0);
        /// 1/72th of an inch (C++ enum variant: <span style='color: green;'>```Point = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Point: crate::q_page_layout::Unit = crate::q_page_layout::Unit(1);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Inch = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Inch: crate::q_page_layout::Unit = crate::q_page_layout::Unit(2);
        /// 1/72th of a foot, 1/6th of an inch, 12 Points (C++ enum variant: <span style='color: green;'>```Pica = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Pica: crate::q_page_layout::Unit = crate::q_page_layout::Unit(3);
        /// 1/72th of a French inch, 0.375 mm (C++ enum variant: <span style='color: green;'>```Didot = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Didot: crate::q_page_layout::Unit = crate::q_page_layout::Unit(4);
        /// 1/6th of a French inch, 12 Didot, 4.5mm (C++ enum variant: <span style='color: green;'>```Cicero = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const Cicero: crate::q_page_layout::Unit = crate::q_page_layout::Unit(5);
    }

    /// <p>This enum type defines the page orientation</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPageLayout::Orientation```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#Orientation-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type defines the page orientation</p>
    ///
    /// <p>Note that some standard page sizes are defined with a width larger than their height, hence the orientation is defined relative to the standard page size and not using the relative page dimensions.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Orientation(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Orientation {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Orientation(value)
        }
    }

    impl From<Orientation> for ::std::os::raw::c_int {
        fn from(value: Orientation) -> Self {
            value.0
        }
    }

    impl Orientation {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Orientation {
        /// The page size is used in its default orientation (C++ enum variant: <span style='color: green;'>```Portrait = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Portrait: crate::q_page_layout::Orientation =
            crate::q_page_layout::Orientation(0);
        /// The page size is rotated through 90 degrees (C++ enum variant: <span style='color: green;'>```Landscape = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Landscape: crate::q_page_layout::Orientation =
            crate::q_page_layout::Orientation(1);
    }

    /// <p>Defines the page layout mode</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPageLayout::Mode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines the page layout mode</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Mode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Mode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Mode(value)
        }
    }

    impl From<Mode> for ::std::os::raw::c_int {
        fn from(value: Mode) -> Self {
            value.0
        }
    }

    impl Mode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Mode {
        /// Paint Rect includes margins, margins must fall between the minimum and maximum. (C++ enum variant: <span style='color: green;'>```StandardMode = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const StandardMode: crate::q_page_layout::Mode = crate::q_page_layout::Mode(0);
        /// Paint Rect excludes margins, margins can be any value and must be managed manually. (C++ enum variant: <span style='color: green;'>```FullPageMode = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const FullPageMode: crate::q_page_layout::Mode = crate::q_page_layout::Mode(1);
    }
}
/// <p>Describes the size, orientation and margins of a page.</p>
///
/// C++ class: <span style='color: green;'>```QPageLayout```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpagelayout.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Describes the size, orientation and margins of a page.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> class defines the layout of a page in a paged document, with the page size, orientation and margins able to be set and the full page and paintable page rectangles defined by those attributes able to be queried in a variety of units.</p>
/// <p>The page size is defined by the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> class which can be queried for page size attributes. Note that the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> itself is always defined in a Portrait orientation.</p>
/// <p>The minimum margins can be defined for the layout but normally default to 0. When used in conjunction with Qt's printing support the minimum margins will reflect the minimum printable area defined by the printer.</p>
/// <p>In the default <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> the current margins and minimum margins are always taken into account. The paintable rectangle is the full page rectangle less the current margins, and the current margins can only be set to values between the minimum margins and the maximum margins allowed by the full page size.</p>
/// <p>In <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> the current margins and minimum margins are not taken into account. The paintable rectangle is the full page rectangle, and the current margins can be set to any values regardless of the minimum margins and page size.</p></div>
#[repr(C)]
pub struct QPageLayout {
    _unused: u8,
}
impl QPageLayout {
    /// <p>Assignment operator, assigns <i>other</i> to this.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageLayout& QPageLayout::operator=(const QPageLayout& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assignment operator, assigns <i>other</i> to this.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageLayout>>,
    ) -> ::cpp_core::MutRef<crate::QPageLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_operator_1(
            self as *mut crate::QPageLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageLayout>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the full page rectangle in the current layout units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPageLayout::fullRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the full page rectangle in the current layout units.</p>
    /// <p>The page rectangle takes into account the page size and page orientation, but not the page margins.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#paintRect">paintRect</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#units">units</a>().</p></div>
    #[inline(always)]
    pub unsafe fn full_rect_0a(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageLayout_fullRect(self as *const crate::QPageLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the full page rectangle in the required <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPageLayout::fullRect(QPageLayout::Unit units) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the full page rectangle in the required <i>units</i>.</p>
    /// <p>The page rectangle takes into account the page size and page orientation, but not the page margins.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#paintRect">paintRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn full_rect_1a(
        &self,
        units: crate::q_page_layout::Unit,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_fullRect1(
            self as *const crate::QPageLayout,
            units,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the full page rectangle in device pixels for the given <i>resolution</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPageLayout::fullRectPixels(int resolution) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRectPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the full page rectangle in device pixels for the given <i>resolution</i>.</p>
    /// <p>The page rectangle takes into account the page size and page orientation, but not the page margins.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#paintRect">paintRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn full_rect_pixels(
        &self,
        resolution: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_fullRectPixels(
            self as *const crate::QPageLayout,
            resolution,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the full page rectangle in Postscript Points (1/72 of an inch).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPageLayout::fullRectPoints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRectPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the full page rectangle in Postscript Points (1/72 of an inch).</p>
    /// <p>The page rectangle takes into account the page size and page orientation, but not the page margins.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#paintRect">paintRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn full_rect_points(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_fullRectPoints(
            self as *const crate::QPageLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this page layout is equivalent to the <i>other</i> page layout, i.e. if the page has the same size, margins and orientation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageLayout::isEquivalentTo(const QPageLayout& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this page layout is equivalent to the <i>other</i> page layout, i.e. if the page has the same size, margins and orientation.</p></div>
    #[inline(always)]
    pub unsafe fn is_equivalent_to(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageLayout>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_isEquivalentTo(
            self as *const crate::QPageLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageLayout>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if this page layout is valid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageLayout::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this page layout is valid.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_isValid(self as *const crate::QPageLayout)
    }

    /// <p>Returns the margins of the page layout using the currently set units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMarginsF QPageLayout::margins() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#margins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the margins of the page layout using the currently set units.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#units">units</a>().</p></div>
    #[inline(always)]
    pub unsafe fn margins_0a(&self) -> ::cpp_core::CppBox<::qt_core::QMarginsF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageLayout_margins(self as *const crate::QPageLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the margins of the page layout using the requested <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMarginsF QPageLayout::margins(QPageLayout::Unit units) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#margins-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the margins of the page layout using the requested <i>units</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#margins">margins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn margins_1a(
        &self,
        units: crate::q_page_layout::Unit,
    ) -> ::cpp_core::CppBox<::qt_core::QMarginsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_margins1(
            self as *const crate::QPageLayout,
            units,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the margins of the page layout in device pixels for the given <i>resolution</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMargins QPageLayout::marginsPixels(int resolution) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#marginsPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the margins of the page layout in device pixels for the given <i>resolution</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn margins_pixels(
        &self,
        resolution: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QMargins> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_marginsPixels(
            self as *const crate::QPageLayout,
            resolution,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the margins of the page layout in Postscript Points (1/72 of an inch).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMargins QPageLayout::marginsPoints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#marginsPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the margins of the page layout in Postscript Points (1/72 of an inch).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#margins">margins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn margins_points(&self) -> ::cpp_core::CppBox<::qt_core::QMargins> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_marginsPoints(
            self as *const crate::QPageLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the maximum margins that would be applied if the page layout was in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMarginsF QPageLayout::maximumMargins() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#maximumMargins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum margins that would be applied if the page layout was in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a>.</p>
    /// <p>The maximum margins allowed are calculated as the full size of the page minus the minimum margins set. For example, if the page width is 100 points and the minimum right margin is 10 points, then the maximum left margin will be 90 points.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMinimumMargins">setMinimumMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#minimumMargins">minimumMargins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_margins(&self) -> ::cpp_core::CppBox<::qt_core::QMarginsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_maximumMargins(
            self as *const crate::QPageLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the minimum margins of the page layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMarginsF QPageLayout::minimumMargins() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#minimumMargins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the minimum margins of the page layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMinimumMargins">setMinimumMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#maximumMargins">maximumMargins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn minimum_margins(&self) -> ::cpp_core::CppBox<::qt_core::QMarginsF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_minimumMargins(
            self as *const crate::QPageLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the page layout mode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageLayout::Mode QPageLayout::mode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#mode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page layout mode.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMode">setMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mode(&self) -> crate::q_page_layout::Mode {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_mode(self as *const crate::QPageLayout)
    }

    /// <p>Creates an invalid <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageLayout::QPageLayout()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#QPageLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates an invalid <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPageLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_QPageLayout();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> with the given <i>pageSize</i>, <i>orientation</i> and <i>margins</i> in the given <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageLayout::QPageLayout(const QPageSize& pageSize, QPageLayout::Orientation orientation, const QMarginsF& margins, QPageLayout::Unit units = …, const QMarginsF& minMargins = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#QPageLayout-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> with the given <i>pageSize</i>, <i>orientation</i> and <i>margins</i> in the given <i>units</i>.</p>
    /// <p>Optionally define the minimum allowed margins <i>minMargins</i>, e.g. the minimum margins able to be printed by a physical print device.</p>
    /// <p>The constructed <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> will be in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a>.</p>
    /// <p>The <i>margins</i> given will be clamped to the minimum margins and the maximum margins allowed by the page size.</p></div>
    #[inline(always)]
    pub unsafe fn new_5a(
        page_size: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
        orientation: crate::q_page_layout::Orientation,
        margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
        units: crate::q_page_layout::Unit,
        min_margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
    ) -> ::cpp_core::CppBox<crate::QPageLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_QPageLayout1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(page_size)
                .as_raw_ptr(),
            orientation,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(margins)
                .as_raw_ptr(),
            units,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(min_margins)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> with the given <i>pageSize</i>, <i>orientation</i> and <i>margins</i> in the given <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageLayout::QPageLayout(const QPageSize& pageSize, QPageLayout::Orientation orientation, const QMarginsF& margins, QPageLayout::Unit units = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#QPageLayout-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> with the given <i>pageSize</i>, <i>orientation</i> and <i>margins</i> in the given <i>units</i>.</p>
    /// <p>Optionally define the minimum allowed margins <i>minMargins</i>, e.g. the minimum margins able to be printed by a physical print device.</p>
    /// <p>The constructed <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> will be in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a>.</p>
    /// <p>The <i>margins</i> given will be clamped to the minimum margins and the maximum margins allowed by the page size.</p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        page_size: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
        orientation: crate::q_page_layout::Orientation,
        margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
        units: crate::q_page_layout::Unit,
    ) -> ::cpp_core::CppBox<crate::QPageLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_QPageLayout3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(page_size)
                .as_raw_ptr(),
            orientation,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(margins)
                .as_raw_ptr(),
            units,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> with the given <i>pageSize</i>, <i>orientation</i> and <i>margins</i> in the given <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageLayout::QPageLayout(const QPageSize& pageSize, QPageLayout::Orientation orientation, const QMarginsF& margins)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#QPageLayout-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> with the given <i>pageSize</i>, <i>orientation</i> and <i>margins</i> in the given <i>units</i>.</p>
    /// <p>Optionally define the minimum allowed margins <i>minMargins</i>, e.g. the minimum margins able to be printed by a physical print device.</p>
    /// <p>The constructed <a href="http://doc.qt.io/qt-5/qpagelayout.html">QPageLayout</a> will be in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a>.</p>
    /// <p>The <i>margins</i> given will be clamped to the minimum margins and the maximum margins allowed by the page size.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        page_size: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
        orientation: crate::q_page_layout::Orientation,
        margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
    ) -> ::cpp_core::CppBox<crate::QPageLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_QPageLayout4(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(page_size)
                .as_raw_ptr(),
            orientation,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(margins)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy constructor, copies <i>other</i> to this.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPageLayout::QPageLayout(const QPageLayout& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#QPageLayout-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor, copies <i>other</i> to this.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageLayout>>,
    ) -> ::cpp_core::CppBox<crate::QPageLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_QPageLayout2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageLayout>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the page orientation of the page layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageLayout::Orientation QPageLayout::orientation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#orientation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page orientation of the page layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setOrientation">setOrientation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn orientation(&self) -> crate::q_page_layout::Orientation {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_orientation(self as *const crate::QPageLayout)
    }

    /// <p>Returns the page size of the page layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageSize QPageLayout::pageSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#pageSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page size of the page layout.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> is always defined in a Portrait orientation. To obtain a size that takes the set orientation into account you must use <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRect">fullRect</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setPageSize">setPageSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn page_size(&self) -> ::cpp_core::CppBox<crate::QPageSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageLayout_pageSize(self as *const crate::QPageLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the page rectangle in the current layout units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPageLayout::paintRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#paintRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page rectangle in the current layout units.</p>
    /// <p>The paintable rectangle takes into account the page size, orientation and margins.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> mode is set then the <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRect">fullRect</a>() is returned and the margins must be manually managed.</p></div>
    #[inline(always)]
    pub unsafe fn paint_rect_0a(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPageLayout_paintRect(self as *const crate::QPageLayout);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the page rectangle in the required <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPageLayout::paintRect(QPageLayout::Unit units) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#paintRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page rectangle in the required <i>units</i>.</p>
    /// <p>The paintable rectangle takes into account the page size, orientation and margins.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> mode is set then the <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRect">fullRect</a>() is returned and the margins must be manually managed.</p></div>
    #[inline(always)]
    pub unsafe fn paint_rect_1a(
        &self,
        units: crate::q_page_layout::Unit,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_paintRect1(
            self as *const crate::QPageLayout,
            units,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the paintable rectangle in rounded device pixels for the given <i>resolution</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPageLayout::paintRectPixels(int resolution) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#paintRectPixels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paintable rectangle in rounded device pixels for the given <i>resolution</i>.</p>
    /// <p>The paintable rectangle takes into account the page size, orientation and margins.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> mode is set then the <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRect">fullRect</a>() is returned and the margins must be manually managed.</p></div>
    #[inline(always)]
    pub unsafe fn paint_rect_pixels(
        &self,
        resolution: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_paintRectPixels(
            self as *const crate::QPageLayout,
            resolution,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the paintable rectangle in rounded Postscript Points (1/72 of an inch).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPageLayout::paintRectPoints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#paintRectPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paintable rectangle in rounded Postscript Points (1/72 of an inch).</p>
    /// <p>The paintable rectangle takes into account the page size, orientation and margins.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> mode is set then the <a href="http://doc.qt.io/qt-5/qpagelayout.html#fullRect">fullRect</a>() is returned and the margins must be manually managed.</p></div>
    #[inline(always)]
    pub unsafe fn paint_rect_points(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPageLayout_paintRectPoints(
            self as *const crate::QPageLayout,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the bottom page margin of the page layout to <i>bottomMargin</i>. Returns true if the margin was successfully set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageLayout::setBottomMargin(double bottomMargin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setBottomMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the bottom page margin of the page layout to <i>bottomMargin</i>. Returns true if the margin was successfully set.</p>
    /// <p>The units used are those currently defined for the layout. To use different units call <a href="http://doc.qt.io/qt-5/qpagelayout.html#setUnits">setUnits</a>() first.</p>
    /// <p>If in the default <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> then the new margin must fall between the minimum margin set and the maximum margin allowed by the page size, otherwise the margin will not be set.</p>
    /// <p>If in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> then any margin values will be accepted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#margins">margins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bottom_margin(&mut self, bottom_margin: ::std::os::raw::c_double) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setBottomMargin(
            self as *mut crate::QPageLayout,
            bottom_margin,
        )
    }

    /// <p>Sets the left page margin of the page layout to <i>leftMargin</i>. Returns true if the margin was successfully set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageLayout::setLeftMargin(double leftMargin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setLeftMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the left page margin of the page layout to <i>leftMargin</i>. Returns true if the margin was successfully set.</p>
    /// <p>The units used are those currently defined for the layout. To use different units call <a href="http://doc.qt.io/qt-5/qpagelayout.html#setUnits">setUnits</a>() first.</p>
    /// <p>If in the default <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> then the new margin must fall between the minimum margin set and the maximum margin allowed by the page size, otherwise the margin will not be set.</p>
    /// <p>If in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> then any margin values will be accepted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#margins">margins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_left_margin(&mut self, left_margin: ::std::os::raw::c_double) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setLeftMargin(
            self as *mut crate::QPageLayout,
            left_margin,
        )
    }

    /// <p>Sets the page margins of the page layout to <i>margins</i> Returns true if the margins were successfully set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageLayout::setMargins(const QMarginsF& margins)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page margins of the page layout to <i>margins</i> Returns true if the margins were successfully set.</p>
    /// <p>The units used are those currently defined for the layout. To use different units then call <a href="http://doc.qt.io/qt-5/qpagelayout.html#setUnits">setUnits</a>() first.</p>
    /// <p>If in the default <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> then all the new margins must fall between the minimum margins set and the maximum margins allowed by the page size, otherwise the margins will not be set.</p>
    /// <p>If in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> then any margin values will be accepted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#margins">margins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#units">units</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_margins(
        &mut self,
        margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setMargins(
            self as *mut crate::QPageLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(margins)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the minimum page margins of the page layout to <i>minMargins</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPageLayout::setMinimumMargins(const QMarginsF& minMargins)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setMinimumMargins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the minimum page margins of the page layout to <i>minMargins</i>.</p>
    /// <p>It is not recommended to override the default values set for a page size as this may be the minimum printable area for a physical print device.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> mode is set then the existing margins will be clamped to the new <i>minMargins</i> and the maximum allowed by the page size. If the <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> is set then the existing margins will be unchanged.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#minimumMargins">minimumMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_minimum_margins(
        &mut self,
        min_margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setMinimumMargins(
            self as *mut crate::QPageLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(min_margins)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets a page layout mode to <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPageLayout::setMode(QPageLayout::Mode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a page layout mode to <i>mode</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#mode">mode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mode(&mut self, mode: crate::q_page_layout::Mode) {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setMode(self as *mut crate::QPageLayout, mode)
    }

    /// <p>Sets the page orientation of the page layout to <i>orientation</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPageLayout::setOrientation(QPageLayout::Orientation orientation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setOrientation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page orientation of the page layout to <i>orientation</i>.</p>
    /// <p>Changing the orientation does not affect the current margins or the minimum margins.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#orientation">orientation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_orientation(&mut self, orientation: crate::q_page_layout::Orientation) {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setOrientation(
            self as *mut crate::QPageLayout,
            orientation,
        )
    }

    /// <p>Sets the page size of the page layout to <i>pageSize</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPageLayout::setPageSize(const QPageSize& pageSize, const QMarginsF& minMargins = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setPageSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page size of the page layout to <i>pageSize</i>.</p>
    /// <p>Optionally define the minimum allowed margins <i>minMargins</i>, e.g. the minimum margins able to be printed by a physical print device, otherwise the minimum margins will default to 0.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> is set then the existing margins will be clamped to the new minimum margins and the maximum margins allowed by the page size. If <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> is set then the existing margins will be unchanged.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#pageSize">pageSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_size_2a(
        &mut self,
        page_size: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
        min_margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setPageSize(
            self as *mut crate::QPageLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(page_size)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(min_margins)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the page size of the page layout to <i>pageSize</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPageLayout::setPageSize(const QPageSize& pageSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setPageSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page size of the page layout to <i>pageSize</i>.</p>
    /// <p>Optionally define the minimum allowed margins <i>minMargins</i>, e.g. the minimum margins able to be printed by a physical print device, otherwise the minimum margins will default to 0.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> is set then the existing margins will be clamped to the new minimum margins and the maximum margins allowed by the page size. If <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> is set then the existing margins will be unchanged.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#pageSize">pageSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_size_1a(
        &mut self,
        page_size: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setPageSize1(
            self as *mut crate::QPageLayout,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(page_size)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the right page margin of the page layout to <i>rightMargin</i>. Returns true if the margin was successfully set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageLayout::setRightMargin(double rightMargin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setRightMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the right page margin of the page layout to <i>rightMargin</i>. Returns true if the margin was successfully set.</p>
    /// <p>The units used are those currently defined for the layout. To use different units call <a href="http://doc.qt.io/qt-5/qpagelayout.html#setUnits">setUnits</a>() first.</p>
    /// <p>If in the default <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> then the new margin must fall between the minimum margin set and the maximum margin allowed by the page size, otherwise the margin will not be set.</p>
    /// <p>If in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> then any margin values will be accepted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#margins">margins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_right_margin(&mut self, right_margin: ::std::os::raw::c_double) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setRightMargin(
            self as *mut crate::QPageLayout,
            right_margin,
        )
    }

    /// <p>Sets the top page margin of the page layout to <i>topMargin</i>. Returns true if the margin was successfully set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPageLayout::setTopMargin(double topMargin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setTopMargin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the top page margin of the page layout to <i>topMargin</i>. Returns true if the margin was successfully set.</p>
    /// <p>The units used are those currently defined for the layout. To use different units call <a href="http://doc.qt.io/qt-5/qpagelayout.html#setUnits">setUnits</a>() first.</p>
    /// <p>If in the default <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">StandardMode</a> then the new margin must fall between the minimum margin set and the maximum margin allowed by the page size, otherwise the margin will not be set.</p>
    /// <p>If in <a href="http://doc.qt.io/qt-5/qpagelayout.html#Mode-enum">FullPageMode</a> then any margin values will be accepted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setMargins">setMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagelayout.html#margins">margins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_top_margin(&mut self, top_margin: ::std::os::raw::c_double) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setTopMargin(
            self as *mut crate::QPageLayout,
            top_margin,
        )
    }

    /// <p>Sets the <i>units</i> used to define the page layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPageLayout::setUnits(QPageLayout::Unit units)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#setUnits">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>units</i> used to define the page layout.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#units">units</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_units(&mut self, units: crate::q_page_layout::Unit) {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_setUnits(self as *mut crate::QPageLayout, units)
    }

    /// <p>Swaps this page layout with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPageLayout::swap(QPageLayout& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this page layout with <i>other</i>. This function is very fast and never fails.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPageLayout>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_swap(
            self as *mut crate::QPageLayout,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPageLayout>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the units the page layout is currently defined in.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageLayout::Unit QPageLayout::units() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#units">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the units the page layout is currently defined in.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#setUnits">setUnits</a>().</p></div>
    #[inline(always)]
    pub unsafe fn units(&self) -> crate::q_page_layout::Unit {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_units(self as *const crate::QPageLayout)
    }
}

pub mod q_paged_paint_device {
    //! C++ type: <span style='color: green;'>```QPagedPaintDevice```</span>

    /// <p>This enum type lists the available page sizes as defined in the Postscript PPD standard. These values are duplicated in <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> and QPrinter.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPagedPaintDevice::PageSize```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#PageSize-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type lists the available page sizes as defined in the Postscript PPD standard. These values are duplicated in <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> and QPrinter.</p>
    /// <p>The defined sizes are:</p>
    ///
    /// <p>Due to historic reasons <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Executive</a> is not the same as the standard Postscript and Windows Executive size, use <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::ExecutiveStandard</a> instead.</p>
    /// <p>The Postscript standard size <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::Folio</a> is different to the Windows DMPAPER_FOLIO size, use the Postscript standard size <a href="http://doc.qt.io/qt-5/qpagesize.html#PageSizeId-enum">QPageSize::FanFoldGermanLegal</a> if needed.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PageSize(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PageSize {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PageSize(value)
        }
    }

    impl From<PageSize> for ::std::os::raw::c_int {
        fn from(value: PageSize) -> Self {
            value.0
        }
    }

    impl PageSize {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PageSize {
        /// 210 x 297 mm, 8.26 x 11.69 inches (C++ enum variant: <span style='color: green;'>```A4 = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const A4: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(0);
        /// 176 x 250 mm, 6.93 x 9.84 inches (C++ enum variant: <span style='color: green;'>```B5 = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const B5: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(1);
        /// 8.5 x 11 inches, 215.9 x 279.4 mm (C++ enum variant: <span style='color: green;'>```Letter = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Letter: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(2);
        /// 8.5 x 14 inches, 215.9 x 355.6 mm (C++ enum variant: <span style='color: green;'>```Legal = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const Legal: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(3);
        /// 7.5 x 10 inches, 190.5 x 254 mm (C++ enum variant: <span style='color: green;'>```Executive = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const Executive: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(4);
        /// 841 x 1189 mm (C++ enum variant: <span style='color: green;'>```A0 = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const A0: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(5);
        /// 594 x 841 mm (C++ enum variant: <span style='color: green;'>```A1 = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const A1: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(6);
        /// 420 x 594 mm (C++ enum variant: <span style='color: green;'>```A2 = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const A2: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(7);
        /// 297 x 420 mm (C++ enum variant: <span style='color: green;'>```A3 = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const A3: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(8);
        /// 148 x 210 mm (C++ enum variant: <span style='color: green;'>```A5 = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const A5: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(9);
        /// 105 x 148 mm (C++ enum variant: <span style='color: green;'>```A6 = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const A6: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(10);
        /// 74 x 105 mm (C++ enum variant: <span style='color: green;'>```A7 = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const A7: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(11);
        /// 52 x 74 mm (C++ enum variant: <span style='color: green;'>```A8 = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const A8: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(12);
        /// 37 x 52 mm (C++ enum variant: <span style='color: green;'>```A9 = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const A9: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(13);
        /// 1000 x 1414 mm (C++ enum variant: <span style='color: green;'>```B0 = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const B0: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(14);
        /// 707 x 1000 mm (C++ enum variant: <span style='color: green;'>```B1 = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const B1: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(15);
        /// 31 x 44 mm (C++ enum variant: <span style='color: green;'>```B10 = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const B10: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(16);
        /// 500 x 707 mm (C++ enum variant: <span style='color: green;'>```B2 = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const B2: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(17);
        /// 353 x 500 mm (C++ enum variant: <span style='color: green;'>```B3 = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const B3: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(18);
        /// 250 x 353 mm (C++ enum variant: <span style='color: green;'>```B4 = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const B4: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(19);
        /// 125 x 176 mm (C++ enum variant: <span style='color: green;'>```B6 = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const B6: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(20);
        /// 88 x 125 mm (C++ enum variant: <span style='color: green;'>```B7 = 21```</span>)
        #[allow(non_upper_case_globals)]
        pub const B7: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(21);
        /// 62 x 88 mm (C++ enum variant: <span style='color: green;'>```B8 = 22```</span>)
        #[allow(non_upper_case_globals)]
        pub const B8: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(22);
        /// 33 x 62 mm (C++ enum variant: <span style='color: green;'>```B9 = 23```</span>)
        #[allow(non_upper_case_globals)]
        pub const B9: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(23);
        /// 163 x 229 mm (C++ enum variant: <span style='color: green;'>```C5E = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const C5E: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(24);
        /// 105 x 241 mm, U.S. Common 10 Envelope (C++ enum variant: <span style='color: green;'>```Comm10E = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const Comm10E: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(25);
        /// 110 x 220 mm (C++ enum variant: <span style='color: green;'>```DLE = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const DLE: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(26);
        /// 210 x 330 mm (C++ enum variant: <span style='color: green;'>```Folio = 27```</span>)
        #[allow(non_upper_case_globals)]
        pub const Folio: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(27);
        /// 431.8 x 279.4 mm (C++ enum variant: <span style='color: green;'>```Ledger = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const Ledger: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(28);
        /// 279.4 x 431.8 mm (C++ enum variant: <span style='color: green;'>```Tabloid = 29```</span>)
        #[allow(non_upper_case_globals)]
        pub const Tabloid: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(29);
        /// Unknown, or a user defined size. (C++ enum variant: <span style='color: green;'>```Custom = 30```</span>)
        #[allow(non_upper_case_globals)]
        pub const Custom: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(30);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A10 = 31```</span>)
        #[allow(non_upper_case_globals)]
        pub const A10: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(31);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A3Extra = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const A3Extra: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(32);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A4Extra = 33```</span>)
        #[allow(non_upper_case_globals)]
        pub const A4Extra: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(33);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A4Plus = 34```</span>)
        #[allow(non_upper_case_globals)]
        pub const A4Plus: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(34);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A4Small = 35```</span>)
        #[allow(non_upper_case_globals)]
        pub const A4Small: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(35);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```A5Extra = 36```</span>)
        #[allow(non_upper_case_globals)]
        pub const A5Extra: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(36);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```B5Extra = 37```</span>)
        #[allow(non_upper_case_globals)]
        pub const B5Extra: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(37);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB0 = 38```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB0: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(38);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB1 = 39```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB1: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(39);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB2 = 40```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB2: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(40);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB3 = 41```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB3: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(41);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB4 = 42```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB4: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(42);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB5 = 43```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB5: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(43);
        /// , (C++ enum variant: <span style='color: green;'>```JisB6 = 44```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB6: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(44);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB7 = 45```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB7: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(45);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB8 = 46```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB8: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(46);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB9 = 47```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB9: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(47);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```JisB10 = 48```</span>)
        #[allow(non_upper_case_globals)]
        pub const JisB10: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(48);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AnsiC = 49```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiC: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(49);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AnsiD = 50```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiD: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(50);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```AnsiE = 51```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiE: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(51);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LegalExtra = 52```</span>)
        #[allow(non_upper_case_globals)]
        pub const LegalExtra: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(52);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LetterExtra = 53```</span>)
        #[allow(non_upper_case_globals)]
        pub const LetterExtra: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(53);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LetterPlus = 54```</span>)
        #[allow(non_upper_case_globals)]
        pub const LetterPlus: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(54);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```LetterSmall = 55```</span>)
        #[allow(non_upper_case_globals)]
        pub const LetterSmall: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(55);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```TabloidExtra = 56```</span>)
        #[allow(non_upper_case_globals)]
        pub const TabloidExtra: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(56);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchA = 57```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchA: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(57);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchB = 58```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchB: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(58);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchC = 59```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchC: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(59);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchD = 60```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchD: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(60);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ArchE = 61```</span>)
        #[allow(non_upper_case_globals)]
        pub const ArchE: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(61);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial7x9 = 62```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial7X9: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(62);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial8x10 = 63```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial8X10: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(63);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial9x11 = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial9X11: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(64);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial9x12 = 65```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial9X12: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(65);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial10x11 = 66```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial10X11: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(66);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial10x13 = 67```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial10X13: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(67);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial10x14 = 68```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial10X14: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(68);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial12x11 = 69```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial12X11: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(69);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Imperial15x11 = 70```</span>)
        #[allow(non_upper_case_globals)]
        pub const Imperial15X11: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(70);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```ExecutiveStandard = 71```</span>)
        #[allow(non_upper_case_globals)]
        pub const ExecutiveStandard: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(71);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Note = 72```</span>)
        #[allow(non_upper_case_globals)]
        pub const Note: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(72);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Quarto = 73```</span>)
        #[allow(non_upper_case_globals)]
        pub const Quarto: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(73);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Statement = 74```</span>)
        #[allow(non_upper_case_globals)]
        pub const Statement: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(74);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```SuperA = 75```</span>)
        #[allow(non_upper_case_globals)]
        pub const SuperA: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(75);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```SuperB = 76```</span>)
        #[allow(non_upper_case_globals)]
        pub const SuperB: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(76);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Postcard = 77```</span>)
        #[allow(non_upper_case_globals)]
        pub const Postcard: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(77);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```DoublePostcard = 78```</span>)
        #[allow(non_upper_case_globals)]
        pub const DoublePostcard: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(78);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Prc16K = 79```</span>)
        #[allow(non_upper_case_globals)]
        pub const Prc16K: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(79);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Prc32K = 80```</span>)
        #[allow(non_upper_case_globals)]
        pub const Prc32K: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(80);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Prc32KBig = 81```</span>)
        #[allow(non_upper_case_globals)]
        pub const Prc32KBig: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(81);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FanFoldUS = 82```</span>)
        #[allow(non_upper_case_globals)]
        pub const FanFoldUS: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(82);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FanFoldGerman = 83```</span>)
        #[allow(non_upper_case_globals)]
        pub const FanFoldGerman: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(83);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```FanFoldGermanLegal = 84```</span>)
        #[allow(non_upper_case_globals)]
        pub const FanFoldGermanLegal: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(84);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeB4 = 85```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeB4: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(85);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeB5 = 86```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeB5: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(86);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeB6 = 87```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeB6: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(87);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC0 = 88```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC0: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(88);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC1 = 89```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC1: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(89);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC2 = 90```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC2: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(90);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC3 = 91```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC3: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(91);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC4 = 92```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC4: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(92);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC6 = 93```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC6: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(93);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC65 = 94```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC65: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(94);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeC7 = 95```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC7: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(95);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Envelope9 = 96```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope9: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(96);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Envelope11 = 97```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope11: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(97);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Envelope12 = 98```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope12: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(98);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Envelope14 = 99```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope14: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(99);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeMonarch = 100```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeMonarch: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(100);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePersonal = 101```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePersonal: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(101);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeChou3 = 102```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeChou3: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(102);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeChou4 = 103```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeChou4: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(103);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeInvite = 104```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeInvite: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(104);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeItalian = 105```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeItalian: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(105);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeKaku2 = 106```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeKaku2: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(106);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeKaku3 = 107```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeKaku3: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(107);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc1 = 108```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc1: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(108);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc2 = 109```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc2: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(109);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc3 = 110```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc3: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(110);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc4 = 111```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc4: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(111);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc5 = 112```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc5: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(112);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc6 = 113```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc6: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(113);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc7 = 114```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc7: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(114);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc8 = 115```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc8: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(115);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc9 = 116```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc9: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(116);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopePrc10 = 117```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopePrc10: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(117);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```EnvelopeYou4 = 118```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeYou4: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(118);
        /// = EnvelopeYou4 (C++ enum variant: <span style='color: green;'>```LastPageSize = 118```</span>)
        #[allow(non_upper_case_globals)]
        pub const LastPageSize: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(118);
        /// C++ enum variant: <span style='color: green;'>```NPageSize = 118```</span>
        #[allow(non_upper_case_globals)]
        pub const NPageSize: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(118);
        /// C++ enum variant: <span style='color: green;'>```NPaperSize = 118```</span>
        #[allow(non_upper_case_globals)]
        pub const NPaperSize: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(118);
        /// = Letter (C++ enum variant: <span style='color: green;'>```AnsiA = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiA: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(2);
        /// = Ledger (C++ enum variant: <span style='color: green;'>```AnsiB = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const AnsiB: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(28);
        /// = C5E (C++ enum variant: <span style='color: green;'>```EnvelopeC5 = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeC5: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(24);
        /// = DLE (C++ enum variant: <span style='color: green;'>```EnvelopeDL = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const EnvelopeDL: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(26);
        /// = Comm10E (C++ enum variant: <span style='color: green;'>```Envelope10 = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const Envelope10: crate::q_paged_paint_device::PageSize =
            crate::q_paged_paint_device::PageSize(25);
    }

    /// C++ class: <span style='color: green;'>```QPagedPaintDevice::Margins```</span>.
    #[repr(C)]
    pub struct Margins {
        _unused: u8,
    }
    impl Margins {
        /// Returns the value of the <span style='color: green;'>```bottom```</span> field.
        #[inline(always)]
        pub unsafe fn bottom(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_Margins_bottom(
                self as *const crate::q_paged_paint_device::Margins,
            )
        }

        /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice::Margins& QPagedPaintDevice::Margins::operator=(const QPagedPaintDevice::Margins& other)```</span>.
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_paged_paint_device::Margins>>,
        ) -> ::cpp_core::MutRef<crate::q_paged_paint_device::Margins> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_Margins_operator_(self as *mut crate::q_paged_paint_device::Margins, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_paged_paint_device::Margins>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// Returns the value of the <span style='color: green;'>```left```</span> field.
        #[inline(always)]
        pub unsafe fn left(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_Margins_left(
                self as *const crate::q_paged_paint_device::Margins,
            )
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QPagedPaintDevice::Margins::Margins()```</span>.
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_paged_paint_device::Margins> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_Margins_Margins();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QPagedPaintDevice::Margins::Margins(const QPagedPaintDevice::Margins& other)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_paged_paint_device::Margins>>,
        ) -> ::cpp_core::CppBox<crate::q_paged_paint_device::Margins> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_Margins_Margins1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_paged_paint_device::Margins>>::cast_into(other).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Returns the value of the <span style='color: green;'>```right```</span> field.
        #[inline(always)]
        pub unsafe fn right(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_Margins_right(
                self as *const crate::q_paged_paint_device::Margins,
            )
        }

        /// Sets the value of the <span style='color: green;'>```bottom```</span> field.
        #[inline(always)]
        pub unsafe fn set_bottom(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPagedPaintDevice_Margins_bottom(
                self as *mut crate::q_paged_paint_device::Margins,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```left```</span> field.
        #[inline(always)]
        pub unsafe fn set_left(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPagedPaintDevice_Margins_left(
                self as *mut crate::q_paged_paint_device::Margins,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```right```</span> field.
        #[inline(always)]
        pub unsafe fn set_right(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPagedPaintDevice_Margins_right(
                self as *mut crate::q_paged_paint_device::Margins,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```top```</span> field.
        #[inline(always)]
        pub unsafe fn set_top(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPagedPaintDevice_Margins_top(
                self as *mut crate::q_paged_paint_device::Margins,
                value,
            )
        }

        /// Returns the value of the <span style='color: green;'>```top```</span> field.
        #[inline(always)]
        pub unsafe fn top(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_Margins_top(
                self as *const crate::q_paged_paint_device::Margins,
            )
        }
    }

    /// <p>The PdfVersion enum describes the version of the PDF file that is produced by QPrinter or <a href="http://doc.qt.io/qt-5/qpdfwriter.html">QPdfWriter</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPagedPaintDevice::PdfVersion```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#PdfVersion-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The PdfVersion enum describes the version of the PDF file that is produced by QPrinter or <a href="http://doc.qt.io/qt-5/qpdfwriter.html">QPdfWriter</a>.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 5.10.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PdfVersion(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PdfVersion {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PdfVersion(value)
        }
    }

    impl From<PdfVersion> for ::std::os::raw::c_int {
        fn from(value: PdfVersion) -> Self {
            value.0
        }
    }

    impl PdfVersion {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PdfVersion {
        /// A PDF 1.4 compatible document is produced. (C++ enum variant: <span style='color: green;'>```PdfVersion_1_4 = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdfVersion14: crate::q_paged_paint_device::PdfVersion =
            crate::q_paged_paint_device::PdfVersion(0);
        /// A PDF/A-1b compatible document is produced. (C++ enum variant: <span style='color: green;'>```PdfVersion_A1b = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdfVersionA1b: crate::q_paged_paint_device::PdfVersion =
            crate::q_paged_paint_device::PdfVersion(1);
        /// A PDF 1.6 compatible document is produced. This value was added in Qt 5.12. (C++ enum variant: <span style='color: green;'>```PdfVersion_1_6 = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const PdfVersion16: crate::q_paged_paint_device::PdfVersion =
            crate::q_paged_paint_device::PdfVersion(2);
    }

    impl ::cpp_core::CppDeletable for crate::q_paged_paint_device::Margins {
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QPagedPaintDevice::Margins::~Margins()```</span>.
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_Margins_dMargins(
                self as *mut crate::q_paged_paint_device::Margins,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html">QPagedPaintDevice</a> class is a represents a paintdevice that supports multiple pages.</p>
///
/// C++ class: <span style='color: green;'>```QPagedPaintDevice```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html">QPagedPaintDevice</a> class is a represents a paintdevice that supports multiple pages.</p>
/// <p>Paged paint devices are used to generate output for printing or for formats like PDF. <a href="http://doc.qt.io/qt-5/qpdfwriter.html">QPdfWriter</a> and QPrinter inherit from it.</p></div>
#[repr(C)]
pub struct QPagedPaintDevice {
    _unused: u8,
}
impl QPagedPaintDevice {
    /// <p>Returns the current margins of the paint device. The default is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice::Margins QPagedPaintDevice::margins() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#margins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current margins of the paint device. The default is 0.</p>
    /// <p>Margins are specified in millimeters.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setMargins">setMargins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn margins(&self) -> ::cpp_core::CppBox<crate::q_paged_paint_device::Margins> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_margins(
            self as *const crate::QPagedPaintDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Starts a new page. Returns <code>true</code> on success.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QPagedPaintDevice::newPage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Starts a new page. Returns <code>true</code> on success.</p></div>
    #[inline(always)]
    pub unsafe fn new_page(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_newPage(
            self as *mut crate::QPagedPaintDevice,
        )
    }

    /// <p>Returns the current page layout. Use this method to access the current <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a>, <a href="http://doc.qt.io/qt-5/qpagelayout.html#Orientation-enum">QPageLayout::Orientation</a>, <a href="http://doc.qt.io/qt-5/qmarginsf.html">QMarginsF</a>, fullRect() and paintRect().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPageLayout QPagedPaintDevice::pageLayout() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current page layout. Use this method to access the current <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a>, <a href="http://doc.qt.io/qt-5/qpagelayout.html#Orientation-enum">QPageLayout::Orientation</a>, <a href="http://doc.qt.io/qt-5/qmarginsf.html">QMarginsF</a>, fullRect() and paintRect().</p>
    /// <p>Note that you cannot use the setters on the returned object, you must either call the individual <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html">QPagedPaintDevice</a> setters or use <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageLayout">setPageLayout</a>().</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageLayout">setPageLayout</a>(), <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSize">setPageSize</a>(), <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageOrientation">setPageOrientation</a>(), and <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageMargins">setPageMargins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn page_layout(&self) -> ::cpp_core::CppBox<crate::QPageLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_pageLayout(
            self as *const crate::QPagedPaintDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the currently used page size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice::PageSize QPagedPaintDevice::pageSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently used page size.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSize">setPageSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn page_size(&self) -> crate::q_paged_paint_device::PageSize {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_pageSize(
            self as *const crate::QPagedPaintDevice,
        )
    }

    /// <p>Returns the page size in millimeters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QPagedPaintDevice::pageSizeMM() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageSizeMM">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the page size in millimeters.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSizeMM">setPageSizeMM</a>().</p></div>
    #[inline(always)]
    pub unsafe fn page_size_m_m(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_pageSizeMM(
            self as *const crate::QPagedPaintDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the margins to be used to <i>margins</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPagedPaintDevice::setMargins(const QPagedPaintDevice::Margins& margins)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setMargins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the margins to be used to <i>margins</i>.</p>
    /// <p>Margins are specified in millimeters.</p>
    /// <p>The margins are purely a hint to the drawing method. They don't affect the coordinate system or clipping.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#margins">margins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_margins(
        &mut self,
        margins: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_paged_paint_device::Margins>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_setMargins(self as *mut crate::QPagedPaintDevice, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_paged_paint_device::Margins>>::cast_into(margins).as_raw_ptr())
    }

    /// <p>Sets the page layout to <i>newPageLayout</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPagedPaintDevice::setPageLayout(const QPageLayout& pageLayout)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page layout to <i>newPageLayout</i>.</p>
    /// <p>You should call this before calling <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>(), or immediately before calling <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() to apply the new page layout to a new page. You should not call any painting methods between a call to setPageLayout() and <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() as the wrong paint metrics may be used.</p>
    /// <p>Returns true if the page layout was successfully set to <i>newPageLayout</i>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_layout(
        &mut self,
        page_layout: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageLayout>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_setPageLayout(
            self as *mut crate::QPagedPaintDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageLayout>>::cast_into(page_layout)
                .as_raw_ptr(),
        )
    }

    /// <p>Set the page <i>margins</i> in the current page layout units.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPagedPaintDevice::setPageMargins(const QMarginsF& margins)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageMargins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the page <i>margins</i> in the current page layout units.</p>
    /// <p>You should call this before calling <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>(), or immediately before calling <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() to apply the new margins to a new page. You should not call any painting methods between a call to setPageMargins() and <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() as the wrong paint metrics may be used.</p>
    /// <p>To get the current page margins use <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().pageMargins().</p>
    /// <p>Returns true if the page margins were successfully set to <i>margins</i>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_margins_1a(
        &mut self,
        margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_setPageMargins(
            self as *mut crate::QPagedPaintDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(margins)
                .as_raw_ptr(),
        )
    }

    /// <p>Set the page <i>margins</i> defined in the given <i>units</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPagedPaintDevice::setPageMargins(const QMarginsF& margins, QPageLayout::Unit units)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageMargins-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the page <i>margins</i> defined in the given <i>units</i>.</p>
    /// <p>You should call this before calling <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>(), or immediately before calling <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() to apply the new margins to a new page. You should not call any painting methods between a call to <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageMargins">setPageMargins</a>() and <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() as the wrong paint metrics may be used.</p>
    /// <p>To get the current page margins use <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().pageMargins().</p>
    /// <p>Returns true if the page margins were successfully set to <i>margins</i>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_margins_2a(
        &mut self,
        margins: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMarginsF>>,
        units: crate::q_page_layout::Unit,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_setPageMargins1(
            self as *mut crate::QPagedPaintDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMarginsF>>::cast_into(margins)
                .as_raw_ptr(),
            units,
        )
    }

    /// <p>Sets the page <i>orientation</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPagedPaintDevice::setPageOrientation(QPageLayout::Orientation orientation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageOrientation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page <i>orientation</i>.</p>
    /// <p>The page orientation is used to define the orientation of the page size when obtaining the page rect.</p>
    /// <p>You should call this before calling <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>(), or immediately before calling <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() to apply the new orientation to a new page. You should not call any painting methods between a call to setPageOrientation() and <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() as the wrong paint metrics may be used.</p>
    /// <p>To get the current <a href="http://doc.qt.io/qt-5/qpagelayout.html#Orientation-enum">QPageLayout::Orientation</a> use <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().pageOrientation().</p>
    /// <p>Returns true if the page orientation was successfully set to <i>orientation</i>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_orientation(
        &mut self,
        orientation: crate::q_page_layout::Orientation,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_setPageOrientation(
            self as *mut crate::QPagedPaintDevice,
            orientation,
        )
    }

    /// <p>Sets the page size to <i>pageSize</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPagedPaintDevice::setPageSize(const QPageSize& pageSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page size to <i>pageSize</i>.</p>
    /// <p>To get the current <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> use <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().<a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageSize">pageSize</a>().</p>
    /// <p>You should call this before calling <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>(), or immediately before calling <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() to apply the new page size to a new page. You should not call any painting methods between a call to setPageSize() and <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">newPage</a>() as the wrong paint metrics may be used.</p>
    /// <p>Returns true if the page size was successfully set to <i>pageSize</i>.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageSize">pageSize</a>() and <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageLayout">pageLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_size_q_page_size(
        &mut self,
        page_size: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPageSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_setPageSize(
            self as *mut crate::QPagedPaintDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPageSize>>::cast_into(page_size)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the size of the a page to <i>size</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPagedPaintDevice::setPageSize(QPagedPaintDevice::PageSize size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSize-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the a page to <i>size</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSizeMM">setPageSizeMM</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_size_page_size(&mut self, size: crate::q_paged_paint_device::PageSize) {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_setPageSize1(
            self as *mut crate::QPagedPaintDevice,
            size,
        )
    }

    /// <p>Sets the page size to <i>size</i>. <i>size</i> is specified in millimeters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPagedPaintDevice::setPageSizeMM(const QSizeF& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSizeMM">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the page size to <i>size</i>. <i>size</i> is specified in millimeters.</p>
    /// <p>If the size matches a standard <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#PageSize-enum">QPagedPaintDevice::PageSize</a> then that page size will be used, otherwise <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#PageSize-enum">QPagedPaintDevice::Custom</a> will be set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#pageSizeMM">pageSizeMM</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_size_m_m(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_setPageSizeMM(
            self as *mut crate::QPagedPaintDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
        )
    }
}

pub mod q_painter {
    //! C++ type: <span style='color: green;'>```QPainter```</span>

    /// <p>Renderhints are used to specify flags to <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> that may or may not be respected by any given engine.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPainter::RenderHint```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#RenderHint-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Renderhints are used to specify flags to <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> that may or may not be respected by any given engine.</p>
    ///
    /// <p>The RenderHints type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;RenderHint&gt;. It stores an OR combination of RenderHint values.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#renderHints">renderHints</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHint">setRenderHint</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#rendering-quality">Rendering Quality</a>, and <a href="http://doc.qt.io/qt-5/qtwidgets-painting-concentriccircles-example.html">Concentric Circles Example</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RenderHint(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RenderHint {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RenderHint(value)
        }
    }

    impl From<RenderHint> for ::std::os::raw::c_int {
        fn from(value: RenderHint) -> Self {
            value.0
        }
    }

    impl RenderHint {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RenderHint {
        /// Indicates that the engine should antialias edges of primitives if possible. (C++ enum variant: <span style='color: green;'>```Antialiasing = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Antialiasing: crate::q_painter::RenderHint = crate::q_painter::RenderHint(1);
        /// Indicates that the engine should antialias text if possible. To forcibly disable antialiasing for text, do not use this hint. Instead, set <a href="http://doc.qt.io/qt-5/qfont.html#StyleStrategy-enum">QFont::NoAntialias</a> on your font's style strategy. (C++ enum variant: <span style='color: green;'>```TextAntialiasing = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const TextAntialiasing: crate::q_painter::RenderHint = crate::q_painter::RenderHint(2);
        /// Indicates that the engine should use a smooth pixmap transformation algorithm (such as bilinear) rather than nearest neighbor. (C++ enum variant: <span style='color: green;'>```SmoothPixmapTransform = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const SmoothPixmapTransform: crate::q_painter::RenderHint =
            crate::q_painter::RenderHint(4);
        /// This value is obsolete and will be ignored, use the Antialiasing render hint instead. (C++ enum variant: <span style='color: green;'>```HighQualityAntialiasing = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const HighQualityAntialiasing: crate::q_painter::RenderHint =
            crate::q_painter::RenderHint(8);
        /// This value is obsolete, the default for <a href="http://doc.qt.io/qt-5/qpen.html">QPen</a> is now non-cosmetic. (C++ enum variant: <span style='color: green;'>```NonCosmeticDefaultPen = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const NonCosmeticDefaultPen: crate::q_painter::RenderHint =
            crate::q_painter::RenderHint(16);
        /// Compatibility hint telling the engine to use the same X11 based fill rules as in Qt 4, where aliased rendering is offset by slightly less than half a pixel. Also will treat default constructed pens as cosmetic. Potentially useful when porting a Qt 4 application to Qt 5. (C++ enum variant: <span style='color: green;'>```Qt4CompatiblePainting = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const Qt4CompatiblePainting: crate::q_painter::RenderHint =
            crate::q_painter::RenderHint(32);
        /// Use a lossless image rendering, whenever possible. Currently, this hint is only used when <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> is employed to output a PDF file through QPrinter or <a href="http://doc.qt.io/qt-5/qpdfwriter.html">QPdfWriter</a>, where <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage">drawImage</a>()/<a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>() calls will encode images using a lossless compression algorithm instead of lossy JPEG compression. This value was added in Qt 5.13. (C++ enum variant: <span style='color: green;'>```LosslessImageRendering = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const LosslessImageRendering: crate::q_painter::RenderHint =
            crate::q_painter::RenderHint(64);
    }

    /// <p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
    ///
    /// C++ class: <span style='color: green;'>```QPainter::PixmapFragment```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
    /// <p>The <i>sourceLeft</i>, <i>sourceTop</i>, <i>width</i> and <i>height</i> variables are used as a source rectangle within the pixmap passed into the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function. The variables <i>x</i>, <i>y</i>, <i>width</i> and <i>height</i> are used to calculate the target rectangle that is drawn. <i>x</i> and <i>y</i> denotes the center of the target rectangle. The <i>width</i> and <i>height</i> in the target rectangle is scaled by the <i>scaleX</i> and <i>scaleY</i> values. The resulting target rectangle is then rotated <i>rotation</i> degrees around the <i>x</i>, <i>y</i> center point.</p></div>
    #[repr(C)]
    pub struct PixmapFragment {
        _unused: u8,
    }
    impl PixmapFragment {
        /// <p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPainter::PixmapFragment& QPainter::PixmapFragment::operator=(const QPainter::PixmapFragment& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
        /// <p>The <i>sourceLeft</i>, <i>sourceTop</i>, <i>width</i> and <i>height</i> variables are used as a source rectangle within the pixmap passed into the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function. The variables <i>x</i>, <i>y</i>, <i>width</i> and <i>height</i> are used to calculate the target rectangle that is drawn. <i>x</i> and <i>y</i> denotes the center of the target rectangle. The <i>width</i> and <i>height</i> in the target rectangle is scaled by the <i>scaleX</i> and <i>scaleY</i> values. The resulting target rectangle is then rotated <i>rotation</i> degrees around the <i>x</i>, <i>y</i> center point.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_painter::PixmapFragment>>,
        ) -> ::cpp_core::MutRef<crate::q_painter::PixmapFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_operator_(self as *mut crate::q_painter::PixmapFragment, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_painter::PixmapFragment>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```static QPainter::PixmapFragment QPainter::PixmapFragment::create(const QPointF& pos, const QRectF& sourceRect, double scaleX = …, double scaleY = …, double rotation = …, double opacity = …)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        /// <p>This function was introduced in  Qt 4.7.</p></div>
        #[inline(always)]
        pub unsafe fn create_6a(
            pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
            source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
            scale_x: ::std::os::raw::c_double,
            scale_y: ::std::os::raw::c_double,
            rotation: ::std::os::raw::c_double,
            opacity: ::std::os::raw::c_double,
        ) -> ::cpp_core::CppBox<crate::q_painter::PixmapFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_create(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                    .as_raw_ptr(),
                scale_x,
                scale_y,
                rotation,
                opacity,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```static QPainter::PixmapFragment QPainter::PixmapFragment::create(const QPointF& pos, const QRectF& sourceRect, double scaleX = …, double scaleY = …, double rotation = …)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        /// <p>This function was introduced in  Qt 4.7.</p></div>
        #[inline(always)]
        pub unsafe fn create_5a(
            pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
            source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
            scale_x: ::std::os::raw::c_double,
            scale_y: ::std::os::raw::c_double,
            rotation: ::std::os::raw::c_double,
        ) -> ::cpp_core::CppBox<crate::q_painter::PixmapFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_create1(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                    .as_raw_ptr(),
                scale_x,
                scale_y,
                rotation,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```static QPainter::PixmapFragment QPainter::PixmapFragment::create(const QPointF& pos, const QRectF& sourceRect, double scaleX = …, double scaleY = …)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        /// <p>This function was introduced in  Qt 4.7.</p></div>
        #[inline(always)]
        pub unsafe fn create_4a(
            pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
            source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
            scale_x: ::std::os::raw::c_double,
            scale_y: ::std::os::raw::c_double,
        ) -> ::cpp_core::CppBox<crate::q_painter::PixmapFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_create2(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                    .as_raw_ptr(),
                scale_x,
                scale_y,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```static QPainter::PixmapFragment QPainter::PixmapFragment::create(const QPointF& pos, const QRectF& sourceRect, double scaleX = …)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        /// <p>This function was introduced in  Qt 4.7.</p></div>
        #[inline(always)]
        pub unsafe fn create_3a(
            pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
            source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
            scale_x: ::std::os::raw::c_double,
        ) -> ::cpp_core::CppBox<crate::q_painter::PixmapFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_create3(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                    .as_raw_ptr(),
                scale_x,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```static QPainter::PixmapFragment QPainter::PixmapFragment::create(const QPointF& pos, const QRectF& sourceRect)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html#create">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is a convenience function that returns a <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> that is initialized with the <i>pos</i>, <i>sourceRect</i>, <i>scaleX</i>, <i>scaleY</i>, <i>rotation</i>, <i>opacity</i> parameters.</p>
        /// <p>This function was introduced in  Qt 4.7.</p></div>
        #[inline(always)]
        pub unsafe fn create_2a(
            pos: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
            source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        ) -> ::cpp_core::CppBox<crate::q_painter::PixmapFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_create4(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pos)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                    .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Returns the value of the <span style='color: green;'>```height```</span> field.
        #[inline(always)]
        pub unsafe fn height(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_height(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// <p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainter::PixmapFragment::PixmapFragment()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
        /// <p>The <i>sourceLeft</i>, <i>sourceTop</i>, <i>width</i> and <i>height</i> variables are used as a source rectangle within the pixmap passed into the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function. The variables <i>x</i>, <i>y</i>, <i>width</i> and <i>height</i> are used to calculate the target rectangle that is drawn. <i>x</i> and <i>y</i> denotes the center of the target rectangle. The <i>width</i> and <i>height</i> in the target rectangle is scaled by the <i>scaleX</i> and <i>scaleY</i> values. The resulting target rectangle is then rotated <i>rotation</i> degrees around the <i>x</i>, <i>y</i> center point.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_painter::PixmapFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_PixmapFragment();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainter::PixmapFragment::PixmapFragment(const QPainter::PixmapFragment& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
        /// <p>The <i>sourceLeft</i>, <i>sourceTop</i>, <i>width</i> and <i>height</i> variables are used as a source rectangle within the pixmap passed into the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function. The variables <i>x</i>, <i>y</i>, <i>width</i> and <i>height</i> are used to calculate the target rectangle that is drawn. <i>x</i> and <i>y</i> denotes the center of the target rectangle. The <i>width</i> and <i>height</i> in the target rectangle is scaled by the <i>scaleX</i> and <i>scaleY</i> values. The resulting target rectangle is then rotated <i>rotation</i> degrees around the <i>x</i>, <i>y</i> center point.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_painter::PixmapFragment>>,
        ) -> ::cpp_core::CppBox<crate::q_painter::PixmapFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_PixmapFragment1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_painter::PixmapFragment>>::cast_into(other).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Returns the value of the <span style='color: green;'>```opacity```</span> field.
        #[inline(always)]
        pub unsafe fn opacity(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_opacity(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// Returns the value of the <span style='color: green;'>```rotation```</span> field.
        #[inline(always)]
        pub unsafe fn rotation(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_rotation(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// Returns the value of the <span style='color: green;'>```scaleX```</span> field.
        #[inline(always)]
        pub unsafe fn scale_x(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_scaleX(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// Returns the value of the <span style='color: green;'>```scaleY```</span> field.
        #[inline(always)]
        pub unsafe fn scale_y(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_scaleY(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// Sets the value of the <span style='color: green;'>```height```</span> field.
        #[inline(always)]
        pub unsafe fn set_height(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_height(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```opacity```</span> field.
        #[inline(always)]
        pub unsafe fn set_opacity(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_opacity(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```rotation```</span> field.
        #[inline(always)]
        pub unsafe fn set_rotation(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_rotation(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```scaleX```</span> field.
        #[inline(always)]
        pub unsafe fn set_scale_x(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_scaleX(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```scaleY```</span> field.
        #[inline(always)]
        pub unsafe fn set_scale_y(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_scaleY(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```sourceLeft```</span> field.
        #[inline(always)]
        pub unsafe fn set_source_left(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_sourceLeft(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```sourceTop```</span> field.
        #[inline(always)]
        pub unsafe fn set_source_top(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_sourceTop(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```width```</span> field.
        #[inline(always)]
        pub unsafe fn set_width(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_width(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```x```</span> field.
        #[inline(always)]
        pub unsafe fn set_x(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_x(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Sets the value of the <span style='color: green;'>```y```</span> field.
        #[inline(always)]
        pub unsafe fn set_y(&mut self, value: ::std::os::raw::c_double) {
            crate::__ffi::ctr_qt_gui_ffi_set_QPainter_PixmapFragment_y(
                self as *mut crate::q_painter::PixmapFragment,
                value,
            )
        }

        /// Returns the value of the <span style='color: green;'>```sourceLeft```</span> field.
        #[inline(always)]
        pub unsafe fn source_left(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_sourceLeft(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// Returns the value of the <span style='color: green;'>```sourceTop```</span> field.
        #[inline(always)]
        pub unsafe fn source_top(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_sourceTop(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// Returns the value of the <span style='color: green;'>```width```</span> field.
        #[inline(always)]
        pub unsafe fn width(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_width(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// Returns the value of the <span style='color: green;'>```x```</span> field.
        #[inline(always)]
        pub unsafe fn x(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_x(
                self as *const crate::q_painter::PixmapFragment,
            )
        }

        /// Returns the value of the <span style='color: green;'>```y```</span> field.
        #[inline(always)]
        pub unsafe fn y(&self) -> ::std::os::raw::c_double {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_y(
                self as *const crate::q_painter::PixmapFragment,
            )
        }
    }

    /// <p>This enum was introduced or modified in  Qt 4.7.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPainter::PixmapFragmentHint```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#PixmapFragmentHint-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum was introduced or modified in  Qt 4.7.</p>
    /// <p>The PixmapFragmentHints type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;PixmapFragmentHint&gt;. It stores an OR combination of PixmapFragmentHint values.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() and <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PixmapFragmentHint(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PixmapFragmentHint {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PixmapFragmentHint(value)
        }
    }

    impl From<PixmapFragmentHint> for ::std::os::raw::c_int {
        fn from(value: PixmapFragmentHint) -> Self {
            value.0
        }
    }

    impl PixmapFragmentHint {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PixmapFragmentHint {
        /// Indicates that the pixmap fragments to be drawn are opaque. Opaque fragments are potentially faster to draw. (C++ enum variant: <span style='color: green;'>```OpaqueHint = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpaqueHint: crate::q_painter::PixmapFragmentHint =
            crate::q_painter::PixmapFragmentHint(1);
    }

    /// <p>Defines the modes supported for digital image compositing. Composition modes are used to specify how the pixels in one image, the source, are merged with the pixel in another image, the destination.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPainter::CompositionMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#CompositionMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines the modes supported for digital image compositing. Composition modes are used to specify how the pixels in one image, the source, are merged with the pixel in another image, the destination.</p>
    /// <p>Please note that the bitwise raster operation modes, denoted with a RasterOp prefix, are only natively supported in the X11 and raster paint engines. This means that the only way to utilize these modes on the Mac is via a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a>. The RasterOp denoted blend modes are <i>not</i> supported for pens and brushes with alpha components. Also, turning on the <a href="http://doc.qt.io/qt-5/qpainter.html#RenderHint-enum">QPainter::Antialiasing</a> render hint will effectively disable the RasterOp modes.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qpainter-compositionmode1.png" alt=""></p><p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qpainter-compositionmode2.png" alt=""></p><p>The most common type is SourceOver (often referred to as just alpha blending) where the source pixel is blended on top of the destination pixel in such a way that the alpha component of the source defines the translucency of the pixel.</p>
    /// <p>Several composition modes require an alpha channel in the source or target images to have an effect. For optimal performance the image format <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">Format_ARGB32_Premultiplied</a> is preferred.</p>
    /// <p>When a composition mode is set it applies to all painting operator, pens, brushes, gradients and pixmap/image drawing.</p>
    ///
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#compositionMode">compositionMode</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setCompositionMode">setCompositionMode</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#composition-modes">Composition Modes</a>, and <a href="http://doc.qt.io/qt-5/qtwidgets-painting-imagecomposition-example.html">Image Composition Example</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CompositionMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CompositionMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CompositionMode(value)
        }
    }

    impl From<CompositionMode> for ::std::os::raw::c_int {
        fn from(value: CompositionMode) -> Self {
            value.0
        }
    }

    impl CompositionMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CompositionMode {
        /// This is the default mode. The alpha of the source is used to blend the pixel on top of the destination. (C++ enum variant: <span style='color: green;'>```CompositionMode_SourceOver = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeSourceOver: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(0);
        /// The alpha of the destination is used to blend it on top of the source pixels. This mode is the inverse of CompositionMode_SourceOver. (C++ enum variant: <span style='color: green;'>```CompositionMode_DestinationOver = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeDestinationOver: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(1);
        /// The pixels in the destination are cleared (set to fully transparent) independent of the source. (C++ enum variant: <span style='color: green;'>```CompositionMode_Clear = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeClear: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(2);
        /// The output is the source pixel. (This means a basic copy operation and is identical to SourceOver when the source pixel is opaque). (C++ enum variant: <span style='color: green;'>```CompositionMode_Source = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeSource: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(3);
        /// The output is the destination pixel. This means that the blending has no effect. This mode is the inverse of CompositionMode_Source. (C++ enum variant: <span style='color: green;'>```CompositionMode_Destination = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(4);
        /// The output is the source, where the alpha is reduced by that of the destination. (C++ enum variant: <span style='color: green;'>```CompositionMode_SourceIn = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeSourceIn: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(5);
        /// The output is the destination, where the alpha is reduced by that of the source. This mode is the inverse of CompositionMode_SourceIn. (C++ enum variant: <span style='color: green;'>```CompositionMode_DestinationIn = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeDestinationIn: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(6);
        /// The output is the source, where the alpha is reduced by the inverse of destination. (C++ enum variant: <span style='color: green;'>```CompositionMode_SourceOut = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeSourceOut: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(7);
        /// The output is the destination, where the alpha is reduced by the inverse of the source. This mode is the inverse of CompositionMode_SourceOut. (C++ enum variant: <span style='color: green;'>```CompositionMode_DestinationOut = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeDestinationOut: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(8);
        /// The source pixel is blended on top of the destination, with the alpha of the source pixel reduced by the alpha of the destination pixel. (C++ enum variant: <span style='color: green;'>```CompositionMode_SourceAtop = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeSourceAtop: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(9);
        /// The destination pixel is blended on top of the source, with the alpha of the destination pixel is reduced by the alpha of the destination pixel. This mode is the inverse of CompositionMode_SourceAtop. (C++ enum variant: <span style='color: green;'>```CompositionMode_DestinationAtop = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeDestinationAtop: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(10);
        /// The source, whose alpha is reduced with the inverse of the destination alpha, is merged with the destination, whose alpha is reduced by the inverse of the source alpha. CompositionMode_Xor is not the same as the bitwise Xor. (C++ enum variant: <span style='color: green;'>```CompositionMode_Xor = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeXor: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(11);
        /// Both the alpha and color of the source and destination pixels are added together. (C++ enum variant: <span style='color: green;'>```CompositionMode_Plus = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModePlus: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(12);
        /// The output is the source color multiplied by the destination. Multiplying a color with white leaves the color unchanged, while multiplying a color with black produces black. (C++ enum variant: <span style='color: green;'>```CompositionMode_Multiply = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeMultiply: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(13);
        /// The source and destination colors are inverted and then multiplied. Screening a color with white produces white, whereas screening a color with black leaves the color unchanged. (C++ enum variant: <span style='color: green;'>```CompositionMode_Screen = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeScreen: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(14);
        /// Multiplies or screens the colors depending on the destination color. The destination color is mixed with the source color to reflect the lightness or darkness of the destination. (C++ enum variant: <span style='color: green;'>```CompositionMode_Overlay = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeOverlay: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(15);
        /// The darker of the source and destination colors is selected. (C++ enum variant: <span style='color: green;'>```CompositionMode_Darken = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeDarken: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(16);
        /// The lighter of the source and destination colors is selected. (C++ enum variant: <span style='color: green;'>```CompositionMode_Lighten = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeLighten: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(17);
        /// The destination color is brightened to reflect the source color. A black source color leaves the destination color unchanged. (C++ enum variant: <span style='color: green;'>```CompositionMode_ColorDodge = 18```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeColorDodge: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(18);
        /// The destination color is darkened to reflect the source color. A white source color leaves the destination color unchanged. (C++ enum variant: <span style='color: green;'>```CompositionMode_ColorBurn = 19```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeColorBurn: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(19);
        /// Multiplies or screens the colors depending on the source color. A light source color will lighten the destination color, whereas a dark source color will darken the destination color. (C++ enum variant: <span style='color: green;'>```CompositionMode_HardLight = 20```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeHardLight: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(20);
        /// Darkens or lightens the colors depending on the source color. Similar to CompositionMode_HardLight. (C++ enum variant: <span style='color: green;'>```CompositionMode_SoftLight = 21```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeSoftLight: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(21);
        /// Subtracts the darker of the colors from the lighter. Painting with white inverts the destination color, whereas painting with black leaves the destination color unchanged. (C++ enum variant: <span style='color: green;'>```CompositionMode_Difference = 22```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeDifference: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(22);
        /// Similar to CompositionMode_Difference, but with a lower contrast. Painting with white inverts the destination color, whereas painting with black leaves the destination color unchanged. (C++ enum variant: <span style='color: green;'>```CompositionMode_Exclusion = 23```</span>)
        #[allow(non_upper_case_globals)]
        pub const CompositionModeExclusion: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(23);
        /// Does a bitwise OR operation on the source and destination pixels (src OR dst). (C++ enum variant: <span style='color: green;'>```RasterOp_SourceOrDestination = 24```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpSourceOrDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(24);
        /// Does a bitwise AND operation on the source and destination pixels (src AND dst). (C++ enum variant: <span style='color: green;'>```RasterOp_SourceAndDestination = 25```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpSourceAndDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(25);
        /// Does a bitwise XOR operation on the source and destination pixels (src XOR dst). (C++ enum variant: <span style='color: green;'>```RasterOp_SourceXorDestination = 26```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpSourceXorDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(26);
        /// Does a bitwise NOR operation on the source and destination pixels ((NOT src) AND (NOT dst)). (C++ enum variant: <span style='color: green;'>```RasterOp_NotSourceAndNotDestination = 27```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpNotSourceAndNotDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(27);
        /// Does a bitwise NAND operation on the source and destination pixels ((NOT src) OR (NOT dst)). (C++ enum variant: <span style='color: green;'>```RasterOp_NotSourceOrNotDestination = 28```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpNotSourceOrNotDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(28);
        /// Does a bitwise operation where the source pixels are inverted and then XOR'ed with the destination ((NOT src) XOR dst). (C++ enum variant: <span style='color: green;'>```RasterOp_NotSourceXorDestination = 29```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpNotSourceXorDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(29);
        /// Does a bitwise operation where the source pixels are inverted (NOT src). (C++ enum variant: <span style='color: green;'>```RasterOp_NotSource = 30```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpNotSource: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(30);
        /// Does a bitwise operation where the source is inverted and then AND'ed with the destination ((NOT src) AND dst). (C++ enum variant: <span style='color: green;'>```RasterOp_NotSourceAndDestination = 31```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpNotSourceAndDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(31);
        /// Does a bitwise operation where the source is AND'ed with the inverted destination pixels (src AND (NOT dst)). (C++ enum variant: <span style='color: green;'>```RasterOp_SourceAndNotDestination = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpSourceAndNotDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(32);
        /// Does a bitwise operation where the source is inverted and then OR'ed with the destination ((NOT src) OR dst). (C++ enum variant: <span style='color: green;'>```RasterOp_NotSourceOrDestination = 33```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpNotSourceOrDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(33);
        /// Does a bitwise operation where the source is OR'ed with the inverted destination pixels (src OR (NOT dst)). (C++ enum variant: <span style='color: green;'>```RasterOp_SourceOrNotDestination = 34```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpSourceOrNotDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(34);
        /// The pixels in the destination are cleared (set to 0) independent of the source. (C++ enum variant: <span style='color: green;'>```RasterOp_ClearDestination = 35```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpClearDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(35);
        /// The pixels in the destination are set (set to 1) independent of the source. (C++ enum variant: <span style='color: green;'>```RasterOp_SetDestination = 36```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpSetDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(36);
        /// Does a bitwise operation where the destination pixels are inverted (NOT dst). (C++ enum variant: <span style='color: green;'>```RasterOp_NotDestination = 37```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpNotDestination: crate::q_painter::CompositionMode =
            crate::q_painter::CompositionMode(37);
    }

    impl From<crate::q_painter::PixmapFragmentHint>
        for ::qt_core::QFlags<crate::q_painter::PixmapFragmentHint>
    {
        fn from(value: crate::q_painter::PixmapFragmentHint) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_painter::PixmapFragmentHint>>> std::ops::BitOr<T>
        for crate::q_painter::PixmapFragmentHint
    {
        type Output = ::qt_core::QFlags<crate::q_painter::PixmapFragmentHint>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_painter::PixmapFragmentHint> {
            Into::<::qt_core::QFlags<crate::q_painter::PixmapFragmentHint>>::into(self) | rhs
        }
    }

    impl From<crate::q_painter::RenderHint> for ::qt_core::QFlags<crate::q_painter::RenderHint> {
        fn from(value: crate::q_painter::RenderHint) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_painter::RenderHint>>> std::ops::BitOr<T>
        for crate::q_painter::RenderHint
    {
        type Output = ::qt_core::QFlags<crate::q_painter::RenderHint>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_painter::RenderHint> {
            Into::<::qt_core::QFlags<crate::q_painter::RenderHint>>::into(self) | rhs
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_painter::PixmapFragment {
        /// <p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QPainter::PixmapFragment::~PixmapFragment()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This class is used in conjunction with the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function to specify how a pixmap, or sub-rect of a pixmap, is drawn.</p>
        /// <p>The <i>sourceLeft</i>, <i>sourceTop</i>, <i>width</i> and <i>height</i> variables are used as a source rectangle within the pixmap passed into the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">QPainter::drawPixmapFragments</a>() function. The variables <i>x</i>, <i>y</i>, <i>width</i> and <i>height</i> are used to calculate the target rectangle that is drawn. <i>x</i> and <i>y</i> denotes the center of the target rectangle. The <i>width</i> and <i>height</i> in the target rectangle is scaled by the <i>scaleX</i> and <i>scaleY</i> values. The resulting target rectangle is then rotated <i>rotation</i> degrees around the <i>x</i>, <i>y</i> center point.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QPainter_PixmapFragment_dPixmapFragment(
                self as *mut crate::q_painter::PixmapFragment,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> class performs low-level painting on widgets and other paint devices.</p>
///
/// C++ class: <span style='color: green;'>```QPainter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpainter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> class performs low-level painting on widgets and other paint devices.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> provides highly optimized functions to do most of the drawing GUI programs require. It can draw everything from simple lines to complex shapes like pies and chords. It can also draw aligned text and pixmaps. Normally, it draws in a "natural" coordinate system, but it can also do view and world transformation. <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> can operate on any object that inherits the <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> class.</p>
/// <p>The common use of <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> is inside a widget's paint event: Construct and customize (e.g. set the pen or the brush) the painter. Then draw. Remember to destroy the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> object after drawing. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">void</span> SimpleExampleWidget<span class="operator">::</span>paintEvent(<span class="type"><a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a></span> <span class="operator">*</span>)
///   {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
/// &#32;     painter<span class="operator">.</span>setPen(<span class="type">Qt</span><span class="operator">::</span>blue);
/// &#32;     painter<span class="operator">.</span>setFont(<span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span>(<span class="string">"Arial"</span><span class="operator">,</span> <span class="number">30</span>));
/// &#32;     painter<span class="operator">.</span>drawText(rect()<span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>AlignCenter<span class="operator">,</span> <span class="string">"Qt"</span>);
///   }
///
/// </pre>
/// <p>The core functionality of <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> is drawing, but the class also provide several functions that allows you to customize <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>'s settings and its rendering quality, and others that enable clipping. In addition you can control how different shapes are merged together by specifying the painter's composition mode.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qpainter.html#isActive">isActive</a>() function indicates whether the painter is active. A painter is activated by the <a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() function and the constructor that takes a <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> argument. The <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() function, and the destructor, deactivates it.</p>
/// <p>Together with the <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> and <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> classes, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> form the basis for Qt's paint system. <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> is the class used to perform drawing operations. <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> represents a device that can be painted on using a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>. <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> provides the interface that the painter uses to draw onto different types of devices. If the painter is active, <a href="http://doc.qt.io/qt-5/qpainter.html#device">device</a>() returns the paint device on which the painter paints, and <a href="http://doc.qt.io/qt-5/qpainter.html#paintEngine">paintEngine</a>() returns the paint engine that the painter is currently operating on. For more information, see the <a href="http://doc.qt.io/qt-5/paintsystem.html">Paint System</a>.</p>
/// <p>Sometimes it is desirable to make someone else paint on an unusual <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a>. <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> supports a static function to do this, setRedirected().</p>
/// <p><b>Warning:</b> When the paintdevice is a widget, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> can only be used inside a paintEvent() function or in a function called by paintEvent().</p>
/// <a name="settings"></a></div>
#[repr(C)]
pub struct QPainter {
    _unused: u8,
}
impl QPainter {
    /// <p>Returns the current background brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPainter::background() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#background">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current background brush.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setBackground">setBackground</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn background(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_background(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the current background mode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::BGMode QPainter::backgroundMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#backgroundMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current background mode.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setBackgroundMode">setBackgroundMode</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn background_mode(&self) -> ::qt_core::BGMode {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_backgroundMode(self as *const crate::QPainter)
    }

    /// <p>Begins painting the paint <i>device</i> and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::begin(QPaintDevice* arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Begins painting the paint <i>device</i> and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    /// <p>Notice that all painter settings (<a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setBrush">setBrush</a>() etc.) are reset to default values when begin() is called.</p>
    /// <p>The errors that can occur are serious problems, such as these:</p>
    /// <pre class="cpp">
    ///
    ///   painter<span class="operator">-</span><span class="operator">&gt;</span>begin(<span class="number">0</span>); <span class="comment">// impossible - paint device cannot be 0</span>
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a></span> image(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span>);
    ///   painter<span class="operator">-</span><span class="operator">&gt;</span>begin(<span class="operator">&amp;</span>image); <span class="comment">// impossible - image.isNull() == true;</span>
    ///
    ///   painter<span class="operator">-</span><span class="operator">&gt;</span>begin(myWidget);
    ///   painter2<span class="operator">-</span><span class="operator">&gt;</span>begin(myWidget); <span class="comment">// impossible - only one painter at a time</span>
    ///
    /// </pre>
    /// <p>Note that most of the time, you can use one of the constructors instead of begin(), and that <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() is automatically done at destruction.</p>
    /// <p><b>Warning:</b> A paint device can only be painted by one painter at a time.</p>
    /// <p><b>Warning:</b> Painting on a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> with the format <a href="http://doc.qt.io/qt-5/qimage.html#Format-enum">QImage::Format_Indexed8</a> is not supported.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_begin(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(arg1)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Flushes the painting pipeline and prepares for the user issuing commands directly to the underlying graphics context. Must be followed by a call to <a href="http://doc.qt.io/qt-5/qpainter.html#endNativePainting">endNativePainting</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::beginNativePainting()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#beginNativePainting">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Flushes the painting pipeline and prepares for the user issuing commands directly to the underlying graphics context. Must be followed by a call to <a href="http://doc.qt.io/qt-5/qpainter.html#endNativePainting">endNativePainting</a>().</p>
    /// <p>Note that only the states the underlying paint engine changes will be reset to their respective default states. The states we reset may change from release to release. The following states are currently reset in the OpenGL 2 engine:</p>
    /// <ul>
    /// <li>blending is disabled</li>
    /// <li>the depth, stencil and scissor tests are disabled</li>
    /// <li>the active texture unit is reset to 0</li>
    /// <li>the depth mask, depth function and the clear depth are reset to their default values</li>
    /// <li>the stencil mask, stencil operation and stencil function are reset to their default values</li>
    /// <li>the current color is reset to solid white</li>
    /// </ul>
    /// <p>If, for example, the OpenGL polygon mode is changed by the user inside a beginNativePaint()/<a href="http://doc.qt.io/qt-5/qpainter.html#endNativePainting">endNativePainting</a>() block, it will not be reset to the default state by <a href="http://doc.qt.io/qt-5/qpainter.html#endNativePainting">endNativePainting</a>(). Here is an example that shows intermixing of painter commands and raw OpenGL commands:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>fillRect(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">128</span><span class="operator">,</span> <span class="number">128</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>green);
    ///   painter<span class="operator">.</span>beginNativePainting();
    ///
    ///   glEnable(GL_SCISSOR_TEST);
    ///   glScissor(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">64</span><span class="operator">,</span> <span class="number">64</span>);
    ///
    ///   glClearColor(<span class="number">1</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span>);
    ///   glClear(GL_COLOR_BUFFER_BIT);
    ///
    ///   glDisable(GL_SCISSOR_TEST);
    ///
    ///   painter<span class="operator">.</span>endNativePainting();
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#endNativePainting">endNativePainting</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_native_painting(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_beginNativePainting(self as *mut crate::QPainter)
    }

    /// <p>Returns the bounding rectangle of the <i>text</i> as it will appear when drawn inside the given <i>rectangle</i> with the specified <i>flags</i> using the currently set <a href="http://doc.qt.io/qt-5/qpainter.html#font">font</a>(); i.e the function tells you where the <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>() function will draw when given the same arguments.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPainter::boundingRect(const QRectF& rect, int flags, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of the <i>text</i> as it will appear when drawn inside the given <i>rectangle</i> with the specified <i>flags</i> using the currently set <a href="http://doc.qt.io/qt-5/qpainter.html#font">font</a>(); i.e the function tells you where the <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>() function will draw when given the same arguments.</p>
    /// <p>If the <i>text</i> does not fit within the given <i>rectangle</i> using the specified <i>flags</i>, the function returns the required rectangle.</p>
    /// <p>The <i>flags</i> argument is a bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextIncludeTrailingSpaces</a></li>
    /// </ul>
    /// <p>If several of the horizontal or several of the vertical alignment flags are set, the resulting alignment is undefined.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>(), <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::Alignment</a>, and <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_f_int_q_string(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_boundingRect(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPainter::boundingRect(const QRect& rect, int flags, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle of the <i>text</i> as it will appear when drawn inside the given <i>rectangle</i> with the specified <i>flags</i> using the currently set <a href="http://doc.qt.io/qt-5/qpainter.html#font">font</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_int_q_string(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_boundingRect1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPainter::boundingRect(int x, int y, int w, int h, int flags, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the bounding rectangle of the given <i>text</i> as it will appear when drawn inside the rectangle beginning at the point (<i>x</i>, <i>y</i>) with width <i>w</i> and height <i>h</i>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_5_int_q_string(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_boundingRect2(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPainter::boundingRect(const QRectF& rect, const QString& text, const QTextOption& o = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Instead of specifying flags as a bitwise OR of the <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a> and <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a>, this overloaded function takes an <i>option</i> argument. The <a href="http://doc.qt.io/qt-5/qtextoption.html">QTextOption</a> class provides a description of general rich text properties.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html">QTextOption</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_f_q_string_q_text_option(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextOption>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_boundingRect3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextOption>>::cast_into(o).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPainter::boundingRect(const QRectF& rect, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Instead of specifying flags as a bitwise OR of the <a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a> and <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a>, this overloaded function takes an <i>option</i> argument. The <a href="http://doc.qt.io/qt-5/qtextoption.html">QTextOption</a> class provides a description of general rich text properties.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html">QTextOption</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect_q_rect_f_q_string(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_boundingRect4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the painter's current brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QBrush& QPainter::brush() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#brush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the painter's current brush.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setBrush">QPainter::setBrush</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn brush(&self) -> ::cpp_core::Ref<crate::QBrush> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_brush(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the currently set brush origin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QPainter::brushOrigin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#brushOrigin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set brush origin.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setBrushOrigin">setBrushOrigin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn brush_origin(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_brushOrigin(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the bounding rectangle of the current clip if there is a clip; otherwise returns an empty rectangle. Note that the clip region is given in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QPainter::clipBoundingRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#clipBoundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the bounding rectangle of the current clip if there is a clip; otherwise returns an empty rectangle. Note that the clip region is given in logical coordinates.</p>
    /// <p>The bounding rectangle is not guaranteed to be tight.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect">setClipRect</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setClipPath">setClipPath</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRegion">setClipRegion</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clip_bounding_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_clipBoundingRect(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current clip path in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainter::clipPath() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#clipPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current clip path in logical coordinates.</p>
    /// <p><b>Warning:</b> <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> does not store the combined clip explicitly as this is handled by the underlying <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a>, so the path is recreated on demand and transformed to the current logical coordinate system. This is potentially an expensive operation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setClipPath">setClipPath</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#clipRegion">clipRegion</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setClipping">setClipping</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clip_path(&self) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_clipPath(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the currently set clip region. Note that the clip region is given in logical coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QPainter::clipRegion() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#clipRegion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set clip region. Note that the clip region is given in logical coordinates.</p>
    /// <p><b>Warning:</b> <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> does not store the combined clip explicitly as this is handled by the underlying <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a>, so the path is recreated on demand and transformed to the current logical coordinate system. This is potentially an expensive operation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setClipRegion">setClipRegion</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#clipPath">clipPath</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setClipping">setClipping</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clip_region(&self) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_clipRegion(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the transformation matrix combining the current window/viewport and world transformation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix QPainter::combinedMatrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#combinedMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transformation matrix combining the current window/viewport and world transformation.</p>
    /// <p>It is advisable to use <a href="http://doc.qt.io/qt-5/qpainter.html#combinedTransform">combinedTransform</a>() instead of this function to preserve the properties of perspective transformations.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setWindow">setWindow</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setViewport">setViewport</a>().</p></div>
    #[inline(always)]
    pub unsafe fn combined_matrix(&self) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_combinedMatrix(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the transformation matrix combining the current window/viewport and world transformation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QPainter::combinedTransform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#combinedTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the transformation matrix combining the current window/viewport and world transformation.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setWindow">setWindow</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setViewport">setViewport</a>().</p></div>
    #[inline(always)]
    pub unsafe fn combined_transform(&self) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_combinedTransform(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current composition mode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainter::CompositionMode QPainter::compositionMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#compositionMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current composition mode.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#CompositionMode-enum">CompositionMode</a> and <a href="http://doc.qt.io/qt-5/qpainter.html#setCompositionMode">setCompositionMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn composition_mode(&self) -> crate::q_painter::CompositionMode {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_compositionMode(self as *const crate::QPainter)
    }

    /// <p>Returns the paint device on which this painter is currently painting, or 0 if the painter is not active.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* QPainter::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paint device on which this painter is currently painting, or 0 if the painter is not active.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#isActive">isActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device(&self) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_device(self as *const crate::QPainter);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the matrix that transforms from logical coordinates to device coordinates of the platform dependent paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QMatrix& QPainter::deviceMatrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#deviceMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix that transforms from logical coordinates to device coordinates of the platform dependent paint device.</p>
    /// <p><b>Note: </b>It is advisable to use <a href="http://doc.qt.io/qt-5/qpainter.html#deviceTransform">deviceTransform</a>() instead of this function to preserve the properties of perspective transformations.</p><p>This function is <i>only</i> needed when using platform painting commands on the platform dependent handle (<a href="http://doc.qt.io/qt-5/qt.html#HANDLE-typedef">Qt::HANDLE</a>), and the platform does not do transformations nativly.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintengine.html#PaintEngineFeature-enum">QPaintEngine::PaintEngineFeature</a> enum can be queried to determine whether the platform performs the transformations or not.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#worldMatrix">worldMatrix</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#hasFeature">QPaintEngine::hasFeature</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device_matrix(&self) -> ::cpp_core::Ref<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_deviceMatrix(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the matrix that transforms from logical coordinates to device coordinates of the platform dependent paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTransform& QPainter::deviceTransform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#deviceTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix that transforms from logical coordinates to device coordinates of the platform dependent paint device.</p>
    /// <p>This function is <i>only</i> needed when using platform painting commands on the platform dependent handle (<a href="http://doc.qt.io/qt-5/qt.html#HANDLE-typedef">Qt::HANDLE</a>), and the platform does not do transformations nativly.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintengine.html#PaintEngineFeature-enum">QPaintEngine::PaintEngineFeature</a> enum can be queried to determine whether the platform performs the transformations or not.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#hasFeature">QPaintEngine::hasFeature</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device_transform(&self) -> ::cpp_core::Ref<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_deviceTransform(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Draws the arc defined by the given <i>rectangle</i>, <i>startAngle</i> and <i>spanAngle</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawArc(const QRectF& rect, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawArc">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the arc defined by the given <i>rectangle</i>, <i>startAngle</i> and <i>spanAngle</i>.</p>
    /// <p>The <i>startAngle</i> and <i>spanAngle</i> must be specified in 1/16th of a degree, i.e. a full circle equals 5760 (16 * 360). Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-arc.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> rectangle(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///   <span class="type">int</span> startAngle <span class="operator">=</span> <span class="number">30</span> <span class="operator">*</span> <span class="number">16</span>;
    ///   <span class="type">int</span> spanAngle <span class="operator">=</span> <span class="number">120</span> <span class="operator">*</span> <span class="number">16</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawArc(rectangle<span class="operator">,</span> startAngle<span class="operator">,</span> spanAngle);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPie">drawPie</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawChord">drawChord</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_arc_q_rect_f2_int(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawArc(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            a,
            alen,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawArc(const QRect& arg1, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawArc-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the arc defined by the given <i>rectangle</i>, <i>startAngle</i> and <i>spanAngle</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_arc_q_rect2_int(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawArc1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
            a,
            alen,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawArc(int x, int y, int w, int h, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawArc-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the arc defined by the rectangle beginning at (<i>x</i>, <i>y</i>) with the specified <i>width</i> and <i>height</i>, and the given <i>startAngle</i> and <i>spanAngle</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_arc_6_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawArc2(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            a,
            alen,
        )
    }

    /// <p>Draws the chord defined by the given <i>rectangle</i>, <i>startAngle</i> and <i>spanAngle</i>. The chord is filled with the current <a href="http://doc.qt.io/qt-5/qpainter.html#brush">brush</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawChord(const QRectF& rect, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawChord">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the chord defined by the given <i>rectangle</i>, <i>startAngle</i> and <i>spanAngle</i>. The chord is filled with the current <a href="http://doc.qt.io/qt-5/qpainter.html#brush">brush</a>().</p>
    /// <p>The startAngle and spanAngle must be specified in 1/16th of a degree, i.e. a full circle equals 5760 (16 * 360). Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-chord.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> rectangle(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///   <span class="type">int</span> startAngle <span class="operator">=</span> <span class="number">30</span> <span class="operator">*</span> <span class="number">16</span>;
    ///   <span class="type">int</span> spanAngle <span class="operator">=</span> <span class="number">120</span> <span class="operator">*</span> <span class="number">16</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawChord(rect<span class="operator">,</span> startAngle<span class="operator">,</span> spanAngle);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawArc">drawArc</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawPie">drawPie</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_chord_q_rect_f2_int(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawChord(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            a,
            alen,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawChord(int x, int y, int w, int h, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawChord-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the chord defined by the rectangle beginning at (<i>x</i>, <i>y</i>) with the specified <i>width</i> and <i>height</i>, and the given <i>startAngle</i> and <i>spanAngle</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_chord_6_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawChord1(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            a,
            alen,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawChord(const QRect& arg1, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawChord-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the chord defined by the given <i>rectangle</i>, <i>startAngle</i> and <i>spanAngle</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_chord_q_rect2_int(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawChord2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
            a,
            alen,
        )
    }

    /// <p>Draws the convex polygon defined by the first <i>pointCount</i> points in the array <i>points</i> using the current pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawConvexPolygon(const QPointF* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawConvexPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the convex polygon defined by the first <i>pointCount</i> points in the array <i>points</i> using the current pen.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-polygon.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="keyword">static</span> <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span> points<span class="operator">[</span><span class="number">4</span><span class="operator">]</span> <span class="operator">=</span> {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">10.0</span><span class="operator">,</span> <span class="number">80.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">20.0</span><span class="operator">,</span> <span class="number">10.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">80.0</span><span class="operator">,</span> <span class="number">30.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">90.0</span><span class="operator">,</span> <span class="number">70.0</span>)
    ///   };
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawConvexPolygon(points<span class="operator">,</span> <span class="number">4</span>);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The first point is implicitly connected to the last point, and the polygon is filled with the current <a href="http://doc.qt.io/qt-5/qpainter.html#brush">brush</a>(). If the supplied polygon is not convex, i.e. it contains at least one angle larger than 180 degrees, the results are undefined.</p>
    /// <p>On some platforms (e.g. X11), the drawConvexPolygon() function can be faster than the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon">drawPolygon</a>() function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon">drawPolygon</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline">drawPolyline</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_convex_polygon_q_point_f_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawConvexPolygon(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawConvexPolygon(const QPolygonF& polygon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawConvexPolygon-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the convex polygon defined by <i>polygon</i> using the current pen and brush.</p></div>
    #[inline(always)]
    pub unsafe fn draw_convex_polygon_q_polygon_f(
        &mut self,
        polygon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawConvexPolygon1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(polygon)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawConvexPolygon(const QPoint* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawConvexPolygon-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the convex polygon defined by the first <i>pointCount</i> points in the array <i>points</i> using the current pen.</p></div>
    #[inline(always)]
    pub unsafe fn draw_convex_polygon_q_point_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPoint>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawConvexPolygon2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPoint>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawConvexPolygon(const QPolygon& polygon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawConvexPolygon-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the convex polygon defined by <i>polygon</i> using the current pen and brush.</p></div>
    #[inline(always)]
    pub unsafe fn draw_convex_polygon_q_polygon(
        &mut self,
        polygon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawConvexPolygon3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(polygon)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the ellipse defined by the given <i>rectangle</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawEllipse(const QRectF& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawEllipse">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the ellipse defined by the given <i>rectangle</i>.</p>
    /// <p>A filled ellipse has a size of <i>rectangle</i>.<a href="http://doc.qt.io/qt-5/qrect.html#size">size()</a>. A stroked ellipse has a size of <i>rectangle</i>.<a href="http://doc.qt.io/qt-5/qrect.html#size">size()</a> plus the pen width.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-ellipse.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> rectangle(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawEllipse(rectangle);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPie">drawPie</a>() and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_ellipse_q_rect_f(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawEllipse(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawEllipse(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawEllipse-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the ellipse defined by the given <i>rectangle</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_ellipse_q_rect(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawEllipse1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawEllipse(int x, int y, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawEllipse-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the ellipse defined by the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_ellipse_4_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawEllipse2(self as *mut crate::QPainter, x, y, w, h)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawEllipse(const QPointF& center, double rx, double ry)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawEllipse-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the ellipse positioned at <i>center</i> with radii <i>rx</i> and <i>ry</i>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn draw_ellipse_q_point_f2_double(
        &mut self,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        rx: ::std::os::raw::c_double,
        ry: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawEllipse3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(center)
                .as_raw_ptr(),
            rx,
            ry,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawEllipse(const QPoint& center, int rx, int ry)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawEllipse-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the ellipse positioned at <i>center</i> with radii <i>rx</i> and <i>ry</i>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn draw_ellipse_q_point2_int(
        &mut self,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        rx: ::std::os::raw::c_int,
        ry: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawEllipse4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(center)
                .as_raw_ptr(),
            rx,
            ry,
        )
    }

    /// <p>Draws the glyphs represented by <i>glyphs</i> at <i>position</i>. The <i>position</i> gives the edge of the baseline for the string of glyphs. The glyphs will be retrieved from the font selected on <i>glyphs</i> and at offsets given by the positions in <i>glyphs</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawGlyphRun(const QPointF& position, const QGlyphRun& glyphRun)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the glyphs represented by <i>glyphs</i> at <i>position</i>. The <i>position</i> gives the edge of the baseline for the string of glyphs. The glyphs will be retrieved from the font selected on <i>glyphs</i> and at offsets given by the positions in <i>glyphs</i>.</p>
    /// <p>This function was introduced in  Qt 4.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html#setRawFont">QGlyphRun::setRawFont</a>(), <a href="http://doc.qt.io/qt-5/qglyphrun.html#setPositions">QGlyphRun::setPositions</a>(), and <a href="http://doc.qt.io/qt-5/qglyphrun.html#setGlyphIndexes">QGlyphRun::setGlyphIndexes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_glyph_run(
        &mut self,
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        glyph_run: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawGlyphRun(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(position)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(glyph_run)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the rectangular portion <i>source</i> of the given <i>image</i> into the <i>target</i> rectangle in the paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QRectF& targetRect, const QImage& image, const QRectF& sourceRect, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the rectangular portion <i>source</i> of the given <i>image</i> into the <i>target</i> rectangle in the paint device.</p>
    /// <p><b>Note: </b>The image is scaled to fit the rectangle, if both the image and rectangle size disagree.</p><p><b>Note: </b>See <a href="http://doc.qt.io/qt-5/qpainter.html#drawing-high-resolution-versions-of-pixmaps-and-images">Drawing High Resolution Versions of Pixmaps and Images</a> on how this is affected by <a href="http://doc.qt.io/qt-5/qimage.html#devicePixelRatio">QImage::devicePixelRatio</a>().</p><p>If the image needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to specify how you would prefer this to happen.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> target(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> source(<span class="number">0.0</span><span class="operator">,</span> <span class="number">0.0</span><span class="operator">,</span> <span class="number">70.0</span><span class="operator">,</span> <span class="number">40.0</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span> image(<span class="string">":/images/myImage.png"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawImage(target<span class="operator">,</span> image<span class="operator">,</span> source);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#devicePixelRatio">QImage::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_rect_f_q_image_q_rect_f_q_flags_image_conversion_flag(
        &mut self,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                .as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QRect& targetRect, const QImage& image, const QRect& sourceRect, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>image</i> into the <i>target</i> rectangle in the paint device.</p>
    /// <p><b>Note: </b>The image is scaled to fit the rectangle, if both the image and rectangle size disagree.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_rect_q_image_q_rect_q_flags_image_conversion_flag(
        &mut self,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(source_rect)
                .as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QPointF& p, const QImage& image, const QRectF& sr, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>image</i> with its origin at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_point_f_q_image_q_rect_f_q_flags_image_conversion_flag(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(sr).as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QPoint& p, const QImage& image, const QRect& sr, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>image</i> with its origin at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_point_q_image_q_rect_q_flags_image_conversion_flag(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(sr).as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QRectF& r, const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>image</i> into the given <i>rectangle</i>.</p>
    /// <p><b>Note: </b>The image is scaled to fit the rectangle, if both the image and rectangle size disagree.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_rect_f_q_image(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QRect& r, const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>image</i> into the given <i>rectangle</i>.</p>
    /// <p><b>Note: </b>The image is scaled to fit the rectangle, if both the image and rectangle size disagree.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_rect_q_image(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage5(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QPointF& p, const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>image</i> at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_point_f_q_image(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage6(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QPoint& p, const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>image</i> at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_point_q_image(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage7(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(int x, int y, const QImage& image, int sx = …, int sy = …, int sw = …, int sh = …, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws an image at (<i>x</i>, <i>y</i>) by copying a part of <i>image</i> into the paint device.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto. (<i>sx</i>, <i>sy</i>) specifies the top-left point in <i>image</i> that is to be drawn. The default is (0, 0).</p>
    /// <p>(<i>sw</i>, <i>sh</i>) specifies the size of the image that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the image.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_2_int_q_image4_int_q_flags_image_conversion_flag(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sx: ::std::os::raw::c_int,
        sy: ::std::os::raw::c_int,
        sw: ::std::os::raw::c_int,
        sh: ::std::os::raw::c_int,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage8(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            sx,
            sy,
            sw,
            sh,
            flags.to_int(),
        )
    }

    /// <p>Draws the rectangular portion <i>source</i> of the given <i>image</i> into the <i>target</i> rectangle in the paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QRectF& targetRect, const QImage& image, const QRectF& sourceRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the rectangular portion <i>source</i> of the given <i>image</i> into the <i>target</i> rectangle in the paint device.</p>
    /// <p><b>Note: </b>The image is scaled to fit the rectangle, if both the image and rectangle size disagree.</p><p><b>Note: </b>See <a href="http://doc.qt.io/qt-5/qpainter.html#drawing-high-resolution-versions-of-pixmaps-and-images">Drawing High Resolution Versions of Pixmaps and Images</a> on how this is affected by <a href="http://doc.qt.io/qt-5/qimage.html#devicePixelRatio">QImage::devicePixelRatio</a>().</p><p>If the image needs to be modified to fit in a lower-resolution result (e.g. converting from 32-bit to 8-bit), use the <i>flags</i> to specify how you would prefer this to happen.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> target(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> source(<span class="number">0.0</span><span class="operator">,</span> <span class="number">0.0</span><span class="operator">,</span> <span class="number">70.0</span><span class="operator">,</span> <span class="number">40.0</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qimage.html">QImage</a></span> image(<span class="string">":/images/myImage.png"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawImage(target<span class="operator">,</span> image<span class="operator">,</span> source);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#devicePixelRatio">QImage::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_rect_f_q_image_q_rect_f(
        &mut self,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage9(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QRect& targetRect, const QImage& image, const QRect& sourceRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>image</i> into the <i>target</i> rectangle in the paint device.</p>
    /// <p><b>Note: </b>The image is scaled to fit the rectangle, if both the image and rectangle size disagree.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_rect_q_image_q_rect(
        &mut self,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage10(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(source_rect)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QPointF& p, const QImage& image, const QRectF& sr)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>image</i> with its origin at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_point_f_q_image_q_rect_f(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage11(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(sr).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(const QPoint& p, const QImage& image, const QRect& sr)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>image</i> with its origin at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_q_point_q_image_q_rect(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage12(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(sr).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(int x, int y, const QImage& image, int sx = …, int sy = …, int sw = …, int sh = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws an image at (<i>x</i>, <i>y</i>) by copying a part of <i>image</i> into the paint device.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto. (<i>sx</i>, <i>sy</i>) specifies the top-left point in <i>image</i> that is to be drawn. The default is (0, 0).</p>
    /// <p>(<i>sw</i>, <i>sh</i>) specifies the size of the image that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the image.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_2_int_q_image4_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sx: ::std::os::raw::c_int,
        sy: ::std::os::raw::c_int,
        sw: ::std::os::raw::c_int,
        sh: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage13(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            sx,
            sy,
            sw,
            sh,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(int x, int y, const QImage& image, int sx = …, int sy = …, int sw = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws an image at (<i>x</i>, <i>y</i>) by copying a part of <i>image</i> into the paint device.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto. (<i>sx</i>, <i>sy</i>) specifies the top-left point in <i>image</i> that is to be drawn. The default is (0, 0).</p>
    /// <p>(<i>sw</i>, <i>sh</i>) specifies the size of the image that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the image.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_2_int_q_image3_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sx: ::std::os::raw::c_int,
        sy: ::std::os::raw::c_int,
        sw: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage14(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            sx,
            sy,
            sw,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(int x, int y, const QImage& image, int sx = …, int sy = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws an image at (<i>x</i>, <i>y</i>) by copying a part of <i>image</i> into the paint device.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto. (<i>sx</i>, <i>sy</i>) specifies the top-left point in <i>image</i> that is to be drawn. The default is (0, 0).</p>
    /// <p>(<i>sw</i>, <i>sh</i>) specifies the size of the image that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the image.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_2_int_q_image2_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sx: ::std::os::raw::c_int,
        sy: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage15(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            sx,
            sy,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(int x, int y, const QImage& image, int sx = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws an image at (<i>x</i>, <i>y</i>) by copying a part of <i>image</i> into the paint device.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto. (<i>sx</i>, <i>sy</i>) specifies the top-left point in <i>image</i> that is to be drawn. The default is (0, 0).</p>
    /// <p>(<i>sw</i>, <i>sh</i>) specifies the size of the image that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the image.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_2_int_q_image_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sx: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage16(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
            sx,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawImage(int x, int y, const QImage& image)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawImage-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws an image at (<i>x</i>, <i>y</i>) by copying a part of <i>image</i> into the paint device.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto. (<i>sx</i>, <i>sy</i>) specifies the top-left point in <i>image</i> that is to be drawn. The default is (0, 0).</p>
    /// <p>(<i>sw</i>, <i>sh</i>) specifies the size of the image that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the image.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_2_int_q_image(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        image: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawImage17(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(image).as_raw_ptr(),
        )
    }

    /// <p>Draws a line defined by <i>line</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLine(const QLineF& line)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a line defined by <i>line</i>.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-line.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlinef.html">QLineF</a></span> line(<span class="number">10.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">90.0</span><span class="operator">,</span> <span class="number">20.0</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span>(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawLine(line);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawLines">drawLines</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline">drawPolyline</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_line_q_line_f(
        &mut self,
        line: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLine(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(line)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLine(const QLine& line)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLine-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a line defined by <i>line</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_line_q_line(
        &mut self,
        line: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLine1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(line).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLine(int x1, int y1, int x2, int y2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLine-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a line from (<i>x1</i>, <i>y1</i>) to (<i>x2</i>, <i>y2</i>).</p></div>
    #[inline(always)]
    pub unsafe fn draw_line_4_int(
        &mut self,
        x1: ::std::os::raw::c_int,
        y1: ::std::os::raw::c_int,
        x2: ::std::os::raw::c_int,
        y2: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLine2(
            self as *mut crate::QPainter,
            x1,
            y1,
            x2,
            y2,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLine(const QPoint& p1, const QPoint& p2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLine-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a line from <i>p1</i> to <i>p2</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_line_2_q_point(
        &mut self,
        p1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        p2: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLine3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p2).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLine(const QPointF& p1, const QPointF& p2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLine-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a line from <i>p1</i> to <i>p2</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_line_2_q_point_f(
        &mut self,
        p1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        p2: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLine4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p2).as_raw_ptr(),
        )
    }

    /// <p>Draws the first <i>lineCount</i> lines in the array <i>lines</i> using the current pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLines(const QLineF* lines, int lineCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLines">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the first <i>lineCount</i> lines in the array <i>lines</i> using the current pen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawLine">drawLine</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline">drawPolyline</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_line_f_int(
        &mut self,
        lines: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QLineF>>,
        line_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLines(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QLineF>>::cast_into(lines)
                .as_raw_ptr(),
            line_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLines(const QVector<QLineF>& lines)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLines-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the set of lines defined by the list <i>lines</i> using the current pen and brush.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_vector_of_q_line_f(
        &mut self,
        lines: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLines1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLineF>>::cast_into(lines)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLines(const QPointF* pointPairs, int lineCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLines-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the first <i>lineCount</i> lines in the array <i>pointPairs</i> using the current pen. The lines are specified as pairs of points so the number of entries in <i>pointPairs</i> must be at least <i>lineCount</i> * 2.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_point_f_int(
        &mut self,
        point_pairs: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        line_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLines2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(point_pairs)
                .as_raw_ptr(),
            line_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLines(const QVector<QPointF>& pointPairs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLines-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a line for each pair of points in the vector <i>pointPairs</i> using the current pen. If there is an odd number of points in the array, the last point will be ignored.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_vector_of_q_point_f(
        &mut self,
        point_pairs: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfQPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLines3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfQPointF>>::cast_into(
                point_pairs,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLines(const QLine* lines, int lineCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLines-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the first <i>lineCount</i> lines in the array <i>lines</i> using the current pen.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_line_int(
        &mut self,
        lines: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QLine>>,
        line_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLines4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QLine>>::cast_into(lines)
                .as_raw_ptr(),
            line_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLines(const QVector<QLine>& lines)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLines-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the set of lines defined by the list <i>lines</i> using the current pen and brush.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_vector_of_q_line(
        &mut self,
        lines: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLines5(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLine>>::cast_into(lines)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLines(const QPoint* pointPairs, int lineCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLines-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the first <i>lineCount</i> lines in the array <i>pointPairs</i> using the current pen.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_point_int(
        &mut self,
        point_pairs: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPoint>>,
        line_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLines6(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPoint>>::cast_into(point_pairs)
                .as_raw_ptr(),
            line_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawLines(const QVector<QPoint>& pointPairs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawLines-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a line for each pair of points in the vector <i>pointPairs</i> using the current pen.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_vector_of_q_point(
        &mut self,
        point_pairs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawLines7(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPoint>>::cast_into(point_pairs)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the given painter <i>path</i> using the current pen for outline and the current brush for filling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPath(const QPainterPath& path)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the given painter <i>path</i> using the current pen for outline and the current brush for filling.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-path.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a></span> path;
    ///   path<span class="operator">.</span>moveTo(<span class="number">20</span><span class="operator">,</span> <span class="number">80</span>);
    ///   path<span class="operator">.</span>lineTo(<span class="number">20</span><span class="operator">,</span> <span class="number">30</span>);
    ///   path<span class="operator">.</span>cubicTo(<span class="number">80</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">50</span><span class="operator">,</span> <span class="number">50</span><span class="operator">,</span> <span class="number">80</span><span class="operator">,</span> <span class="number">80</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawPath(path);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtwidgets-painting-painterpaths-example.html">the Painter Paths example</a> and <a href="http://doc.qt.io/qt-5/qtwidgets-painting-deform-example.html">the Vector Deformation example</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_path(
        &mut self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPath(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
        )
    }

    /// <p>Replays the given <i>picture</i> at the given <i>point</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPicture(const QPointF& p, const QPicture& picture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPicture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replays the given <i>picture</i> at the given <i>point</i>.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> class is a paint device that records and replays <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> commands. A picture serializes the painter commands to an IO device in a platform-independent format. Everything that can be painted on a widget or pixmap can also be stored in a picture.</p>
    /// <p>This function does exactly the same as <a href="http://doc.qt.io/qt-5/qpicture.html#play">QPicture::play</a>() when called with <i>point</i> = <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>(0, 0).</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a></span> picture;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span> point(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span>)
    ///   picture<span class="operator">.</span>load(<span class="string">"drawing.pic"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawPicture(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> picture);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#play">QPicture::play</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_picture_q_point_f_q_picture(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        picture: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPicture>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPicture(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPicture>>::cast_into(picture)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPicture(int x, int y, const QPicture& picture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPicture-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>picture</i> at point (<i>x</i>, <i>y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn draw_picture_2_int_q_picture(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        picture: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPicture>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPicture1(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPicture>>::cast_into(picture)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPicture(const QPoint& p, const QPicture& picture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPicture-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Replays the given <i>picture</i> at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_picture_q_point_q_picture(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        picture: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPicture>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPicture2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPicture>>::cast_into(picture)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws a pie defined by the given <i>rectangle</i>, <i>startAngle</i> and <i>spanAngle</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPie(const QRectF& rect, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPie">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a pie defined by the given <i>rectangle</i>, <i>startAngle</i> and <i>spanAngle</i>.</p>
    /// <p>The pie is filled with the current <a href="http://doc.qt.io/qt-5/qpainter.html#brush">brush</a>().</p>
    /// <p>The startAngle and spanAngle must be specified in 1/16th of a degree, i.e. a full circle equals 5760 (16 * 360). Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-pie.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> rectangle(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///   <span class="type">int</span> startAngle <span class="operator">=</span> <span class="number">30</span> <span class="operator">*</span> <span class="number">16</span>;
    ///   <span class="type">int</span> spanAngle <span class="operator">=</span> <span class="number">120</span> <span class="operator">*</span> <span class="number">16</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawPie(rectangle<span class="operator">,</span> startAngle<span class="operator">,</span> spanAngle);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawEllipse">drawEllipse</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawChord">drawChord</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pie_q_rect_f2_int(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPie(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            a,
            alen,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPie(int x, int y, int w, int h, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPie-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the pie defined by the rectangle beginning at (<i>x</i>, <i>y</i>) with the specified <i>width</i> and <i>height</i>, and the given <i>startAngle</i> and <i>spanAngle</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pie_6_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPie1(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            a,
            alen,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPie(const QRect& arg1, int a, int alen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPie-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a pie defined by the given <i>rectangle</i>, <i>startAngle</i> and and <i>spanAngle</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pie_q_rect2_int(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        a: ::std::os::raw::c_int,
        alen: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPie2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
            a,
            alen,
        )
    }

    /// <p>Draws the rectangular portion <i>source</i> of the given <i>pixmap</i> into the given <i>target</i> in the paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(const QRectF& targetRect, const QPixmap& pixmap, const QRectF& sourceRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the rectangular portion <i>source</i> of the given <i>pixmap</i> into the given <i>target</i> in the paint device.</p>
    /// <p><b>Note: </b>The pixmap is scaled to fit the rectangle, if both the pixmap and rectangle size disagree.</p><p><b>Note: </b>See <a href="http://doc.qt.io/qt-5/qpainter.html#drawing-high-resolution-versions-of-pixmaps-and-images">Drawing High Resolution Versions of Pixmaps and Images</a> on how this is affected by <a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">QPixmap::devicePixelRatio</a>().</p><div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> target(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> source(<span class="number">0.0</span><span class="operator">,</span> <span class="number">0.0</span><span class="operator">,</span> <span class="number">70.0</span><span class="operator">,</span> <span class="number">40.0</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a></span> pixmap(<span class="string">":myPixmap.png"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span>(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawPixmap(target<span class="operator">,</span> pixmap<span class="operator">,</span> source);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>If <i>pixmap</i> is a <a href="http://doc.qt.io/qt-5/qbitmap.html">QBitmap</a> it is drawn with the bits that are "set" using the pens color. If <a href="http://doc.qt.io/qt-5/qpainter.html#backgroundMode">backgroundMode</a> is <a href="http://doc.qt.io/qt-5/qt.html#BGMode-enum">Qt::OpaqueMode</a>, the "unset" bits are drawn using the color of the background brush; if <a href="http://doc.qt.io/qt-5/qpainter.html#backgroundMode">backgroundMode</a> is <a href="http://doc.qt.io/qt-5/qt.html#BGMode-enum">Qt::TransparentMode</a>, the "unset" bits are transparent. Drawing bitmaps with gradient or texture colors is not supported.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawImage">drawImage</a>() and <a href="http://doc.qt.io/qt-5/qpixmap.html#devicePixelRatio">QPixmap::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_q_rect_f_q_pixmap_q_rect_f(
        &mut self,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(const QRect& targetRect, const QPixmap& pixmap, const QRect& sourceRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>pixmap</i> into the given <i>target</i> in the paint device.</p>
    /// <p><b>Note: </b>The pixmap is scaled to fit the rectangle, if both the pixmap and rectangle size disagree.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_q_rect_q_pixmap_q_rect(
        &mut self,
        target_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target_rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(source_rect)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap& pm, int sx, int sy, int sw, int sh)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion with the origin (<i>sx</i>, <i>sy</i>), width <i>sw</i> and height <i>sh</i>, of the given <i>pixmap</i> , at the point (<i>x</i>, <i>y</i>), with a width of <i>w</i> and a height of <i>h</i>. If sw or sh are equal to zero the width/height of the pixmap is used and adjusted by the offset sx/sy;</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_4_int_q_pixmap4_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        sx: ::std::os::raw::c_int,
        sy: ::std::os::raw::c_int,
        sw: ::std::os::raw::c_int,
        sh: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap2(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
            sx,
            sy,
            sw,
            sh,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(int x, int y, const QPixmap& pm, int sx, int sy, int sw, int sh)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a pixmap at (<i>x</i>, <i>y</i>) by copying a part of the given <i>pixmap</i> into the paint device.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto. (<i>sx</i>, <i>sy</i>) specifies the top-left point in <i>pixmap</i> that is to be drawn. The default is (0, 0).</p>
    /// <p>(<i>sw</i>, <i>sh</i>) specifies the size of the pixmap that is to be drawn. The default, (0, 0) (and negative) means all the way to the bottom-right of the pixmap.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_2_int_q_pixmap4_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        sx: ::std::os::raw::c_int,
        sy: ::std::os::raw::c_int,
        sw: ::std::os::raw::c_int,
        sh: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap3(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
            sx,
            sy,
            sw,
            sh,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(const QPointF& p, const QPixmap& pm, const QRectF& sr)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>pixmap</i> with its origin at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_q_point_f_q_pixmap_q_rect_f(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(sr).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(const QPoint& p, const QPixmap& pm, const QRect& sr)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangular portion <i>source</i> of the given <i>pixmap</i> with its origin at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_q_point_q_pixmap_q_rect(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap5(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(sr).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(const QPointF& p, const QPixmap& pm)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>pixmap</i> with its origin at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_q_point_f_q_pixmap(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap6(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(const QPoint& p, const QPixmap& pm)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>pixmap</i> with its origin at the given <i>point</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_q_point_q_pixmap(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap7(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(int x, int y, const QPixmap& pm)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>pixmap</i> at position (<i>x</i>, <i>y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_2_int_q_pixmap(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap8(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(const QRect& r, const QPixmap& pm)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>pixmap</i> into the given <i>rectangle</i>.</p>
    /// <p><b>Note: </b>The pixmap is scaled to fit the rectangle, if both the pixmap and rectangle size disagree.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_q_rect_q_pixmap(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap9(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap& pm)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap-10">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the <i>pixmap</i> into the rectangle at position (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_4_int_q_pixmap(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmap10(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
        )
    }

    /// <p>This function is used to draw <i>pixmap</i>, or a sub-rectangle of <i>pixmap</i>, at multiple positions with different scale, rotation and opacity. <i>fragments</i> is an array of <i>fragmentCount</i> elements specifying the parameters used to draw each pixmap fragment. The <i>hints</i> parameter can be used to pass in drawing hints.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmapFragments(const QPainter::PixmapFragment* fragments, int fragmentCount, const QPixmap& pixmap, QFlags<QPainter::PixmapFragmentHint> hints = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is used to draw <i>pixmap</i>, or a sub-rectangle of <i>pixmap</i>, at multiple positions with different scale, rotation and opacity. <i>fragments</i> is an array of <i>fragmentCount</i> elements specifying the parameters used to draw each pixmap fragment. The <i>hints</i> parameter can be used to pass in drawing hints.</p>
    /// <p>This function is potentially faster than multiple calls to <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>(), since the backend can optimize state changes.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> and <a href="http://doc.qt.io/qt-5/qpainter.html#PixmapFragmentHint-enum">QPainter::PixmapFragmentHint</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_fragments_4a(
        &mut self,
        fragments: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::q_painter::PixmapFragment>>,
        fragment_count: ::std::os::raw::c_int,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        hints: ::qt_core::QFlags<crate::q_painter::PixmapFragmentHint>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmapFragments(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::q_painter::PixmapFragment>>::cast_into(
                fragments,
            )
            .as_raw_ptr(),
            fragment_count,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            hints.to_int(),
        )
    }

    /// <p>This function is used to draw <i>pixmap</i>, or a sub-rectangle of <i>pixmap</i>, at multiple positions with different scale, rotation and opacity. <i>fragments</i> is an array of <i>fragmentCount</i> elements specifying the parameters used to draw each pixmap fragment. The <i>hints</i> parameter can be used to pass in drawing hints.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPixmapFragments(const QPainter::PixmapFragment* fragments, int fragmentCount, const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmapFragments">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is used to draw <i>pixmap</i>, or a sub-rectangle of <i>pixmap</i>, at multiple positions with different scale, rotation and opacity. <i>fragments</i> is an array of <i>fragmentCount</i> elements specifying the parameters used to draw each pixmap fragment. The <i>hints</i> parameter can be used to pass in drawing hints.</p>
    /// <p>This function is potentially faster than multiple calls to <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>(), since the backend can optimize state changes.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-pixmapfragment.html">QPainter::PixmapFragment</a> and <a href="http://doc.qt.io/qt-5/qpainter.html#PixmapFragmentHint-enum">QPainter::PixmapFragmentHint</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap_fragments_3a(
        &mut self,
        fragments: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::q_painter::PixmapFragment>>,
        fragment_count: ::std::os::raw::c_int,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPixmapFragments1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::q_painter::PixmapFragment>>::cast_into(
                fragments,
            )
            .as_raw_ptr(),
            fragment_count,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        )
    }

    /// <p>Draws a single point at the given <i>position</i> using the current pen's color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPoint(const QPointF& pt)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a single point at the given <i>position</i> using the current pen's color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_point_q_point_f(
        &mut self,
        pt: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPoint(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(pt).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPoint(const QPoint& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPoint-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a single point at the given <i>position</i> using the current pen's color.</p></div>
    #[inline(always)]
    pub unsafe fn draw_point_q_point(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPoint1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPoint(int x, int y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPoint-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a single point at position (<i>x</i>, <i>y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn draw_point_2_int(&mut self, x: ::std::os::raw::c_int, y: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPoint2(self as *mut crate::QPainter, x, y)
    }

    /// <p>Draws the first <i>pointCount</i> points in the array <i>points</i> using the current pen's color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPoints(const QPointF* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the first <i>pointCount</i> points in the array <i>points</i> using the current pen's color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_points_q_point_f_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPoints(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPoints(const QPolygonF& points)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPoints-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the points in the vector <i>points</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_points_q_polygon_f(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPoints1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(points)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPoints(const QPoint* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPoints-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the first <i>pointCount</i> points in the array <i>points</i> using the current pen's color.</p></div>
    #[inline(always)]
    pub unsafe fn draw_points_q_point_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPoint>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPoints2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPoint>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPoints(const QPolygon& points)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPoints-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the points in the vector <i>points</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_points_q_polygon(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPoints3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(points)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the polygon defined by the first <i>pointCount</i> points in the array <i>points</i> using the current pen and brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolygon(const QPointF* points, int pointCount, Qt::FillRule fillRule = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the polygon defined by the first <i>pointCount</i> points in the array <i>points</i> using the current pen and brush.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-polygon.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="keyword">static</span> <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span> points<span class="operator">[</span><span class="number">4</span><span class="operator">]</span> <span class="operator">=</span> {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">10.0</span><span class="operator">,</span> <span class="number">80.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">20.0</span><span class="operator">,</span> <span class="number">10.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">80.0</span><span class="operator">,</span> <span class="number">30.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">90.0</span><span class="operator">,</span> <span class="number">70.0</span>)
    ///   };
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawPolygon(points<span class="operator">,</span> <span class="number">4</span>);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The first point is implicitly connected to the last point, and the polygon is filled with the current <a href="http://doc.qt.io/qt-5/qpainter.html#brush">brush</a>().</p>
    /// <p>If <i>fillRule</i> is <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::WindingFill</a>, the polygon is filled using the winding fill algorithm. If <i>fillRule</i> is <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::OddEvenFill</a>, the polygon is filled using the odd-even fill algorithm. See <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::FillRule</a> for a more detailed description of these fill rules.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawConvexPolygon">drawConvexPolygon</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline">drawPolyline</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_point_f_int_fill_rule(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        point_count: ::std::os::raw::c_int,
        fill_rule: ::qt_core::FillRule,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolygon(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
            fill_rule,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolygon(const QPolygonF& polygon, Qt::FillRule fillRule = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polygon defined by the given <i>points</i> using the fill rule <i>fillRule</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_polygon_f_fill_rule(
        &mut self,
        polygon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
        fill_rule: ::qt_core::FillRule,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolygon1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(polygon)
                .as_raw_ptr(),
            fill_rule,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolygon(const QPoint* points, int pointCount, Qt::FillRule fillRule = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polygon defined by the first <i>pointCount</i> points in the array <i>points</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_point_int_fill_rule(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPoint>>,
        point_count: ::std::os::raw::c_int,
        fill_rule: ::qt_core::FillRule,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolygon2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPoint>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
            fill_rule,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolygon(const QPolygon& polygon, Qt::FillRule fillRule = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polygon defined by the given <i>points</i> using the fill rule <i>fillRule</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_polygon_fill_rule(
        &mut self,
        polygon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
        fill_rule: ::qt_core::FillRule,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolygon3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(polygon)
                .as_raw_ptr(),
            fill_rule,
        )
    }

    /// <p>Draws the polygon defined by the first <i>pointCount</i> points in the array <i>points</i> using the current pen and brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolygon(const QPointF* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the polygon defined by the first <i>pointCount</i> points in the array <i>points</i> using the current pen and brush.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-polygon.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="keyword">static</span> <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span> points<span class="operator">[</span><span class="number">4</span><span class="operator">]</span> <span class="operator">=</span> {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">10.0</span><span class="operator">,</span> <span class="number">80.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">20.0</span><span class="operator">,</span> <span class="number">10.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">80.0</span><span class="operator">,</span> <span class="number">30.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">90.0</span><span class="operator">,</span> <span class="number">70.0</span>)
    ///   };
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawPolygon(points<span class="operator">,</span> <span class="number">4</span>);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The first point is implicitly connected to the last point, and the polygon is filled with the current <a href="http://doc.qt.io/qt-5/qpainter.html#brush">brush</a>().</p>
    /// <p>If <i>fillRule</i> is <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::WindingFill</a>, the polygon is filled using the winding fill algorithm. If <i>fillRule</i> is <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::OddEvenFill</a>, the polygon is filled using the odd-even fill algorithm. See <a href="http://doc.qt.io/qt-5/qt.html#FillRule-enum">Qt::FillRule</a> for a more detailed description of these fill rules.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawConvexPolygon">drawConvexPolygon</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline">drawPolyline</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_point_f_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolygon4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolygon(const QPolygonF& polygon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polygon defined by the given <i>points</i> using the fill rule <i>fillRule</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_polygon_f(
        &mut self,
        polygon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolygon5(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(polygon)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolygon(const QPoint* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polygon defined by the first <i>pointCount</i> points in the array <i>points</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_point_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPoint>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolygon6(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPoint>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolygon(const QPolygon& polygon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polygon defined by the given <i>points</i> using the fill rule <i>fillRule</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_polygon(
        &mut self,
        polygon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolygon7(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(polygon)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the polyline defined by the first <i>pointCount</i> points in <i>points</i> using the current pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolyline(const QPointF* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the polyline defined by the first <i>pointCount</i> points in <i>points</i> using the current pen.</p>
    /// <p>Note that unlike the <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon">drawPolygon</a>() function the last point is <i>not</i> connected to the first, neither is the polyline filled.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><pre class="cpp">
    ///
    ///   <span class="keyword">static</span> <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span> points<span class="operator">[</span><span class="number">3</span><span class="operator">]</span> <span class="operator">=</span> {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">10.0</span><span class="operator">,</span> <span class="number">80.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">20.0</span><span class="operator">,</span> <span class="number">10.0</span>)<span class="operator">,</span>
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">80.0</span><span class="operator">,</span> <span class="number">30.0</span>)<span class="operator">,</span>
    ///   };
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawPolyline(points<span class="operator">,</span> <span class="number">3</span>);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawLines">drawLines</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon">drawPolygon</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polyline_q_point_f_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolyline(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolyline(const QPolygonF& polyline)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polyline defined by the given <i>points</i> using the current pen.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polyline_q_polygon_f(
        &mut self,
        polyline: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolyline1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(polyline)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolyline(const QPoint* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polyline defined by the first <i>pointCount</i> points in <i>points</i> using the current pen.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polyline_q_point_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPoint>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolyline2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPoint>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawPolyline(const QPolygon& polygon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolyline-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the polyline defined by the given <i>points</i> using the current pen.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polyline_q_polygon(
        &mut self,
        polygon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawPolyline3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygon>>::cast_into(polygon)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the current <i>rectangle</i> with the current pen and brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRect(const QRectF& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the current <i>rectangle</i> with the current pen and brush.</p>
    /// <p>A filled rectangle has a size of <i>rectangle</i>.size(). A stroked rectangle has a size of <i>rectangle</i>.size() plus the pen width.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-rectangle.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> rectangle(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawRect(rectangle);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawRects">drawRects</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawPolygon">drawPolygon</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rect_q_rect_f(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRect(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRect(int x1, int y1, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a rectangle with upper left corner at (<i>x</i>, <i>y</i>) and with the given <i>width</i> and <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rect_4_int(
        &mut self,
        x1: ::std::os::raw::c_int,
        y1: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRect1(self as *mut crate::QPainter, x1, y1, w, h)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRect(const QRect& rect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the current <i>rectangle</i> with the current pen and brush.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rect_q_rect(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRect2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>Draws the first <i>rectCount</i> of the given <i>rectangles</i> using the current pen and brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRects(const QRectF* rects, int rectCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the first <i>rectCount</i> of the given <i>rectangles</i> using the current pen and brush.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawRect">drawRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_rects_q_rect_f_int(
        &mut self,
        rects: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QRectF>>,
        rect_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRects(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QRectF>>::cast_into(rects)
                .as_raw_ptr(),
            rect_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRects(const QVector<QRectF>& rectangles)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRects-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>rectangles</i> using the current pen and brush.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rects_q_vector_of_q_rect_f(
        &mut self,
        rectangles: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRects1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRectF>>::cast_into(rectangles)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRects(const QRect* rects, int rectCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRects-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the first <i>rectCount</i> of the given <i>rectangles</i> using the current pen and brush.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rects_q_rect_int(
        &mut self,
        rects: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QRect>>,
        rect_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRects2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QRect>>::cast_into(rects)
                .as_raw_ptr(),
            rect_count,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRects(const QVector<QRect>& rectangles)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRects-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>rectangles</i> using the current pen and brush.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rects_q_vector_of_q_rect(
        &mut self,
        rectangles: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRects3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRect>>::cast_into(rectangles)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws a rectangle <i>r</i> with rounded corners.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(const QRectF& r, int xround = …, int yround = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a rectangle <i>r</i> with rounded corners.</p>
    /// <p>The <i>xRnd</i> and <i>yRnd</i> arguments specify how rounded the corners should be. 0 is angled corners, 99 is maximum roundedness.</p>
    /// <p>A filled rectangle has a size of r.size(). A stroked rectangle has a size of r.size() plus the pen width.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect">drawRoundedRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_q_rect_f2_int(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        xround: ::std::os::raw::c_int,
        yround: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            xround,
            yround,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(int x, int y, int w, int h, int arg5 = …, int arg6 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangle <i>x</i>, <i>y</i>, <i>w</i>, <i>h</i> with rounded corners.</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_6_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        arg5: ::std::os::raw::c_int,
        arg6: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect1(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            arg5,
            arg6,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(const QRect& r, int xround = …, int yround = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangle <i>r</i> with rounded corners.</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_q_rect2_int(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        xround: ::std::os::raw::c_int,
        yround: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            xround,
            yround,
        )
    }

    /// <p>Draws a rectangle <i>r</i> with rounded corners.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(const QRectF& r, int xround = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a rectangle <i>r</i> with rounded corners.</p>
    /// <p>The <i>xRnd</i> and <i>yRnd</i> arguments specify how rounded the corners should be. 0 is angled corners, 99 is maximum roundedness.</p>
    /// <p>A filled rectangle has a size of r.size(). A stroked rectangle has a size of r.size() plus the pen width.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect">drawRoundedRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_q_rect_f_int(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        xround: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            xround,
        )
    }

    /// <p>Draws a rectangle <i>r</i> with rounded corners.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(const QRectF& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a rectangle <i>r</i> with rounded corners.</p>
    /// <p>The <i>xRnd</i> and <i>yRnd</i> arguments specify how rounded the corners should be. 0 is angled corners, 99 is maximum roundedness.</p>
    /// <p>A filled rectangle has a size of r.size(). A stroked rectangle has a size of r.size() plus the pen width.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect">drawRoundedRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_q_rect_f(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(int x, int y, int w, int h, int arg5 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangle <i>x</i>, <i>y</i>, <i>w</i>, <i>h</i> with rounded corners.</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_5_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        arg5: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect5(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            arg5,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(int x, int y, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangle <i>x</i>, <i>y</i>, <i>w</i>, <i>h</i> with rounded corners.</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_4_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect6(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(const QRect& r, int xround = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangle <i>r</i> with rounded corners.</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_q_rect_int(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        xround: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect7(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            xround,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundRect(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#drawRoundRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the rectangle <i>r</i> with rounded corners.</p></div>
    #[inline(always)]
    pub unsafe fn draw_round_rect_q_rect(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundRect8(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Draws the given rectangle <i>rect</i> with rounded corners.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundedRect(const QRectF& rect, double xRadius, double yRadius, Qt::SizeMode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the given rectangle <i>rect</i> with rounded corners.</p>
    /// <p>The <i>xRadius</i> and <i>yRadius</i> arguments specify the radii of the ellipses defining the corners of the rounded rectangle. When <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#SizeMode-enum">Qt::RelativeSize</a>, <i>xRadius</i> and <i>yRadius</i> are specified in percentage of half the rectangle's width and height respectively, and should be in the range 0.0 to 100.0.</p>
    /// <p>A filled rectangle has a size of rect.size(). A stroked rectangle has a size of rect.size() plus the pen width.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-roundrect.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> rectangle(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawRoundedRect(rectangle<span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">15.0</span>);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawRect">drawRect</a>() and <a href="http://doc.qt.io/qt-5/qpen.html">QPen</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rounded_rect_q_rect_f2_double_size_mode(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
        mode: ::qt_core::SizeMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundedRect(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            x_radius,
            y_radius,
            mode,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundedRect(int x, int y, int w, int h, double xRadius, double yRadius, Qt::SizeMode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given rectangle <i>x</i>, <i>y</i>, <i>w</i>, <i>h</i> with rounded corners.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rounded_rect_4_int2_double_size_mode(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
        mode: ::qt_core::SizeMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundedRect1(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            x_radius,
            y_radius,
            mode,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundedRect(const QRect& rect, double xRadius, double yRadius, Qt::SizeMode mode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given rectangle <i>rect</i> with rounded corners.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rounded_rect_q_rect2_double_size_mode(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
        mode: ::qt_core::SizeMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundedRect2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            x_radius,
            y_radius,
            mode,
        )
    }

    /// <p>Draws the given rectangle <i>rect</i> with rounded corners.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundedRect(const QRectF& rect, double xRadius, double yRadius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the given rectangle <i>rect</i> with rounded corners.</p>
    /// <p>The <i>xRadius</i> and <i>yRadius</i> arguments specify the radii of the ellipses defining the corners of the rounded rectangle. When <i>mode</i> is <a href="http://doc.qt.io/qt-5/qt.html#SizeMode-enum">Qt::RelativeSize</a>, <i>xRadius</i> and <i>yRadius</i> are specified in percentage of half the rectangle's width and height respectively, and should be in the range 0.0 to 100.0.</p>
    /// <p>A filled rectangle has a size of rect.size(). A stroked rectangle has a size of rect.size() plus the pen width.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-roundrect.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a></span> rectangle(<span class="number">10.0</span><span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">80.0</span><span class="operator">,</span> <span class="number">60.0</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawRoundedRect(rectangle<span class="operator">,</span> <span class="number">20.0</span><span class="operator">,</span> <span class="number">15.0</span>);
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawRect">drawRect</a>() and <a href="http://doc.qt.io/qt-5/qpen.html">QPen</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rounded_rect_q_rect_f2_double(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundedRect3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            x_radius,
            y_radius,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundedRect(int x, int y, int w, int h, double xRadius, double yRadius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given rectangle <i>x</i>, <i>y</i>, <i>w</i>, <i>h</i> with rounded corners.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rounded_rect_4_int2_double(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundedRect4(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            x_radius,
            y_radius,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawRoundedRect(const QRect& rect, double xRadius, double yRadius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawRoundedRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given rectangle <i>rect</i> with rounded corners.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rounded_rect_q_rect2_double(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        x_radius: ::std::os::raw::c_double,
        y_radius: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawRoundedRect5(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
            x_radius,
            y_radius,
        )
    }

    /// <p>Draws the given <i>staticText</i> at the given <i>topLeftPosition</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawStaticText(const QPointF& topLeftPosition, const QStaticText& staticText)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawStaticText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the given <i>staticText</i> at the given <i>topLeftPosition</i>.</p>
    /// <p>The text will be drawn using the font and the transformation set on the painter. If the font and/or transformation set on the painter are different from the ones used to initialize the layout of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>, then the layout will have to be recalculated. Use <a href="http://doc.qt.io/qt-5/qstatictext.html#prepare">QStaticText::prepare</a>() to initialize <i>staticText</i> with the font and transformation with which it will later be drawn.</p>
    /// <p>If <i>topLeftPosition</i> is not the same as when <i>staticText</i> was initialized, or when it was last drawn, then there will be a slight overhead when translating the text to its new position.</p>
    /// <p><b>Note: </b>If the painter's transformation is not affine, then <i>staticText</i> will be drawn using regular calls to <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>(), losing any potential for performance improvement.</p><p><b>Note: </b>The y-position is used as the top of the font.</p><p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_static_text_q_point_f_q_static_text(
        &mut self,
        top_left_position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        static_text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QStaticText>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawStaticText(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(
                top_left_position,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QStaticText>>::cast_into(static_text)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawStaticText(const QPoint& topLeftPosition, const QStaticText& staticText)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawStaticText-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the <i>staticText</i> at the <i>topLeftPosition</i>.</p>
    /// <p><b>Note: </b>The y-position is used as the top of the font.</p><p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn draw_static_text_q_point_q_static_text(
        &mut self,
        top_left_position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        static_text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QStaticText>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawStaticText1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(
                top_left_position,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QStaticText>>::cast_into(static_text)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawStaticText(int left, int top, const QStaticText& staticText)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawStaticText-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the <i>staticText</i> at coordinates <i>left</i> and <i>top</i>.</p>
    /// <p><b>Note: </b>The y-position is used as the top of the font.</p><p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn draw_static_text_2_int_q_static_text(
        &mut self,
        left: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        static_text: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QStaticText>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawStaticText2(
            self as *mut crate::QPainter,
            left,
            top,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QStaticText>>::cast_into(static_text)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws the given <i>text</i> with the currently defined text direction, beginning at the given <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QPointF& p, const QString& s)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the given <i>text</i> with the currently defined text direction, beginning at the given <i>position</i>.</p>
    /// <p>This function does not handle the newline character (\n), as it cannot break text into multiple lines, and it cannot display the newline character. Use the QPainter::drawText() overload that takes a rectangle instead if you want to draw multiple lines of text with the newline character, or if you want the text to be wrapped.</p>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-position is used as the baseline of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_q_point_f_q_string(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(s).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QPoint& p, const QString& s)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> with the currently defined text direction, beginning at the given <i>position</i>.</p>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-position is used as the baseline of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_q_point_q_string(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(s).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(int x, int y, const QString& s)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> at position (<i>x</i>, <i>y</i>), using the painter's currently defined text direction.</p>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-position is used as the baseline of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_2_int_q_string(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText2(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(s).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QPointF& p, const QString& str, int tf, int justificationPadding)```</span>.
    #[inline(always)]
    pub unsafe fn draw_text_q_point_f_q_string2_int(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        str: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        tf: ::std::os::raw::c_int,
        justification_padding: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(str)
                .as_raw_ptr(),
            tf,
            justification_padding,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QRectF& r, int flags, const QString& text, QRectF* br = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> within the provided <i>rectangle</i>. The <i>rectangle</i> along with alignment <i>flags</i> defines the anchors for the <i>text</i>.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-text.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawText(rect<span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>AlignCenter<span class="operator">,</span> tr(<span class="string">"Qt\nProject"</span>));
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The <i>boundingRect</i> (if not null) is set to what the bounding rectangle should be in order to enclose the whole text. For example, in the following image, the dotted line represents <i>boundingRect</i> as calculated by the function, and the dashed line represents <i>rectangle</i>:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-text-bounds.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> font <span class="operator">=</span> painter<span class="operator">.</span>font();
    ///   font<span class="operator">.</span>setPixelSize(<span class="number">48</span>);
    ///   painter<span class="operator">.</span>setFont(font);
    ///
    ///   <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> rectangle <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">100</span><span class="operator">,</span> <span class="number">50</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> boundingRect;
    ///   painter<span class="operator">.</span>drawText(rectangle<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> tr(<span class="string">"Hello"</span>)<span class="operator">,</span> <span class="operator">&amp;</span>boundingRect);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> pen <span class="operator">=</span> painter<span class="operator">.</span>pen();
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DotLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(boundingRect<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DashLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(rectangle<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The <i>flags</i> argument is a bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextDontClip</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextIncludeTrailingSpaces</a></li>
    /// </ul>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-coordinate of <i>rectangle</i> is used as the top of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a>, <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a>, <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#layoutDirection">layoutDirection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_q_rect_f_int_q_string_q_rect_f(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        br: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QRectF>>::cast_into(br)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QRect& r, int flags, const QString& text, QRect* br = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> within the provided <i>rectangle</i> according to the specified <i>flags</i>.</p>
    /// <p>The <i>boundingRect</i> (if not null) is set to the what the bounding rectangle should be in order to enclose the whole text. For example, in the following image, the dotted line represents <i>boundingRect</i> as calculated by the function, and the dashed line represents <i>rectangle</i>:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-text-bounds.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> font <span class="operator">=</span> painter<span class="operator">.</span>font();
    ///   font<span class="operator">.</span>setPixelSize(<span class="number">48</span>);
    ///   painter<span class="operator">.</span>setFont(font);
    ///
    ///   <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> rectangle <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">100</span><span class="operator">,</span> <span class="number">50</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> boundingRect;
    ///   painter<span class="operator">.</span>drawText(rectangle<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> tr(<span class="string">"Hello"</span>)<span class="operator">,</span> <span class="operator">&amp;</span>boundingRect);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> pen <span class="operator">=</span> painter<span class="operator">.</span>pen();
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DotLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(boundingRect<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DashLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(rectangle<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-coordinate of <i>rectangle</i> is used as the top of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_q_rect_int_q_string_q_rect(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        br: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText5(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QRect>>::cast_into(br)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(int x, int y, int w, int h, int flags, const QString& text, QRect* br = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> within the rectangle with origin (<i>x</i>, <i>y</i>), <i>width</i> and <i>height</i>.</p>
    /// <p>The <i>boundingRect</i> (if not null) is set to the what the bounding rectangle should be in order to enclose the whole text. For example, in the following image, the dotted line represents <i>boundingRect</i> as calculated by the function, and the dashed line represents the rectangle defined by <i>x</i>, <i>y</i>, <i>width</i> and <i>height</i>:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-text-bounds.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> font <span class="operator">=</span> painter<span class="operator">.</span>font();
    ///   font<span class="operator">.</span>setPixelSize(<span class="number">48</span>);
    ///   painter<span class="operator">.</span>setFont(font);
    ///
    ///   <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> rectangle <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">100</span><span class="operator">,</span> <span class="number">50</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> boundingRect;
    ///   painter<span class="operator">.</span>drawText(rectangle<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> tr(<span class="string">"Hello"</span>)<span class="operator">,</span> <span class="operator">&amp;</span>boundingRect);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> pen <span class="operator">=</span> painter<span class="operator">.</span>pen();
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DotLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(boundingRect<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DashLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(rectangle<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The <i>flags</i> argument is a bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a></li>
    /// </ul>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-position is used as the top of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a>, <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a>, <a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_5_int_q_string_q_rect(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        br: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText6(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QRect>>::cast_into(br)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QRectF& r, const QString& text, const QTextOption& o = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> in the <i>rectangle</i> specified using the <i>option</i> to control its positioning and orientation.</p>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-coordinate of <i>rectangle</i> is used as the top of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_q_rect_f_q_string_q_text_option(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextOption>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText7(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextOption>>::cast_into(o).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QRectF& r, int flags, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> within the provided <i>rectangle</i>. The <i>rectangle</i> along with alignment <i>flags</i> defines the anchors for the <i>text</i>.</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-text.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   painter<span class="operator">.</span>drawText(rect<span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>AlignCenter<span class="operator">,</span> tr(<span class="string">"Qt\nProject"</span>));
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The <i>boundingRect</i> (if not null) is set to what the bounding rectangle should be in order to enclose the whole text. For example, in the following image, the dotted line represents <i>boundingRect</i> as calculated by the function, and the dashed line represents <i>rectangle</i>:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-text-bounds.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> font <span class="operator">=</span> painter<span class="operator">.</span>font();
    ///   font<span class="operator">.</span>setPixelSize(<span class="number">48</span>);
    ///   painter<span class="operator">.</span>setFont(font);
    ///
    ///   <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> rectangle <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">100</span><span class="operator">,</span> <span class="number">50</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> boundingRect;
    ///   painter<span class="operator">.</span>drawText(rectangle<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> tr(<span class="string">"Hello"</span>)<span class="operator">,</span> <span class="operator">&amp;</span>boundingRect);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> pen <span class="operator">=</span> painter<span class="operator">.</span>pen();
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DotLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(boundingRect<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DashLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(rectangle<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The <i>flags</i> argument is a bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextDontClip</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextIncludeTrailingSpaces</a></li>
    /// </ul>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-coordinate of <i>rectangle</i> is used as the top of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a>, <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a>, <a href="http://doc.qt.io/qt-5/qpainter.html#boundingRect">boundingRect</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#layoutDirection">layoutDirection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_q_rect_f_int_q_string(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText8(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QRect& r, int flags, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> within the provided <i>rectangle</i> according to the specified <i>flags</i>.</p>
    /// <p>The <i>boundingRect</i> (if not null) is set to the what the bounding rectangle should be in order to enclose the whole text. For example, in the following image, the dotted line represents <i>boundingRect</i> as calculated by the function, and the dashed line represents <i>rectangle</i>:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-text-bounds.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> font <span class="operator">=</span> painter<span class="operator">.</span>font();
    ///   font<span class="operator">.</span>setPixelSize(<span class="number">48</span>);
    ///   painter<span class="operator">.</span>setFont(font);
    ///
    ///   <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> rectangle <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">100</span><span class="operator">,</span> <span class="number">50</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> boundingRect;
    ///   painter<span class="operator">.</span>drawText(rectangle<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> tr(<span class="string">"Hello"</span>)<span class="operator">,</span> <span class="operator">&amp;</span>boundingRect);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> pen <span class="operator">=</span> painter<span class="operator">.</span>pen();
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DotLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(boundingRect<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DashLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(rectangle<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-coordinate of <i>rectangle</i> is used as the top of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_q_rect_int_q_string(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText9(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(int x, int y, int w, int h, int flags, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> within the rectangle with origin (<i>x</i>, <i>y</i>), <i>width</i> and <i>height</i>.</p>
    /// <p>The <i>boundingRect</i> (if not null) is set to the what the bounding rectangle should be in order to enclose the whole text. For example, in the following image, the dotted line represents <i>boundingRect</i> as calculated by the function, and the dashed line represents the rectangle defined by <i>x</i>, <i>y</i>, <i>width</i> and <i>height</i>:</p>
    /// <div class="table"><table class="generic" width="100%">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qpainter-text-bounds.png" alt=""></td><td><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> painter(<span class="keyword">this</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span> font <span class="operator">=</span> painter<span class="operator">.</span>font();
    ///   font<span class="operator">.</span>setPixelSize(<span class="number">48</span>);
    ///   painter<span class="operator">.</span>setFont(font);
    ///
    ///   <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> rectangle <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span>(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">100</span><span class="operator">,</span> <span class="number">50</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qrect.html">QRect</a></span> boundingRect;
    ///   painter<span class="operator">.</span>drawText(rectangle<span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> tr(<span class="string">"Hello"</span>)<span class="operator">,</span> <span class="operator">&amp;</span>boundingRect);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpen.html">QPen</a></span> pen <span class="operator">=</span> painter<span class="operator">.</span>pen();
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DotLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(boundingRect<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    ///   pen<span class="operator">.</span>setStyle(<span class="type">Qt</span><span class="operator">::</span>DashLine);
    ///   painter<span class="operator">.</span>setPen(pen);
    ///   painter<span class="operator">.</span>drawRect(rectangle<span class="operator">.</span>adjusted(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()<span class="operator">,</span> <span class="operator">-</span>pen<span class="operator">.</span>width()));
    ///
    /// </pre>
    /// </td></tr>
    /// </tbody></table></div>
    /// <p>The <i>flags</i> argument is a bitwise OR of the following flags:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignLeft</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignRight</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignHCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignJustify</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignTop</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignBottom</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignVCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignCenter</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextSingleLine</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextExpandTabs</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextShowMnemonic</a></li>
    /// <li><a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextWordWrap</a></li>
    /// </ul>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-position is used as the top of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#AlignmentFlag-enum">Qt::AlignmentFlag</a>, <a href="http://doc.qt.io/qt-5/qt.html#TextFlag-enum">Qt::TextFlag</a>, <a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_5_int_q_string(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        flags: ::std::os::raw::c_int,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText10(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            flags,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawText(const QRectF& r, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawText-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws the given <i>text</i> in the <i>rectangle</i> specified using the <i>option</i> to control its positioning and orientation.</p>
    /// <p>By default, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws text anti-aliased.</p>
    /// <p><b>Note: </b>The y-coordinate of <i>rectangle</i> is used as the top of the font.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_q_rect_f_q_string(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawText11(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTextItem(const QPointF& p, const QTextItem& ti)```</span>.
    #[inline(always)]
    pub unsafe fn draw_text_item_q_point_f_q_text_item(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        ti: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTextItem(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextItem>>::cast_into(ti).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTextItem(int x, int y, const QTextItem& ti)```</span>.
    #[inline(always)]
    pub unsafe fn draw_text_item_2_int_q_text_item(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        ti: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTextItem1(
            self as *mut crate::QPainter,
            x,
            y,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextItem>>::cast_into(ti).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTextItem(const QPoint& p, const QTextItem& ti)```</span>.
    #[inline(always)]
    pub unsafe fn draw_text_item_q_point_q_text_item(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        ti: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTextItem2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextItem>>::cast_into(ti).as_raw_ptr(),
        )
    }

    /// <p>Draws a tiled <i>pixmap</i>, inside the given <i>rectangle</i> with its origin at the given <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTiledPixmap(const QRectF& rect, const QPixmap& pm, const QPointF& offset = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawTiledPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a tiled <i>pixmap</i>, inside the given <i>rectangle</i> with its origin at the given <i>position</i>.</p>
    /// <p>Calling drawTiledPixmap() is similar to calling <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>() several times to fill (tile) an area with a pixmap, but is potentially much more efficient depending on the underlying window system.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_tiled_pixmap_q_rect_f_q_pixmap_q_point_f(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTiledPixmap(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(offset)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTiledPixmap(int x, int y, int w, int h, const QPixmap& arg5, int sx = …, int sy = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawTiledPixmap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a tiled <i>pixmap</i> in the specified rectangle.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto; with the given <i>width</i> and <i>height</i>. (<i>sx</i>, <i>sy</i>) specifies the top-left point in the <i>pixmap</i> that is to be drawn; this defaults to (0, 0).</p></div>
    #[inline(always)]
    pub unsafe fn draw_tiled_pixmap_4_int_q_pixmap2_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        arg5: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        sx: ::std::os::raw::c_int,
        sy: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTiledPixmap1(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg5).as_raw_ptr(),
            sx,
            sy,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTiledPixmap(const QRect& arg1, const QPixmap& arg2, const QPoint& arg3 = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawTiledPixmap-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a tiled <i>pixmap</i>, inside the given <i>rectangle</i> with its origin at the given <i>position</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_tiled_pixmap_q_rect_q_pixmap_q_point(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        arg3: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTiledPixmap2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg2).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(arg3)
                .as_raw_ptr(),
        )
    }

    /// <p>Draws a tiled <i>pixmap</i>, inside the given <i>rectangle</i> with its origin at the given <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTiledPixmap(const QRectF& rect, const QPixmap& pm)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawTiledPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws a tiled <i>pixmap</i>, inside the given <i>rectangle</i> with its origin at the given <i>position</i>.</p>
    /// <p>Calling drawTiledPixmap() is similar to calling <a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>() several times to fill (tile) an area with a pixmap, but is potentially much more efficient depending on the underlying window system.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPixmap">drawPixmap</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_tiled_pixmap_q_rect_f_q_pixmap(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTiledPixmap3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(rect)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTiledPixmap(int x, int y, int w, int h, const QPixmap& arg5, int sx = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawTiledPixmap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a tiled <i>pixmap</i> in the specified rectangle.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto; with the given <i>width</i> and <i>height</i>. (<i>sx</i>, <i>sy</i>) specifies the top-left point in the <i>pixmap</i> that is to be drawn; this defaults to (0, 0).</p></div>
    #[inline(always)]
    pub unsafe fn draw_tiled_pixmap_4_int_q_pixmap_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        arg5: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        sx: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTiledPixmap4(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg5).as_raw_ptr(),
            sx,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTiledPixmap(int x, int y, int w, int h, const QPixmap& arg5)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawTiledPixmap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a tiled <i>pixmap</i> in the specified rectangle.</p>
    /// <p>(<i>x</i>, <i>y</i>) specifies the top-left point in the paint device that is to be drawn onto; with the given <i>width</i> and <i>height</i>. (<i>sx</i>, <i>sy</i>) specifies the top-left point in the <i>pixmap</i> that is to be drawn; this defaults to (0, 0).</p></div>
    #[inline(always)]
    pub unsafe fn draw_tiled_pixmap_4_int_q_pixmap(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        arg5: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTiledPixmap5(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg5).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::drawTiledPixmap(const QRect& arg1, const QPixmap& arg2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#drawTiledPixmap-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Draws a tiled <i>pixmap</i>, inside the given <i>rectangle</i> with its origin at the given <i>position</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_tiled_pixmap_q_rect_q_pixmap(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_drawTiledPixmap6(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(arg2).as_raw_ptr(),
        )
    }

    /// <p>Ends painting. Any resources used while painting are released. You don't normally need to call this since it is called by the destructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Ends painting. Any resources used while painting are released. You don't normally need to call this since it is called by the destructor.</p>
    /// <p>Returns <code>true</code> if the painter is no longer active; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#isActive">isActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_end(self as *mut crate::QPainter)
    }

    /// <p>Restores the painter after manually issuing native painting commands. Lets the painter restore any native state that it relies on before calling any other painter commands.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::endNativePainting()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#endNativePainting">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Restores the painter after manually issuing native painting commands. Lets the painter restore any native state that it relies on before calling any other painter commands.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#beginNativePainting">beginNativePainting</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_native_painting(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_endNativePainting(self as *mut crate::QPainter)
    }

    /// <p>Erases the area inside the given <i>rectangle</i>. Equivalent to calling</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::eraseRect(const QRectF& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#eraseRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Erases the area inside the given <i>rectangle</i>. Equivalent to calling</p>
    /// <pre class="cpp">
    ///
    ///   fillRect(rectangle<span class="operator">,</span> background())<span class="operator">.</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#fillRect">fillRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_rect_q_rect_f(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_eraseRect(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::eraseRect(int x, int y, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#eraseRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Erases the area inside the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn erase_rect_4_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_eraseRect1(self as *mut crate::QPainter, x, y, w, h)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::eraseRect(const QRect& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#eraseRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Erases the area inside the given <i>rectangle</i>.</p></div>
    #[inline(always)]
    pub unsafe fn erase_rect_q_rect(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_eraseRect2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Fills the given <i>path</i> using the given <i>brush</i>. The outline is not drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillPath(const QPainterPath& path, const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fills the given <i>path</i> using the given <i>brush</i>. The outline is not drawn.</p>
    /// <p>Alternatively, you can specify a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> instead of a <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a>; the <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> constructor (taking a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> argument) will automatically create a solid pattern brush.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawPath">drawPath</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_path(
        &mut self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillPath(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>Fills the given <i>rectangle</i> with the <i>brush</i> specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRectF& arg1, const QBrush& arg2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fills the given <i>rectangle</i> with the <i>brush</i> specified.</p>
    /// <p>Alternatively, you can specify a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> instead of a <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a>; the <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> constructor (taking a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> argument) will automatically create a solid pattern brush.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#drawRect">drawRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_q_rect_f_q_brush(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(arg1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(arg2).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(int x, int y, int w, int h, const QBrush& arg5)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>, using the given <i>brush</i>.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_4_int_q_brush(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        arg5: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect1(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(arg5).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRect& arg1, const QBrush& arg2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the specified <i>brush</i>.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_q_rect_q_brush(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(arg2).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRectF& arg1, const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the <i>color</i> specified.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_q_rect_f_q_color(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(arg1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(int x, int y, int w, int h, const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-4">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>, using the given <i>color</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_4_int_q_color(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect4(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRect& arg1, const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-5">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the <i>color</i> specified.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_q_rect_q_color(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect5(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(int x, int y, int w, int h, Qt::GlobalColor c)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-6">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>, using the given <i>color</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_4_int_global_color(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        c: ::qt_core::GlobalColor,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect6(self as *mut crate::QPainter, x, y, w, h, c)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRect& r, Qt::GlobalColor c)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-7">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the specified <i>color</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_q_rect_global_color(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        c: ::qt_core::GlobalColor,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect7(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            c,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRectF& r, Qt::GlobalColor c)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-8">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the specified <i>color</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_q_rect_f_global_color(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        c: ::qt_core::GlobalColor,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect8(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            c,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(int x, int y, int w, int h, Qt::BrushStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-9">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>, using the brush <i>style</i> specified.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_4_int_brush_style(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        style: ::qt_core::BrushStyle,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect9(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            style,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRect& r, Qt::BrushStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-10">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the brush <i>style</i> specified.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_q_rect_brush_style(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        style: ::qt_core::BrushStyle,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect10(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            style,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRectF& r, Qt::BrushStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-11">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the brush <i>style</i> specified.</p>
    /// <p>This function was introduced in  Qt 4.5.</p></div>
    #[inline(always)]
    pub unsafe fn fill_rect_q_rect_f_brush_style(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        style: ::qt_core::BrushStyle,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect11(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            style,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(int x, int y, int w, int h, QGradient::Preset preset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-12">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>, using the given gradient <i>preset</i>.</p>
    /// <p>This function was introduced in  Qt 5.12.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fill_rect_4_int_preset(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        preset: crate::q_gradient::Preset,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect24(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            preset,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRect& r, QGradient::Preset preset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-13">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the specified gradient <i>preset</i>.</p>
    /// <p>This function was introduced in  Qt 5.12.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fill_rect_q_rect_preset(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        preset: crate::q_gradient::Preset,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect25(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
            preset,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::fillRect(const QRectF& r, QGradient::Preset preset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fillRect-14">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Fills the given <i>rectangle</i> with the specified gradient <i>preset</i>.</p>
    /// <p>This function was introduced in  Qt 5.12.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fill_rect_q_rect_f_preset(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        preset: crate::q_gradient::Preset,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_fillRect26(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            preset,
        )
    }

    /// <p>Returns the currently set font used for drawing text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFont& QPainter::font() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#font">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set font used for drawing text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">setFont</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn font(&self) -> ::cpp_core::Ref<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_font(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the font info for the painter if the painter is active. Otherwise, the return value is undefined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontInfo QPainter::fontInfo() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fontInfo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font info for the painter if the painter is active. Otherwise, the return value is undefined.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#font">font</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#isActive">isActive</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn font_info(&self) -> ::cpp_core::CppBox<crate::QFontInfo> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_fontInfo(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the font metrics for the painter if the painter is active. Otherwise, the return value is undefined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontMetrics QPainter::fontMetrics() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#fontMetrics">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font metrics for the painter if the painter is active. Otherwise, the return value is undefined.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#font">font</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#isActive">isActive</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn font_metrics(&self) -> ::cpp_core::CppBox<crate::QFontMetrics> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_fontMetrics(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if clipping has been set; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::hasClipping() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#hasClipping">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if clipping has been set; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setClipping">setClipping</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#clipping">Clipping</a>.</p></div>
    #[inline(always)]
    pub unsafe fn has_clipping(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_hasClipping(self as *const crate::QPainter)
    }

    /// <p>Initializes the painters pen, background and font to the same as the given <i>device</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::initFrom(const QPaintDevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#initFrom">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Initializes the painters pen, background and font to the same as the given <i>device</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn init_from(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_initFrom(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(device)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() has been called and <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() has not yet been called; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::isActive() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#isActive">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() has been called and <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() has not yet been called; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html#paintingActive">QPaintDevice::paintingActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_active(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_isActive(self as *const crate::QPainter)
    }

    /// <p>Returns the layout direction used by the painter when drawing text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::LayoutDirection QPainter::layoutDirection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#layoutDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the layout direction used by the painter when drawing text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#textDirection">QTextOption::textDirection</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setLayoutDirection">setLayoutDirection</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn layout_direction(&self) -> ::qt_core::LayoutDirection {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_layoutDirection(self as *const crate::QPainter)
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QMatrix& QPainter::matrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#matrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setMatrix">setMatrix</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn matrix(&self) -> ::cpp_core::Ref<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_matrix(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#worldMatrixEnabled">worldMatrixEnabled</a>() instead</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::matrixEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#matrixEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#worldMatrixEnabled">worldMatrixEnabled</a>() instead</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setMatrixEnabled">setMatrixEnabled</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#worldMatrixEnabled">worldMatrixEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn matrix_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_matrixEnabled(self as *const crate::QPainter)
    }

    /// <p>Constructs a painter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainter::QPainter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a painter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPainter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_QPainter();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a painter that begins painting the paint <i>device</i> immediately.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPainter::QPainter(QPaintDevice* arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#QPainter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a painter that begins painting the paint <i>device</i> immediately.</p>
    /// <p>This constructor is convenient for short-lived painters, e.g. in a <a href="http://doc.qt.io/qt-5/qwidget.html#paintEvent">QWidget::paintEvent</a>() and should be used only once. The constructor calls <a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() for you and the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> destructor automatically calls <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>().</p>
    /// <p>Here's an example using <a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>():</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> MyWidget<span class="operator">::</span>paintEvent(<span class="type"><a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a></span> <span class="operator">*</span>)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> p;
    /// &#32;     p<span class="operator">.</span>begin(<span class="keyword">this</span>);
    /// &#32;     p<span class="operator">.</span>drawLine(<span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>);&#32;   &#32;   <span class="comment">// drawing code</span>
    /// &#32;     p<span class="operator">.</span>end();
    ///   }
    ///
    /// </pre>
    /// <p>The same example using this constructor:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> MyWidget<span class="operator">::</span>paintEvent(<span class="type"><a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a></span> <span class="operator">*</span>)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span> p(<span class="keyword">this</span>);
    /// &#32;     p<span class="operator">.</span>drawLine(<span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>);&#32;   &#32;   <span class="comment">// drawing code</span>
    ///   }
    ///
    /// </pre>
    /// <p>Since the constructor cannot provide feedback when the initialization of the painter failed you should rather use <a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() to paint on external devices, e.g. printers.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) -> ::cpp_core::CppBox<crate::QPainter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_QPainter1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(arg1)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the opacity of the painter. The default value is 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPainter::opacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#opacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the opacity of the painter. The default value is 1.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setOpacity">setOpacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn opacity(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_opacity(self as *const crate::QPainter)
    }

    /// <p>Returns the paint engine that the painter is currently operating on if the painter is active; otherwise 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPaintEngine* QPainter::paintEngine() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#paintEngine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paint engine that the painter is currently operating on if the painter is active; otherwise 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#isActive">isActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn paint_engine(&self) -> ::cpp_core::MutPtr<crate::QPaintEngine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_paintEngine(self as *const crate::QPainter);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the painter's current pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPen& QPainter::pen() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#pen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the painter's current pen.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setPen">setPen</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn pen(&self) -> ::cpp_core::Ref<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_pen(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Using <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() obsoletes the use of this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPaintDevice* QPainter::redirected(const QPaintDevice* device, QPoint* offset = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#redirected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Using <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() obsoletes the use of this function.</p>
    /// <p>Returns the replacement for given <i>device</i>. The optional out parameter <i>offset</i> returns the offset within the replaced device.</p>
    /// <p><b>Warning:</b> Making use of redirections in the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> API implies that <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> destructors need to hold a mutex for a short period. This can impact performance. Use of <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a> is strongly encouraged.</p>
    /// <p><b>Note:</b> This function is <a href="http://doc.qt.io/qt-5/threads-reentrancy.html">thread-safe</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setRedirected">setRedirected</a>() and <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#restoreRedirected">restoreRedirected</a>().</p></div>
    #[inline(always)]
    pub unsafe fn redirected_2a(
        device: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
        offset: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QPoint>>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_redirected(
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(device)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QPoint>>::cast_into(offset)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Using <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() obsoletes the use of this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPaintDevice* QPainter::redirected(const QPaintDevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#redirected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Using <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() obsoletes the use of this function.</p>
    /// <p>Returns the replacement for given <i>device</i>. The optional out parameter <i>offset</i> returns the offset within the replaced device.</p>
    /// <p><b>Warning:</b> Making use of redirections in the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> API implies that <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> destructors need to hold a mutex for a short period. This can impact performance. Use of <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a> is strongly encouraged.</p>
    /// <p><b>Note:</b> This function is <a href="http://doc.qt.io/qt-5/threads-reentrancy.html">thread-safe</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setRedirected">setRedirected</a>() and <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#restoreRedirected">restoreRedirected</a>().</p></div>
    #[inline(always)]
    pub unsafe fn redirected_1a(
        device: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_redirected1(
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(device)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a flag that specifies the rendering hints that are set for this painter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QPainter::RenderHint> QPainter::renderHints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#renderHints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a flag that specifies the rendering hints that are set for this painter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHints">setRenderHints</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#testRenderHint">testRenderHint</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#rendering-quality">Rendering Quality</a>.</p></div>
    #[inline(always)]
    pub unsafe fn render_hints(&self) -> ::qt_core::QFlags<crate::q_painter::RenderHint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_renderHints(self as *const crate::QPainter);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Resets any transformations that were made using <a href="http://doc.qt.io/qt-5/qpainter.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#shear">shear</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setWorldMatrix">setWorldMatrix</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setViewport">setViewport</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWindow">setWindow</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::resetMatrix()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#resetMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resets any transformations that were made using <a href="http://doc.qt.io/qt-5/qpainter.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#shear">shear</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setWorldMatrix">setWorldMatrix</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setViewport">setViewport</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWindow">setWindow</a>().</p>
    /// <p>It is advisable to use <a href="http://doc.qt.io/qt-5/qpainter.html#resetTransform">resetTransform</a>() instead of this function to preserve the properties of perspective transformations.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">Coordinate Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn reset_matrix(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_resetMatrix(self as *mut crate::QPainter)
    }

    /// <p>Resets any transformations that were made using <a href="http://doc.qt.io/qt-5/qpainter.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#shear">shear</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setViewport">setViewport</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWindow">setWindow</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::resetTransform()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#resetTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resets any transformations that were made using <a href="http://doc.qt.io/qt-5/qpainter.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#shear">shear</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setViewport">setViewport</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWindow">setWindow</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">Coordinate Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn reset_transform(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_resetTransform(self as *mut crate::QPainter)
    }

    /// <p>Restores the current painter state (pops a saved state off the stack).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::restore()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#restore">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Restores the current painter state (pops a saved state off the stack).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#save">save</a>().</p></div>
    #[inline(always)]
    pub unsafe fn restore(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_restore(self as *mut crate::QPainter)
    }

    /// <p>Using <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() obsoletes the use of this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QPainter::restoreRedirected(const QPaintDevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#restoreRedirected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Using <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() obsoletes the use of this function.</p>
    /// <p>Restores the previous redirection for the given <i>device</i> after a call to <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setRedirected">setRedirected</a>().</p>
    /// <p><b>Warning:</b> Making use of redirections in the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> API implies that <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> destructors need to hold a mutex for a short period. This can impact performance. Use of <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a> is strongly encouraged.</p>
    /// <p><b>Note:</b> This function is <a href="http://doc.qt.io/qt-5/threads-reentrancy.html">thread-safe</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#redirected">redirected</a>().</p></div>
    #[inline(always)]
    pub unsafe fn restore_redirected(
        device: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_restoreRedirected(
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(device)
                .as_raw_ptr(),
        )
    }

    /// <p>Rotates the coordinate system clockwise. The given <i>angle</i> parameter is in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::rotate(double a)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#rotate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates the coordinate system clockwise. The given <i>angle</i> parameter is in degrees.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">Coordinate Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn rotate(&mut self, a: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_rotate(self as *mut crate::QPainter, a)
    }

    /// <p>Saves the current painter state (pushes the state onto a stack). A save() must be followed by a corresponding <a href="http://doc.qt.io/qt-5/qpainter.html#restore">restore</a>(); the <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() function unwinds the stack.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::save()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the current painter state (pushes the state onto a stack). A save() must be followed by a corresponding <a href="http://doc.qt.io/qt-5/qpainter.html#restore">restore</a>(); the <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() function unwinds the stack.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#restore">restore</a>().</p></div>
    #[inline(always)]
    pub unsafe fn save(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_save(self as *mut crate::QPainter)
    }

    /// <p>Scales the coordinate system by (<i>sx</i>, <i>sy</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::scale(double sx, double sy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#scale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Scales the coordinate system by (<i>sx</i>, <i>sy</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">Coordinate Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn scale(&mut self, sx: ::std::os::raw::c_double, sy: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_scale(self as *mut crate::QPainter, sx, sy)
    }

    /// <p>Sets the background brush of the painter to the given <i>brush</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setBackground(const QBrush& bg)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setBackground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the background brush of the painter to the given <i>brush</i>.</p>
    /// <p>The background brush is the brush that is filled in when drawing opaque text, stippled lines and bitmaps. The background brush has no effect in transparent background mode (which is the default).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#background">background</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setBackgroundMode">setBackgroundMode</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_background(
        &mut self,
        bg: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setBackground(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(bg).as_raw_ptr(),
        )
    }

    /// <p>Sets the background mode of the painter to the given <i>mode</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setBackgroundMode(Qt::BGMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setBackgroundMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the background mode of the painter to the given <i>mode</i></p>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#BGMode-enum">Qt::TransparentMode</a> (the default) draws stippled lines and text without setting the background pixels. <a href="http://doc.qt.io/qt-5/qt.html#BGMode-enum">Qt::OpaqueMode</a> fills these space with the current background color.</p>
    /// <p>Note that in order to draw a bitmap or pixmap transparently, you must use <a href="http://doc.qt.io/qt-5/qpixmap.html#setMask">QPixmap::setMask</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#backgroundMode">backgroundMode</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setBackground">setBackground</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_background_mode(&mut self, mode: ::qt_core::BGMode) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setBackgroundMode(self as *mut crate::QPainter, mode)
    }

    /// <p>Sets the painter's brush to the given <i>brush</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setBrush(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setBrush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the painter's brush to the given <i>brush</i>.</p>
    /// <p>The painter's brush defines how shapes are filled.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#brush">brush</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_brush_q_brush(
        &mut self,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setBrush(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setBrush(Qt::BrushStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setBrush-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the painter's brush to black color and the specified <i>style</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_brush_brush_style(&mut self, style: ::qt_core::BrushStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setBrush1(self as *mut crate::QPainter, style)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setBrushOrigin(int x, int y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setBrushOrigin-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the brush's origin to point (<i>x</i>, <i>y</i>).</p></div>
    #[inline(always)]
    pub unsafe fn set_brush_origin_2_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setBrushOrigin(self as *mut crate::QPainter, x, y)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setBrushOrigin(const QPoint& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setBrushOrigin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the brush's origin to the given <i>position</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_brush_origin_q_point(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setBrushOrigin1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the brush origin to <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setBrushOrigin(const QPointF& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setBrushOrigin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush origin to <i>position</i>.</p>
    /// <p>The brush origin specifies the (0, 0) coordinate of the painter's brush.</p>
    /// <p>Note that while the <a href="http://doc.qt.io/qt-5/qpainter.html#brushOrigin">brushOrigin</a>() was necessary to adopt the parent's background for a widget in Qt 3, this is no longer the case since the Qt 4 painter doesn't paint the background unless you explicitly tell it to do so by setting the widget's <a href="http://doc.qt.io/qt-5/qwidget.html#autoFillBackground-prop">autoFillBackground</a> property to true.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#brushOrigin">brushOrigin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_brush_origin_q_point_f(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setBrushOrigin2(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Enables clipping, and sets the clip path for the painter to the given <i>path</i>, with the clip <i>operation</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipPath(const QPainterPath& path, Qt::ClipOperation op = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables clipping, and sets the clip path for the painter to the given <i>path</i>, with the clip <i>operation</i>.</p>
    /// <p>Note that the clip path is specified in logical (painter) coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#clipPath">clipPath</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#clipRegion">clipRegion</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#clipping">Clipping</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_path_2a(
        &mut self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
        op: ::qt_core::ClipOperation,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipPath(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
            op,
        )
    }

    /// <p>Enables clipping, and sets the clip path for the painter to the given <i>path</i>, with the clip <i>operation</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipPath(const QPainterPath& path)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables clipping, and sets the clip path for the painter to the given <i>path</i>, with the clip <i>operation</i>.</p>
    /// <p>Note that the clip path is specified in logical (painter) coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#clipPath">clipPath</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#clipRegion">clipRegion</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#clipping">Clipping</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_path_1a(
        &mut self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipPath1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
        )
    }

    /// <p>Enables clipping, and sets the clip region to the given <i>rectangle</i> using the given clip <i>operation</i>. The default operation is to replace the current clip rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipRect(const QRectF& arg1, Qt::ClipOperation op = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables clipping, and sets the clip region to the given <i>rectangle</i> using the given clip <i>operation</i>. The default operation is to replace the current clip rectangle.</p>
    /// <p>Note that the clip rectangle is specified in logical (painter) coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#clipRegion">clipRegion</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setClipping">setClipping</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#clipping">Clipping</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_rect_q_rect_f_clip_operation(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        op: ::qt_core::ClipOperation,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipRect(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(arg1)
                .as_raw_ptr(),
            op,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipRect(const QRect& arg1, Qt::ClipOperation op = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Enables clipping, and sets the clip region to the given <i>rectangle</i> using the given clip <i>operation</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_rect_q_rect_clip_operation(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        op: ::qt_core::ClipOperation,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipRect1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
            op,
        )
    }

    /// <p>Enables clipping, and sets the clip region to the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipRect(int x, int y, int w, int h, Qt::ClipOperation op = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables clipping, and sets the clip region to the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_rect_4_int_clip_operation(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
        op: ::qt_core::ClipOperation,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipRect2(
            self as *mut crate::QPainter,
            x,
            y,
            w,
            h,
            op,
        )
    }

    /// <p>Enables clipping, and sets the clip region to the given <i>rectangle</i> using the given clip <i>operation</i>. The default operation is to replace the current clip rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipRect(const QRectF& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables clipping, and sets the clip region to the given <i>rectangle</i> using the given clip <i>operation</i>. The default operation is to replace the current clip rectangle.</p>
    /// <p>Note that the clip rectangle is specified in logical (painter) coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#clipRegion">clipRegion</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setClipping">setClipping</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#clipping">Clipping</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_rect_q_rect_f(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipRect3(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipRect(const QRect& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Enables clipping, and sets the clip region to the given <i>rectangle</i> using the given clip <i>operation</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_rect_q_rect(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipRect4(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Enables clipping, and sets the clip region to the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipRect(int x, int y, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables clipping, and sets the clip region to the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_rect_4_int(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipRect5(self as *mut crate::QPainter, x, y, w, h)
    }

    /// <p>Sets the clip region to the given <i>region</i> using the specified clip <i>operation</i>. The default clip operation is to replace the current clip region.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipRegion(const QRegion& arg1, Qt::ClipOperation op = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRegion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the clip region to the given <i>region</i> using the specified clip <i>operation</i>. The default clip operation is to replace the current clip region.</p>
    /// <p>Note that the clip region is given in logical coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#clipRegion">clipRegion</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect">setClipRect</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#clipping">Clipping</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_region_2a(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
        op: ::qt_core::ClipOperation,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipRegion(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(arg1).as_raw_ptr(),
            op,
        )
    }

    /// <p>Sets the clip region to the given <i>region</i> using the specified clip <i>operation</i>. The default clip operation is to replace the current clip region.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipRegion(const QRegion& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRegion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the clip region to the given <i>region</i> using the specified clip <i>operation</i>. The default clip operation is to replace the current clip region.</p>
    /// <p>Note that the clip region is given in logical coordinates.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#clipRegion">clipRegion</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect">setClipRect</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#clipping">Clipping</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clip_region_1a(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipRegion1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Enables clipping if <i>enable</i> is true, or disables clipping if <i>enable</i> is false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setClipping(bool enable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setClipping">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables clipping if <i>enable</i> is true, or disables clipping if <i>enable</i> is false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#hasClipping">hasClipping</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#clipping">Clipping</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_clipping(&mut self, enable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setClipping(self as *mut crate::QPainter, enable)
    }

    /// <p>Sets the composition mode to the given <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setCompositionMode(QPainter::CompositionMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setCompositionMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the composition mode to the given <i>mode</i>.</p>
    /// <p><b>Warning:</b> Only a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> operating on a <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> fully supports all composition modes. The RasterOp modes are supported for X11 as described in <a href="http://doc.qt.io/qt-5/qpainter.html#compositionMode">compositionMode</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#compositionMode">compositionMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_composition_mode(&mut self, mode: crate::q_painter::CompositionMode) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setCompositionMode(self as *mut crate::QPainter, mode)
    }

    /// <p>Sets the painter's font to the given <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setFont(const QFont& f)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the painter's font to the given <i>font</i>.</p>
    /// <p>This font is used by subsequent <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>() functions. The text color is the same as the pen color.</p>
    /// <p>If you set a font that isn't available, Qt finds a close match. <a href="http://doc.qt.io/qt-5/qpainter.html#font">font</a>() will return what you set using setFont() and <a href="http://doc.qt.io/qt-5/qpainter.html#fontInfo">fontInfo</a>() returns the font actually being used (which may be the same).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#font">font</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_font(&mut self, f: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setFont(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(f).as_raw_ptr(),
        )
    }

    /// <p>Sets the layout direction used by the painter when drawing text, to the specified <i>direction</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setLayoutDirection(Qt::LayoutDirection direction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setLayoutDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the layout direction used by the painter when drawing text, to the specified <i>direction</i>.</p>
    /// <p>The default is <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::LayoutDirectionAuto</a>, which will implicitly determine the direction from the text drawn.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextoption.html#setTextDirection">QTextOption::setTextDirection</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#layoutDirection">layoutDirection</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">drawText</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_layout_direction(&mut self, direction: ::qt_core::LayoutDirection) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setLayoutDirection(
            self as *mut crate::QPainter,
            direction,
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setMatrix(const QMatrix& matrix, bool combine = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#matrix">matrix</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_matrix_2a(
        &mut self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
        combine: bool,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setMatrix(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
            combine,
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setMatrix(const QMatrix& matrix)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#matrix">matrix</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_matrix_1a(
        &mut self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setMatrix1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldMatrixEnabled">setWorldMatrixEnabled</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setMatrixEnabled(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setMatrixEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldMatrixEnabled">setWorldMatrixEnabled</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#matrixEnabled">matrixEnabled</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldMatrixEnabled">setWorldMatrixEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_matrix_enabled(&mut self, enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setMatrixEnabled(
            self as *mut crate::QPainter,
            enabled,
        )
    }

    /// <p>Sets the opacity of the painter to <i>opacity</i>. The value should be in the range 0.0 to 1.0, where 0.0 is fully transparent and 1.0 is fully opaque.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setOpacity(double opacity)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setOpacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the opacity of the painter to <i>opacity</i>. The value should be in the range 0.0 to 1.0, where 0.0 is fully transparent and 1.0 is fully opaque.</p>
    /// <p>Opacity set on the painter will apply to all drawing operations individually.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#opacity">opacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_opacity(&mut self, opacity: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setOpacity(self as *mut crate::QPainter, opacity)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setPen(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setPen-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the painter's pen to have style <a href="http://doc.qt.io/qt-5/qt.html#PenStyle-enum">Qt::SolidLine</a>, width 1 and the specified <i>color</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_pen_q_color(
        &mut self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setPen(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(color).as_raw_ptr(),
        )
    }

    /// <p>Sets the painter's pen to be the given <i>pen</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setPen(const QPen& pen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setPen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the painter's pen to be the given <i>pen</i>.</p>
    /// <p>The <i>pen</i> defines how to draw lines and outlines, and it also defines the text color.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#pen">pen</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#settings">Settings</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_pen_q_pen(
        &mut self,
        pen: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setPen1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPen>>::cast_into(pen).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setPen(Qt::PenStyle style)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setPen-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the painter's pen to have the given <i>style</i>, width 1 and black color.</p></div>
    #[inline(always)]
    pub unsafe fn set_pen_pen_style(&mut self, style: ::qt_core::PenStyle) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setPen2(self as *mut crate::QPainter, style)
    }

    /// <p>Please use <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QPainter::setRedirected(const QPaintDevice* device, QPaintDevice* replacement, const QPoint& offset = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setRedirected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Please use <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() instead.</p>
    /// <p>Redirects all paint commands for the given paint <i>device</i>, to the <i>replacement</i> device. The optional point <i>offset</i> defines an offset within the source device.</p>
    /// <p>The redirection will not be effective until the <a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() function has been called; make sure to call <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() for the given <i>device</i>'s painter (if any) before redirecting. Call <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#restoreRedirected">restoreRedirected</a>() to restore the previous redirection.</p>
    /// <p><b>Warning:</b> Making use of redirections in the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> API implies that <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> destructors need to hold a mutex for a short period. This can impact performance. Use of <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a> is strongly encouraged.</p>
    /// <p><b>Note:</b> This function is <a href="http://doc.qt.io/qt-5/threads-reentrancy.html">thread-safe</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#redirected">redirected</a>() and <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#restoreRedirected">restoreRedirected</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_redirected_3a(
        device: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
        replacement: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setRedirected(
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(device)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(replacement)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(offset)
                .as_raw_ptr(),
        )
    }

    /// <p>Please use <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QPainter::setRedirected(const QPaintDevice* device, QPaintDevice* replacement)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setRedirected">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Please use <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a>() instead.</p>
    /// <p>Redirects all paint commands for the given paint <i>device</i>, to the <i>replacement</i> device. The optional point <i>offset</i> defines an offset within the source device.</p>
    /// <p>The redirection will not be effective until the <a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() function has been called; make sure to call <a href="http://doc.qt.io/qt-5/qpainter.html#end">end</a>() for the given <i>device</i>'s painter (if any) before redirecting. Call <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#restoreRedirected">restoreRedirected</a>() to restore the previous redirection.</p>
    /// <p><b>Warning:</b> Making use of redirections in the <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> API implies that <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() and <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> destructors need to hold a mutex for a short period. This can impact performance. Use of <a href="http://doc.qt.io/qt-5/qwidget.html#render">QWidget::render</a> is strongly encouraged.</p>
    /// <p><b>Note:</b> This function is <a href="http://doc.qt.io/qt-5/threads-reentrancy.html">thread-safe</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#redirected">redirected</a>() and <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#restoreRedirected">restoreRedirected</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_redirected_2a(
        device: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPaintDevice>>,
        replacement: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setRedirected1(
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPaintDevice>>::cast_into(device)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(replacement)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the given render <i>hint</i> on the painter if <i>on</i> is true; otherwise clears the render hint.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setRenderHint(QPainter::RenderHint hint, bool on = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the given render <i>hint</i> on the painter if <i>on</i> is true; otherwise clears the render hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHints">setRenderHints</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#renderHints">renderHints</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#rendering-quality">Rendering Quality</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_render_hint_2a(&mut self, hint: crate::q_painter::RenderHint, on: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setRenderHint(self as *mut crate::QPainter, hint, on)
    }

    /// <p>Sets the given render <i>hint</i> on the painter if <i>on</i> is true; otherwise clears the render hint.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setRenderHint(QPainter::RenderHint hint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the given render <i>hint</i> on the painter if <i>on</i> is true; otherwise clears the render hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHints">setRenderHints</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#renderHints">renderHints</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#rendering-quality">Rendering Quality</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_render_hint_1a(&mut self, hint: crate::q_painter::RenderHint) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setRenderHint1(self as *mut crate::QPainter, hint)
    }

    /// <p>Sets the given render <i>hints</i> on the painter if <i>on</i> is true; otherwise clears the render hints.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setRenderHints(QFlags<QPainter::RenderHint> hints, bool on = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the given render <i>hints</i> on the painter if <i>on</i> is true; otherwise clears the render hints.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHint">setRenderHint</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#renderHints">renderHints</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#rendering-quality">Rendering Quality</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_render_hints_2a(
        &mut self,
        hints: ::qt_core::QFlags<crate::q_painter::RenderHint>,
        on: bool,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setRenderHints(
            self as *mut crate::QPainter,
            hints.to_int(),
            on,
        )
    }

    /// <p>Sets the given render <i>hints</i> on the painter if <i>on</i> is true; otherwise clears the render hints.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setRenderHints(QFlags<QPainter::RenderHint> hints)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the given render <i>hints</i> on the painter if <i>on</i> is true; otherwise clears the render hints.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHint">setRenderHint</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#renderHints">renderHints</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#rendering-quality">Rendering Quality</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_render_hints_1a(
        &mut self,
        hints: ::qt_core::QFlags<crate::q_painter::RenderHint>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setRenderHints1(
            self as *mut crate::QPainter,
            hints.to_int(),
        )
    }

    /// <p>Sets the world transformation matrix. If <i>combine</i> is true, the specified <i>transform</i> is combined with the current matrix; otherwise it replaces the current matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setTransform(const QTransform& transform, bool combine = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the world transformation matrix. If <i>combine</i> is true, the specified <i>transform</i> is combined with the current matrix; otherwise it replaces the current matrix.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#transform">transform</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_transform_2a(
        &mut self,
        transform: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
        combine: bool,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setTransform(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(transform)
                .as_raw_ptr(),
            combine,
        )
    }

    /// <p>Sets the world transformation matrix. If <i>combine</i> is true, the specified <i>transform</i> is combined with the current matrix; otherwise it replaces the current matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setTransform(const QTransform& transform)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the world transformation matrix. If <i>combine</i> is true, the specified <i>transform</i> is combined with the current matrix; otherwise it replaces the current matrix.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#transform">transform</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_transform_1a(
        &mut self,
        transform: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setTransform1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(transform)
                .as_raw_ptr(),
        )
    }

    /// <p>Enables view transformations if <i>enable</i> is true, or disables view transformations if <i>enable</i> is false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setViewTransformEnabled(bool enable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setViewTransformEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables view transformations if <i>enable</i> is true, or disables view transformations if <i>enable</i> is false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#viewTransformEnabled">viewTransformEnabled</a>() and <a href="http://doc.qt.io/qt-5/coordsys.html#window-viewport-conversion">Window-Viewport Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_view_transform_enabled(&mut self, enable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setViewTransformEnabled(
            self as *mut crate::QPainter,
            enable,
        )
    }

    /// <p>Sets the painter's viewport rectangle to the given <i>rectangle</i>, and enables view transformations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setViewport(const QRect& viewport)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setViewport">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the painter's viewport rectangle to the given <i>rectangle</i>, and enables view transformations.</p>
    /// <p>The viewport rectangle is part of the view transformation. The viewport specifies the device coordinate system. Its sister, the <a href="http://doc.qt.io/qt-5/qpainter.html#window">window</a>(), specifies the logical coordinate system.</p>
    /// <p>The default viewport rectangle is the same as the device's rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#viewport">viewport</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#viewTransformEnabled">viewTransformEnabled</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html#window-viewport-conversion">Window-Viewport Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_viewport_1a(
        &mut self,
        viewport: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setViewport(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(viewport)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setViewport(int x, int y, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setViewport-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the painter's viewport rectangle to be the rectangle beginning at (<i>x</i>, <i>y</i>) with the given <i>width</i> and <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_viewport_4a(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setViewport1(self as *mut crate::QPainter, x, y, w, h)
    }

    /// <p>Sets the painter's window to the given <i>rectangle</i>, and enables view transformations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setWindow(const QRect& window)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the painter's window to the given <i>rectangle</i>, and enables view transformations.</p>
    /// <p>The window rectangle is part of the view transformation. The window specifies the logical coordinate system. Its sister, the <a href="http://doc.qt.io/qt-5/qpainter.html#viewport">viewport</a>(), specifies the device coordinate system.</p>
    /// <p>The default window rectangle is the same as the device's rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#window">window</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#viewTransformEnabled">viewTransformEnabled</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html#window-viewport-conversion">Window-Viewport Conversion</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_window_1a(
        &mut self,
        window: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setWindow(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(window)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setWindow(int x, int y, int w, int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setWindow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the painter's window to the rectangle beginning at (<i>x</i>, <i>y</i>) and the given <i>width</i> and <i>height</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_window_4a(
        &mut self,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setWindow1(self as *mut crate::QPainter, x, y, w, h)
    }

    /// <p>Sets the transformation matrix to <i>matrix</i> and enables transformations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setWorldMatrix(const QMatrix& matrix, bool combine = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setWorldMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the transformation matrix to <i>matrix</i> and enables transformations.</p>
    /// <p><b>Note: </b>It is advisable to use <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() instead of this function to preserve the properties of perspective transformations.</p><p>If <i>combine</i> is true, then <i>matrix</i> is combined with the current transformation matrix; otherwise <i>matrix</i> replaces the current transformation matrix.</p>
    /// <p>If <i>matrix</i> is the identity matrix and <i>combine</i> is false, this function calls <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldMatrixEnabled">setWorldMatrixEnabled</a>(false). (The identity matrix is the matrix where <a href="http://doc.qt.io/qt-5/qmatrix.html#m11">QMatrix::m11</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#m22">QMatrix::m22</a>() are 1.0 and the rest are 0.0.)</p>
    /// <p>The following functions can transform the coordinate system without using a <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a>:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qpainter.html#translate">translate</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qpainter.html#scale">scale</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qpainter.html#shear">shear</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qpainter.html#rotate">rotate</a>()</li>
    /// </ul>
    /// <p>They operate on the painter's <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#worldMatrix">worldMatrix</a>() and are implemented like this:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span><span class="operator">::</span>rotate(<span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span> angle)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a></span> matrix;
    /// &#32;     matrix<span class="operator">.</span>rotate(angle);
    /// &#32;     setWorldMatrix(matrix<span class="operator">,</span> <span class="keyword">true</span>);
    ///   }
    ///
    /// </pre>
    /// <p>Note that when using setWorldMatrix() function you should always have <i>combine</i> be true when you are drawing into a <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a>. Otherwise it may not be possible to replay the picture with additional transformations; using the <a href="http://doc.qt.io/qt-5/qpainter.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#scale">scale</a>(), etc. convenience functions is safe.</p>
    /// <p>For more information about the coordinate system, transformations and window-viewport conversion, see <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#worldMatrix">worldMatrix</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>(), and <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_world_matrix_2a(
        &mut self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
        combine: bool,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setWorldMatrix(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
            combine,
        )
    }

    /// <p>Sets the transformation matrix to <i>matrix</i> and enables transformations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setWorldMatrix(const QMatrix& matrix)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setWorldMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the transformation matrix to <i>matrix</i> and enables transformations.</p>
    /// <p><b>Note: </b>It is advisable to use <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() instead of this function to preserve the properties of perspective transformations.</p><p>If <i>combine</i> is true, then <i>matrix</i> is combined with the current transformation matrix; otherwise <i>matrix</i> replaces the current transformation matrix.</p>
    /// <p>If <i>matrix</i> is the identity matrix and <i>combine</i> is false, this function calls <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldMatrixEnabled">setWorldMatrixEnabled</a>(false). (The identity matrix is the matrix where <a href="http://doc.qt.io/qt-5/qmatrix.html#m11">QMatrix::m11</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#m22">QMatrix::m22</a>() are 1.0 and the rest are 0.0.)</p>
    /// <p>The following functions can transform the coordinate system without using a <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a>:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qpainter.html#translate">translate</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qpainter.html#scale">scale</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qpainter.html#shear">shear</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qpainter.html#rotate">rotate</a>()</li>
    /// </ul>
    /// <p>They operate on the painter's <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#worldMatrix">worldMatrix</a>() and are implemented like this:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html#QPainter">QPainter</a></span><span class="operator">::</span>rotate(<span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span> angle)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a></span> matrix;
    /// &#32;     matrix<span class="operator">.</span>rotate(angle);
    /// &#32;     setWorldMatrix(matrix<span class="operator">,</span> <span class="keyword">true</span>);
    ///   }
    ///
    /// </pre>
    /// <p>Note that when using setWorldMatrix() function you should always have <i>combine</i> be true when you are drawing into a <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a>. Otherwise it may not be possible to replay the picture with additional transformations; using the <a href="http://doc.qt.io/qt-5/qpainter.html#translate">translate</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#scale">scale</a>(), etc. convenience functions is safe.</p>
    /// <p>For more information about the coordinate system, transformations and window-viewport conversion, see <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#worldMatrix">worldMatrix</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>(), and <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_world_matrix_1a(
        &mut self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setWorldMatrix1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(matrix).as_raw_ptr(),
        )
    }

    /// <p>Enables transformations if <i>enable</i> is true, or disables transformations if <i>enable</i> is false. The world transformation matrix is not changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setWorldMatrixEnabled(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldMatrixEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables transformations if <i>enable</i> is true, or disables transformations if <i>enable</i> is false. The world transformation matrix is not changed.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#worldMatrixEnabled">worldMatrixEnabled</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">Coordinate Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_world_matrix_enabled(&mut self, enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setWorldMatrixEnabled(
            self as *mut crate::QPainter,
            enabled,
        )
    }

    /// <p>Sets the world transformation matrix. If <i>combine</i> is true, the specified <i>matrix</i> is combined with the current matrix; otherwise it replaces the current matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setWorldTransform(const QTransform& matrix, bool combine = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the world transformation matrix. If <i>combine</i> is true, the specified <i>matrix</i> is combined with the current matrix; otherwise it replaces the current matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#transform">transform</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setTransform">setTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_world_transform_2a(
        &mut self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
        combine: bool,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setWorldTransform(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
            combine,
        )
    }

    /// <p>Sets the world transformation matrix. If <i>combine</i> is true, the specified <i>matrix</i> is combined with the current matrix; otherwise it replaces the current matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::setWorldTransform(const QTransform& matrix)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the world transformation matrix. If <i>combine</i> is true, the specified <i>matrix</i> is combined with the current matrix; otherwise it replaces the current matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#transform">transform</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#setTransform">setTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_world_transform_1a(
        &mut self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_setWorldTransform1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
        )
    }

    /// <p>Shears the coordinate system by (<i>sh</i>, <i>sv</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::shear(double sh, double sv)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#shear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Shears the coordinate system by (<i>sh</i>, <i>sv</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">Coordinate Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn shear(&mut self, sh: ::std::os::raw::c_double, sv: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_shear(self as *mut crate::QPainter, sh, sv)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPainter_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Draws the outline (strokes) the path <i>path</i> with the pen specified by <i>pen</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::strokePath(const QPainterPath& path, const QPen& pen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#strokePath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the outline (strokes) the path <i>path</i> with the pen specified by <i>pen</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#fillPath">fillPath</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#drawing">Drawing</a>.</p></div>
    #[inline(always)]
    pub unsafe fn stroke_path(
        &mut self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
        pen: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_strokePath(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPen>>::cast_into(pen).as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if <i>hint</i> is set; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::testRenderHint(QPainter::RenderHint hint) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#testRenderHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>hint</i> is set; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#renderHints">renderHints</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setRenderHint">setRenderHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn test_render_hint(&self, hint: crate::q_painter::RenderHint) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_testRenderHint(self as *const crate::QPainter, hint)
    }

    /// <p>Returns the world transformation matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTransform& QPainter::transform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#transform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the world transformation matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setTransform">setTransform</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transform(&self) -> ::cpp_core::Ref<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_transform(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Translates the coordinate system by the given <i>offset</i>; i.e. the given <i>offset</i> is added to points.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::translate(const QPointF& offset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates the coordinate system by the given <i>offset</i>; i.e. the given <i>offset</i> is added to points.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">Coordinate Transformations</a>.</p></div>
    #[inline(always)]
    pub unsafe fn translate_q_point_f(
        &mut self,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_translate(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(offset)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::translate(const QPoint& offset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#translate-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Translates the coordinate system by the given <i>offset</i>.</p></div>
    #[inline(always)]
    pub unsafe fn translate_q_point(
        &mut self,
        offset: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_translate1(
            self as *mut crate::QPainter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(offset)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPainter::translate(double dx, double dy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#translate-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Translates the coordinate system by the vector (<i>dx</i>, <i>dy</i>).</p></div>
    #[inline(always)]
    pub unsafe fn translate_2_double(
        &mut self,
        dx: ::std::os::raw::c_double,
        dy: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_translate2(self as *mut crate::QPainter, dx, dy)
    }

    /// <p>Returns <code>true</code> if view transformation is enabled; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::viewTransformEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#viewTransformEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if view transformation is enabled; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setViewTransformEnabled">setViewTransformEnabled</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn view_transform_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_viewTransformEnabled(self as *const crate::QPainter)
    }

    /// <p>Returns the viewport rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPainter::viewport() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#viewport">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the viewport rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setViewport">setViewport</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setViewTransformEnabled">setViewTransformEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn viewport(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_viewport(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the window rectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPainter::window() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#window">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the window rectangle.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWindow">setWindow</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#setViewTransformEnabled">setViewTransformEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn window(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_window(self as *const crate::QPainter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the world transformation matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QMatrix& QPainter::worldMatrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#worldMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the world transformation matrix.</p>
    /// <p>It is advisable to use <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>() because worldMatrix() does not preserve the properties of perspective transformations.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setWorldMatrix">setWorldMatrix</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#coordinate-transformations">Coordinate Transformations</a>, and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn world_matrix(&self) -> ::cpp_core::Ref<crate::QMatrix> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_worldMatrix(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if world transformation is enabled; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::worldMatrixEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#worldMatrixEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if world transformation is enabled; otherwise returns false.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWorldMatrixEnabled">setWorldMatrixEnabled</a>(), <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">worldTransform</a>(), and <a href="http://doc.qt.io/qt-5/coordsys.html">Coordinate System</a>.</p></div>
    #[inline(always)]
    pub unsafe fn world_matrix_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_worldMatrixEnabled(self as *const crate::QPainter)
    }

    /// <p>Returns the world transformation matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTransform& QPainter::worldTransform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#worldTransform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the world transformation matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setWorldTransform">setWorldTransform</a>().</p></div>
    #[inline(always)]
    pub unsafe fn world_transform(&self) -> ::cpp_core::Ref<crate::QTransform> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPainter_worldTransform(self as *const crate::QPainter);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }
}

pub mod q_text_item {
    //! C++ type: <span style='color: green;'>```QTextItem```</span>

    /// <p>The RenderFlags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;RenderFlag&gt;. It stores an OR combination of RenderFlag values.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QTextItem::RenderFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html#RenderFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The RenderFlags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;RenderFlag&gt;. It stores an OR combination of RenderFlag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RenderFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RenderFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RenderFlag(value)
        }
    }

    impl From<RenderFlag> for ::std::os::raw::c_int {
        fn from(value: RenderFlag) -> Self {
            value.0
        }
    }

    impl RenderFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RenderFlag {
        /// Render the text from right to left. (C++ enum variant: <span style='color: green;'>```RightToLeft = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const RightToLeft: crate::q_text_item::RenderFlag = crate::q_text_item::RenderFlag(1);
        /// Paint a line above the text. (C++ enum variant: <span style='color: green;'>```Overline = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const Overline: crate::q_text_item::RenderFlag = crate::q_text_item::RenderFlag(16);
        /// Paint a line under the text. (C++ enum variant: <span style='color: green;'>```Underline = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const Underline: crate::q_text_item::RenderFlag = crate::q_text_item::RenderFlag(32);
        /// Paint a line through the text. (C++ enum variant: <span style='color: green;'>```StrikeOut = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const StrikeOut: crate::q_text_item::RenderFlag = crate::q_text_item::RenderFlag(64);
        /// C++ enum variant: <span style='color: green;'>```Dummy = -1```</span>
        #[allow(non_upper_case_globals)]
        pub const Dummy: crate::q_text_item::RenderFlag = crate::q_text_item::RenderFlag(-1);
    }

    impl From<crate::q_text_item::RenderFlag> for ::qt_core::QFlags<crate::q_text_item::RenderFlag> {
        fn from(value: crate::q_text_item::RenderFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_text_item::RenderFlag>>> std::ops::BitOr<T>
        for crate::q_text_item::RenderFlag
    {
        type Output = ::qt_core::QFlags<crate::q_text_item::RenderFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_text_item::RenderFlag> {
            Into::<::qt_core::QFlags<crate::q_text_item::RenderFlag>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
///
/// C++ class: <span style='color: green;'>```QTextItem```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextitem.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
/// <p>When you reimplement your own paint engine, you must reimplement <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawTextItem">QPaintEngine::drawTextItem</a>(), a function that takes a <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> as one of its arguments.</p></div>
#[repr(C)]
pub struct QTextItem {
    _unused: u8,
}
impl QTextItem {
    /// <p>Corresponds to the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#ascent">ascent</a> of the piece of text that is drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextItem::ascent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html#ascent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Corresponds to the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#ascent">ascent</a> of the piece of text that is drawn.</p></div>
    #[inline(always)]
    pub unsafe fn ascent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextItem_ascent(self as *const crate::QTextItem)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextItem& QTextItem::operator=(const QTextItem& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
    /// <p>When you reimplement your own paint engine, you must reimplement <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawTextItem">QPaintEngine::drawTextItem</a>(), a function that takes a <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> as one of its arguments.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextItem>>,
    ) -> ::cpp_core::MutRef<crate::QTextItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextItem_operator_(
            self as *mut crate::QTextItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextItem>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Corresponds to the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#descent">descent</a> of the piece of text that is drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextItem::descent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html#descent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Corresponds to the <a href="http://doc.qt.io/qt-5/qfontmetrics.html#descent">descent</a> of the piece of text that is drawn.</p></div>
    #[inline(always)]
    pub unsafe fn descent(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextItem_descent(self as *const crate::QTextItem)
    }

    /// <p>Returns the font that should be used to draw the text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont QTextItem::font() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html#font">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font that should be used to draw the text.</p></div>
    #[inline(always)]
    pub unsafe fn font(&self) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextItem_font(self as *const crate::QTextItem);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextItem::QTextItem()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
    /// <p>When you reimplement your own paint engine, you must reimplement <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawTextItem">QPaintEngine::drawTextItem</a>(), a function that takes a <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> as one of its arguments.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextItem_QTextItem();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextItem::QTextItem(const QTextItem& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
    /// <p>When you reimplement your own paint engine, you must reimplement <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawTextItem">QPaintEngine::drawTextItem</a>(), a function that takes a <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> as one of its arguments.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextItem>>,
    ) -> ::cpp_core::CppBox<crate::QTextItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextItem_QTextItem1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextItem>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the render flags used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QTextItem::RenderFlag> QTextItem::renderFlags() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html#renderFlags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the render flags used.</p></div>
    #[inline(always)]
    pub unsafe fn render_flags(&self) -> ::qt_core::QFlags<crate::q_text_item::RenderFlag> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextItem_renderFlags(self as *const crate::QTextItem);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the text that should be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextItem::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text that should be drawn.</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextItem_text(self as *const crate::QTextItem);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the total width of the text to be drawn.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QTextItem::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the total width of the text to be drawn.</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QTextItem_width(self as *const crate::QTextItem)
    }
}

pub mod q_paint_engine {
    //! C++ type: <span style='color: green;'>```QPaintEngine```</span>

    /// <p>This enum is used to describe the features or capabilities that the paint engine has. If a feature is not supported by the engine, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> will do a best effort to emulate that feature through other means and pass on an alpha blended <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> to the engine with the emulated results. Some features cannot be emulated: AlphaBlend and PorterDuff.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPaintEngine::PaintEngineFeature```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#PaintEngineFeature-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum is used to describe the features or capabilities that the paint engine has. If a feature is not supported by the engine, <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> will do a best effort to emulate that feature through other means and pass on an alpha blended <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> to the engine with the emulated results. Some features cannot be emulated: AlphaBlend and PorterDuff.</p>
    ///
    /// <p>The PaintEngineFeatures type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;PaintEngineFeature&gt;. It stores an OR combination of PaintEngineFeature values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PaintEngineFeature(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PaintEngineFeature {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PaintEngineFeature(value)
        }
    }

    impl From<PaintEngineFeature> for ::std::os::raw::c_int {
        fn from(value: PaintEngineFeature) -> Self {
            value.0
        }
    }

    impl PaintEngineFeature {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PaintEngineFeature {
        /// The engine has support for transforming drawing primitives. (C++ enum variant: <span style='color: green;'>```PrimitiveTransform = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const PrimitiveTransform: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(1);
        /// The engine has support for transforming brush patterns. (C++ enum variant: <span style='color: green;'>```PatternTransform = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const PatternTransform: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(2);
        /// The engine can transform pixmaps, including rotation and shearing. (C++ enum variant: <span style='color: green;'>```PixmapTransform = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const PixmapTransform: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(4);
        /// The engine is capable of rendering brushes with the brush patterns specified in <a href="http://doc.qt.io/qt-5/qt.html#BrushStyle-enum">Qt::BrushStyle</a>. (C++ enum variant: <span style='color: green;'>```PatternBrush = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const PatternBrush: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(8);
        /// The engine supports linear gradient fills. (C++ enum variant: <span style='color: green;'>```LinearGradientFill = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const LinearGradientFill: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(16);
        /// The engine supports radial gradient fills. (C++ enum variant: <span style='color: green;'>```RadialGradientFill = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const RadialGradientFill: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(32);
        /// The engine supports conical gradient fills. (C++ enum variant: <span style='color: green;'>```ConicalGradientFill = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const ConicalGradientFill: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(64);
        /// The engine can alpha blend primitives. (C++ enum variant: <span style='color: green;'>```AlphaBlend = 128```</span>)
        #[allow(non_upper_case_globals)]
        pub const AlphaBlend: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(128);
        /// The engine supports Porter-Duff operations (C++ enum variant: <span style='color: green;'>```PorterDuff = 256```</span>)
        #[allow(non_upper_case_globals)]
        pub const PorterDuff: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(256);
        /// The engine has path support. (C++ enum variant: <span style='color: green;'>```PainterPaths = 512```</span>)
        #[allow(non_upper_case_globals)]
        pub const PainterPaths: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(512);
        /// The engine can use antialising to improve the appearance of rendered primitives. (C++ enum variant: <span style='color: green;'>```Antialiasing = 1024```</span>)
        #[allow(non_upper_case_globals)]
        pub const Antialiasing: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(1024);
        /// The engine supports drawing strokes that contain brushes as fills, not just solid colors (e.g. a dashed gradient line of width 2). (C++ enum variant: <span style='color: green;'>```BrushStroke = 2048```</span>)
        #[allow(non_upper_case_globals)]
        pub const BrushStroke: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(2048);
        /// The engine supports the feature provided by <a href="http://doc.qt.io/qt-5/qpainter.html#setOpacity">QPainter::setOpacity</a>(). (C++ enum variant: <span style='color: green;'>```ConstantOpacity = 4096```</span>)
        #[allow(non_upper_case_globals)]
        pub const ConstantOpacity: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(4096);
        /// The engine is capable of rendering brushes that has a texture with an alpha channel or a mask. (C++ enum variant: <span style='color: green;'>```MaskedBrush = 8192```</span>)
        #[allow(non_upper_case_globals)]
        pub const MaskedBrush: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(8192);
        /// The engine has support for performing perspective transformations on primitives. (C++ enum variant: <span style='color: green;'>```PerspectiveTransform = 16384```</span>)
        #[allow(non_upper_case_globals)]
        pub const PerspectiveTransform: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(16384);
        /// The engine supports blending modes. (C++ enum variant: <span style='color: green;'>```BlendModes = 32768```</span>)
        #[allow(non_upper_case_globals)]
        pub const BlendModes: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(32768);
        /// The engine has native support for gradients with coordinate mode <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">QGradient::ObjectBoundingMode</a>. Otherwise, if QPaintEngine::PatternTransform is supported, object bounding mode gradients are converted to gradients with coordinate mode <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">QGradient::LogicalMode</a> and a brush transform for the coordinate mapping. (C++ enum variant: <span style='color: green;'>```ObjectBoundingModeGradients = 65536```</span>)
        #[allow(non_upper_case_globals)]
        pub const ObjectBoundingModeGradients: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(65536);
        /// The engine supports bitwise raster operations. (C++ enum variant: <span style='color: green;'>```RasterOpModes = 131072```</span>)
        #[allow(non_upper_case_globals)]
        pub const RasterOpModes: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(131072);
        /// The engine is capable of painting outside of paint events. (C++ enum variant: <span style='color: green;'>```PaintOutsidePaintEvent = 536870912```</span>)
        #[allow(non_upper_case_globals)]
        pub const PaintOutsidePaintEvent: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(536870912);
        /// All of the above features. This enum value is usually used as a bit mask. (C++ enum variant: <span style='color: green;'>```AllFeatures = -1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AllFeatures: crate::q_paint_engine::PaintEngineFeature =
            crate::q_paint_engine::PaintEngineFeature(-1);
    }

    /// <p>These types are used by <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> to trigger lazy updates of the various states in the <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> using <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p>
    ///
    /// C++ enum: <span style='color: green;'>```QPaintEngine::DirtyFlag```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>These types are used by <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> to trigger lazy updates of the various states in the <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> using <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p>
    /// <p>A paint engine must update every dirty state.</p>
    /// <p>The DirtyFlags type is a typedef for <a href="http://doc.qt.io/qt-5/qflags.html">QFlags</a>&lt;DirtyFlag&gt;. It stores an OR combination of DirtyFlag values.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct DirtyFlag(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for DirtyFlag {
        fn from(value: ::std::os::raw::c_int) -> Self {
            DirtyFlag(value)
        }
    }

    impl From<DirtyFlag> for ::std::os::raw::c_int {
        fn from(value: DirtyFlag) -> Self {
            value.0
        }
    }

    impl DirtyFlag {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl DirtyFlag {
        /// The pen is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyPen = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyPen: crate::q_paint_engine::DirtyFlag = crate::q_paint_engine::DirtyFlag(1);
        /// The brush is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyBrush = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyBrush: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(2);
        /// The brush origin is dirty and needs to updated. (C++ enum variant: <span style='color: green;'>```DirtyBrushOrigin = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyBrushOrigin: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(4);
        /// The font is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyFont = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyFont: crate::q_paint_engine::DirtyFlag = crate::q_paint_engine::DirtyFlag(8);
        /// The background is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyBackground = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyBackground: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(16);
        /// The background mode is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyBackgroundMode = 32```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyBackgroundMode: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(32);
        /// The transform is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyTransform = 64```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyTransform: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(64);
        /// The clip region is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyClipRegion = 128```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyClipRegion: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(128);
        /// The clip path is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyClipPath = 256```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyClipPath: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(256);
        /// The render hints is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyHints = 512```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyHints: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(512);
        /// The composition mode is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyCompositionMode = 1024```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyCompositionMode: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(1024);
        /// Whether clipping is enabled or not is dirty and needs to be updated. (C++ enum variant: <span style='color: green;'>```DirtyClipEnabled = 2048```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyClipEnabled: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(2048);
        /// The constant opacity has changed and needs to be updated as part of the state change in <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>(). (C++ enum variant: <span style='color: green;'>```DirtyOpacity = 4096```</span>)
        #[allow(non_upper_case_globals)]
        pub const DirtyOpacity: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(4096);
        /// Convenience enum used internally. (C++ enum variant: <span style='color: green;'>```AllDirty = 65535```</span>)
        #[allow(non_upper_case_globals)]
        pub const AllDirty: crate::q_paint_engine::DirtyFlag =
            crate::q_paint_engine::DirtyFlag(65535);
    }

    /// C++ enum: <span style='color: green;'>```QPaintEngine::PolygonDrawMode```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#PolygonDrawMode-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PolygonDrawMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PolygonDrawMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PolygonDrawMode(value)
        }
    }

    impl From<PolygonDrawMode> for ::std::os::raw::c_int {
        fn from(value: PolygonDrawMode) -> Self {
            value.0
        }
    }

    impl PolygonDrawMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PolygonDrawMode {
        /// The polygon should be drawn using OddEven fill rule. (C++ enum variant: <span style='color: green;'>```OddEvenMode = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const OddEvenMode: crate::q_paint_engine::PolygonDrawMode =
            crate::q_paint_engine::PolygonDrawMode(0);
        /// The polygon should be drawn using Winding fill rule. (C++ enum variant: <span style='color: green;'>```WindingMode = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const WindingMode: crate::q_paint_engine::PolygonDrawMode =
            crate::q_paint_engine::PolygonDrawMode(1);
        /// The polygon is a convex polygon and can be drawn using specialized algorithms where available. (C++ enum variant: <span style='color: green;'>```ConvexMode = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const ConvexMode: crate::q_paint_engine::PolygonDrawMode =
            crate::q_paint_engine::PolygonDrawMode(2);
        /// Only the outline of the polygon should be drawn. (C++ enum variant: <span style='color: green;'>```PolylineMode = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const PolylineMode: crate::q_paint_engine::PolygonDrawMode =
            crate::q_paint_engine::PolygonDrawMode(3);
    }

    /// C++ enum: <span style='color: green;'>```QPaintEngine::Type```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#Type-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Type(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Type {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Type(value)
        }
    }

    impl From<Type> for ::std::os::raw::c_int {
        fn from(value: Type) -> Self {
            value.0
        }
    }

    impl Type {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Type {
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```X11 = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const X11: crate::q_paint_engine::Type = crate::q_paint_engine::Type(0);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Windows = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Windows: crate::q_paint_engine::Type = crate::q_paint_engine::Type(1);
        /// <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>'s QuickDraw (C++ enum variant: <span style='color: green;'>```QuickDraw = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const QuickDraw: crate::q_paint_engine::Type = crate::q_paint_engine::Type(2);
        /// <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>'s Quartz2D (CoreGraphics) (C++ enum variant: <span style='color: green;'>```CoreGraphics = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const CoreGraphics: crate::q_paint_engine::Type = crate::q_paint_engine::Type(3);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```MacPrinter = 4```</span>)
        #[allow(non_upper_case_globals)]
        pub const MacPrinter: crate::q_paint_engine::Type = crate::q_paint_engine::Type(4);
        /// Qt for Embedded Linux (C++ enum variant: <span style='color: green;'>```QWindowSystem = 5```</span>)
        #[allow(non_upper_case_globals)]
        pub const QWindowSystem: crate::q_paint_engine::Type = crate::q_paint_engine::Type(5);
        /// (No longer supported) (C++ enum variant: <span style='color: green;'>```PostScript = 6```</span>)
        #[allow(non_upper_case_globals)]
        pub const PostScript: crate::q_paint_engine::Type = crate::q_paint_engine::Type(6);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```OpenGL = 7```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenGL: crate::q_paint_engine::Type = crate::q_paint_engine::Type(7);
        /// <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> format (C++ enum variant: <span style='color: green;'>```Picture = 8```</span>)
        #[allow(non_upper_case_globals)]
        pub const Picture: crate::q_paint_engine::Type = crate::q_paint_engine::Type(8);
        /// Scalable Vector Graphics XML format (C++ enum variant: <span style='color: green;'>```SVG = 9```</span>)
        #[allow(non_upper_case_globals)]
        pub const SVG: crate::q_paint_engine::Type = crate::q_paint_engine::Type(9);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Raster = 10```</span>)
        #[allow(non_upper_case_globals)]
        pub const Raster: crate::q_paint_engine::Type = crate::q_paint_engine::Type(10);
        /// Windows only, Direct3D based engine (C++ enum variant: <span style='color: green;'>```Direct3D = 11```</span>)
        #[allow(non_upper_case_globals)]
        pub const Direct3D: crate::q_paint_engine::Type = crate::q_paint_engine::Type(11);
        /// Portable Document Format (C++ enum variant: <span style='color: green;'>```Pdf = 12```</span>)
        #[allow(non_upper_case_globals)]
        pub const Pdf: crate::q_paint_engine::Type = crate::q_paint_engine::Type(12);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```OpenVG = 13```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenVG: crate::q_paint_engine::Type = crate::q_paint_engine::Type(13);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```OpenGL2 = 14```</span>)
        #[allow(non_upper_case_globals)]
        pub const OpenGL2: crate::q_paint_engine::Type = crate::q_paint_engine::Type(14);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```PaintBuffer = 15```</span>)
        #[allow(non_upper_case_globals)]
        pub const PaintBuffer: crate::q_paint_engine::Type = crate::q_paint_engine::Type(15);
        /// &nbsp; (C++ enum variant: <span style='color: green;'>```Blitter = 16```</span>)
        #[allow(non_upper_case_globals)]
        pub const Blitter: crate::q_paint_engine::Type = crate::q_paint_engine::Type(16);
        /// Windows only, Direct2D based engine (C++ enum variant: <span style='color: green;'>```Direct2D = 17```</span>)
        #[allow(non_upper_case_globals)]
        pub const Direct2D: crate::q_paint_engine::Type = crate::q_paint_engine::Type(17);
        /// First user type ID (C++ enum variant: <span style='color: green;'>```User = 50```</span>)
        #[allow(non_upper_case_globals)]
        pub const User: crate::q_paint_engine::Type = crate::q_paint_engine::Type(50);
        /// Last user type ID (C++ enum variant: <span style='color: green;'>```MaxUser = 100```</span>)
        #[allow(non_upper_case_globals)]
        pub const MaxUser: crate::q_paint_engine::Type = crate::q_paint_engine::Type(100);
    }

    impl From<crate::q_paint_engine::PaintEngineFeature>
        for ::qt_core::QFlags<crate::q_paint_engine::PaintEngineFeature>
    {
        fn from(value: crate::q_paint_engine::PaintEngineFeature) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_paint_engine::PaintEngineFeature>>> std::ops::BitOr<T>
        for crate::q_paint_engine::PaintEngineFeature
    {
        type Output = ::qt_core::QFlags<crate::q_paint_engine::PaintEngineFeature>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_paint_engine::PaintEngineFeature> {
            Into::<::qt_core::QFlags<crate::q_paint_engine::PaintEngineFeature>>::into(self) | rhs
        }
    }

    impl From<crate::q_paint_engine::DirtyFlag>
        for ::qt_core::QFlags<crate::q_paint_engine::DirtyFlag>
    {
        fn from(value: crate::q_paint_engine::DirtyFlag) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_paint_engine::DirtyFlag>>> std::ops::BitOr<T>
        for crate::q_paint_engine::DirtyFlag
    {
        type Output = ::qt_core::QFlags<crate::q_paint_engine::DirtyFlag>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_paint_engine::DirtyFlag> {
            Into::<::qt_core::QFlags<crate::q_paint_engine::DirtyFlag>>::into(self) | rhs
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> class provides an abstract definition of how <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws to a given device on a given platform.</p>
///
/// C++ class: <span style='color: green;'>```QPaintEngine```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpaintengine.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> class provides an abstract definition of how <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> draws to a given device on a given platform.</p>
/// <p>Qt provides several premade implementations of <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> for the different painter backends we support. The primary paint engine provided is the raster paint engine, which contains a software rasterizer which supports the full feature set on all supported platforms. This is the default for painting on <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>-based classes in e.g. on Windows, X11 and <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>, it is the backend for painting on <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> and it is used as a fallback for paint engines that do not support a certain capability. In addition we provide <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> implementations for <a href="http://doc.qt.io/qt-5/qpaintengine.html#Type-enum">OpenGL</a> (accessible through QGLWidget) and printing (which allows using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> to draw on a QPrinter object).</p>
/// <p>If one wants to use <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> to draw to a different backend, one must subclass <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> and reimplement all its virtual functions. The <a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> implementation is then made available by subclassing <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> and reimplementing the virtual function <a href="http://doc.qt.io/qt-5/qpaintdevice.html#paintEngine">QPaintDevice::paintEngine</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qpaintengine.html">QPaintEngine</a> is created and owned by the <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a> that created it.</p></div>
#[repr(C)]
pub struct QPaintEngine {
    _unused: u8,
}
impl QPaintEngine {
    /// <p>Reimplement this function to initialise your paint engine when painting is to start on the paint device <i>pdev</i>. Return true if the initialization was successful; otherwise return false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QPaintEngine::begin(QPaintDevice* pdev)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to initialise your paint engine when painting is to start on the paint device <i>pdev</i>. Return true if the initialization was successful; otherwise return false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintengine.html#end">end</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#isActive">isActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &mut self,
        pdev: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_begin(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(pdev)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPaintEngine::clearDirty(QFlags<QPaintEngine::DirtyFlag> df)```</span>.
    #[inline(always)]
    pub unsafe fn clear_dirty(&mut self, df: ::qt_core::QFlags<crate::q_paint_engine::DirtyFlag>) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_clearDirty(
            self as *mut crate::QPaintEngine,
            df.to_int(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual QPoint QPaintEngine::coordinateOffset() const```</span>.
    #[inline(always)]
    pub unsafe fn coordinate_offset(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_coordinateOffset(
            self as *const crate::QPaintEngine,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplement this function to draw the largest ellipse that can be contained within rectangle <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawEllipse(const QRectF& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawEllipse">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to draw the largest ellipse that can be contained within rectangle <i>rect</i>.</p>
    /// <p>The default implementation calls <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPolygon">drawPolygon</a>().</p></div>
    #[inline(always)]
    pub unsafe fn draw_ellipse_q_rect_f(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawEllipse(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>The default implementation of this function calls the floating point version of this function</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawEllipse(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawEllipse-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default implementation of this function calls the floating point version of this function</p></div>
    #[inline(always)]
    pub unsafe fn draw_ellipse_q_rect(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawEllipse1(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Reimplement this function to draw the part of the <i>image</i> specified by the <i>sr</i> rectangle in the given <i>rectangle</i> using the given conversion flags <i>flags</i>, to convert it to a pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawImage(const QRectF& r, const QImage& pm, const QRectF& sr, QFlags<Qt::ImageConversionFlag> flags = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to draw the part of the <i>image</i> specified by the <i>sr</i> rectangle in the given <i>rectangle</i> using the given conversion flags <i>flags</i>, to convert it to a pixmap.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_4a(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        flags: ::qt_core::QFlags<::qt_core::ImageConversionFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawImage(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(pm).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(sr).as_raw_ptr(),
            flags.to_int(),
        )
    }

    /// <p>Reimplement this function to draw the part of the <i>image</i> specified by the <i>sr</i> rectangle in the given <i>rectangle</i> using the given conversion flags <i>flags</i>, to convert it to a pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawImage(const QRectF& r, const QImage& pm, const QRectF& sr)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to draw the part of the <i>image</i> specified by the <i>sr</i> rectangle in the given <i>rectangle</i> using the given conversion flags <i>flags</i>, to convert it to a pixmap.</p></div>
    #[inline(always)]
    pub unsafe fn draw_image_3a(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QImage>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawImage1(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QImage>>::cast_into(pm).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(sr).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawLines(const QLine* lines, int lineCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawLines-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>The default implementation converts the first <i>lineCount</i> lines in <i>lines</i> to a <a href="http://doc.qt.io/qt-5/qlinef.html">QLineF</a> and calls the floating point version of this function.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_line_int(
        &mut self,
        lines: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QLine>>,
        line_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawLines(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QLine>>::cast_into(lines)
                .as_raw_ptr(),
            line_count,
        )
    }

    /// <p>The default implementation splits the list of lines in <i>lines</i> into <i>lineCount</i> separate calls to <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPath">drawPath</a>() or <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPolygon">drawPolygon</a>() depending on the feature set of the paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawLines(const QLineF* lines, int lineCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawLines">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default implementation splits the list of lines in <i>lines</i> into <i>lineCount</i> separate calls to <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPath">drawPath</a>() or <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPolygon">drawPolygon</a>() depending on the feature set of the paint engine.</p></div>
    #[inline(always)]
    pub unsafe fn draw_lines_q_line_f_int(
        &mut self,
        lines: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QLineF>>,
        line_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawLines1(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QLineF>>::cast_into(lines)
                .as_raw_ptr(),
            line_count,
        )
    }

    /// <p>The default implementation ignores the <i>path</i> and does nothing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawPath(const QPainterPath& path)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default implementation ignores the <i>path</i> and does nothing.</p></div>
    #[inline(always)]
    pub unsafe fn draw_path(
        &mut self,
        path: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPainterPath>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawPath(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPainterPath>>::cast_into(path)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplement this function to draw the part of the <i>pm</i> specified by the <i>sr</i> rectangle in the given <i>r</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QPaintEngine::drawPixmap(const QRectF& r, const QPixmap& pm, const QRectF& sr)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to draw the part of the <i>pm</i> specified by the <i>sr</i> rectangle in the given <i>r</i>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_pixmap(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        pm: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        sr: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawPixmap(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pm).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(sr).as_raw_ptr(),
        )
    }

    /// <p>Draws the first <i>pointCount</i> points in the buffer <i>points</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawPoints(const QPointF* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPoints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the first <i>pointCount</i> points in the buffer <i>points</i></p></div>
    #[inline(always)]
    pub unsafe fn draw_points_q_point_f_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawPoints(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>Draws the first <i>pointCount</i> points in the buffer <i>points</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawPoints(const QPoint* points, int pointCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPoints-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the first <i>pointCount</i> points in the buffer <i>points</i></p>
    /// <p>The default implementation converts the first <i>pointCount</i> QPoints in <i>points</i> to QPointFs and calls the floating point version of <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPoints">drawPoints</a>.</p></div>
    #[inline(always)]
    pub unsafe fn draw_points_q_point_int(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPoint>>,
        point_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawPoints1(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPoint>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
        )
    }

    /// <p>Reimplement this virtual function to draw the polygon defined by the <i>pointCount</i> first points in <i>points</i>, using mode <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawPolygon(const QPointF* points, int pointCount, QPaintEngine::PolygonDrawMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this virtual function to draw the polygon defined by the <i>pointCount</i> first points in <i>points</i>, using mode <i>mode</i>.</p>
    /// <p><b>Note: </b>At least one of the drawPolygon() functions must be reimplemented.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_point_f_int_polygon_draw_mode(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPointF>>,
        point_count: ::std::os::raw::c_int,
        mode: crate::q_paint_engine::PolygonDrawMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawPolygon(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPointF>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
            mode,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawPolygon(const QPoint* points, int pointCount, QPaintEngine::PolygonDrawMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPolygon-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Reimplement this virtual function to draw the polygon defined by the <i>pointCount</i> first points in <i>points</i>, using mode <i>mode</i>.</p>
    /// <p><b>Note: </b>At least one of the <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPolygon">drawPolygon</a>() functions must be reimplemented.</p></div>
    #[inline(always)]
    pub unsafe fn draw_polygon_q_point_int_polygon_draw_mode(
        &mut self,
        points: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QPoint>>,
        point_count: ::std::os::raw::c_int,
        mode: crate::q_paint_engine::PolygonDrawMode,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawPolygon1(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QPoint>>::cast_into(points)
                .as_raw_ptr(),
            point_count,
            mode,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawRects(const QRect* rects, int rectCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawRects-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>The default implementation converts the first <i>rectCount</i> rectangles in the buffer <i>rects</i> to a <a href="http://doc.qt.io/qt-5/qrectf.html">QRectF</a> and calls the floating point version of this function.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rects_q_rect_int(
        &mut self,
        rects: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QRect>>,
        rect_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawRects(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QRect>>::cast_into(rects)
                .as_raw_ptr(),
            rect_count,
        )
    }

    /// <p>Draws the first <i>rectCount</i> rectangles in the buffer <i>rects</i>. The default implementation of this function calls <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPath">drawPath</a>() or <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPolygon">drawPolygon</a>() depending on the feature set of the paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawRects(const QRectF* rects, int rectCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawRects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Draws the first <i>rectCount</i> rectangles in the buffer <i>rects</i>. The default implementation of this function calls <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPath">drawPath</a>() or <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawPolygon">drawPolygon</a>() depending on the feature set of the paint engine.</p></div>
    #[inline(always)]
    pub unsafe fn draw_rects_q_rect_f_int(
        &mut self,
        rects: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QRectF>>,
        rect_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawRects1(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QRectF>>::cast_into(rects)
                .as_raw_ptr(),
            rect_count,
        )
    }

    /// <p>This function draws the text item <i>textItem</i> at position <i>p</i>. The default implementation of this function converts the text to a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> and paints the resulting path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawTextItem(const QPointF& p, const QTextItem& textItem)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawTextItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function draws the text item <i>textItem</i> at position <i>p</i>. The default implementation of this function converts the text to a <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> and paints the resulting path.</p></div>
    #[inline(always)]
    pub unsafe fn draw_text_item(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        text_item: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawTextItem(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(p).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextItem>>::cast_into(text_item)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplement this function to draw the <i>pixmap</i> in the given <i>rect</i>, starting at the given <i>p</i>. The pixmap will be drawn repeatedly until the <i>rect</i> is filled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPaintEngine::drawTiledPixmap(const QRectF& r, const QPixmap& pixmap, const QPointF& s)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawTiledPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to draw the <i>pixmap</i> in the given <i>rect</i>, starting at the given <i>p</i>. The pixmap will be drawn repeatedly until the <i>rect</i> is filled.</p></div>
    #[inline(always)]
    pub unsafe fn draw_tiled_pixmap(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
        s: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_drawTiledPixmap(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(r).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(s).as_raw_ptr(),
        )
    }

    /// <p>Reimplement this function to finish painting on the current paint device. Return true if painting was finished successfully; otherwise return false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QPaintEngine::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to finish painting on the current paint device. Return true if painting was finished successfully; otherwise return false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintengine.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#isActive">isActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_end(self as *mut crate::QPaintEngine)
    }

    /// Calls C++ function: <span style='color: green;'>```void QPaintEngine::fix_neg_rect(int* x, int* y, int* w, int* h)```</span>.
    #[inline(always)]
    pub unsafe fn fix_neg_rect(
        &mut self,
        x: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        y: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        w: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
        h: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_int>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_fix_neg_rect(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(x)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(y)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(w)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_int>>::cast_into(h)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the paint engine supports the specified <i>feature</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPaintEngine::hasFeature(QFlags<QPaintEngine::PaintEngineFeature> feature) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#hasFeature">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the paint engine supports the specified <i>feature</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn has_feature(
        &self,
        feature: ::qt_core::QFlags<crate::q_paint_engine::PaintEngineFeature>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_hasFeature(
            self as *const crate::QPaintEngine,
            feature.to_int(),
        )
    }

    /// <p>Returns <code>true</code> if the paint engine is actively drawing; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPaintEngine::isActive() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#isActive">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the paint engine is actively drawing; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintengine.html#setActive">setActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_active(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_isActive(self as *const crate::QPaintEngine)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QPaintEngine::isExtended() const```</span>.
    #[inline(always)]
    pub unsafe fn is_extended(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_isExtended(self as *const crate::QPaintEngine)
    }

    /// <p>Returns the device that this engine is painting on, if painting is active; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* QPaintEngine::paintDevice() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#paintDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device that this engine is painting on, if painting is active; otherwise returns 0.</p></div>
    #[inline(always)]
    pub unsafe fn paint_device(&self) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_paintDevice(
            self as *const crate::QPaintEngine,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the paint engine's painter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainter* QPaintEngine::painter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#painter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the paint engine's painter.</p></div>
    #[inline(always)]
    pub unsafe fn painter(&self) -> ::cpp_core::MutPtr<crate::QPainter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_painter(self as *const crate::QPaintEngine);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the active state of the paint engine to <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPaintEngine::setActive(bool newState)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#setActive">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the active state of the paint engine to <i>state</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintengine.html#isActive">isActive</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_active(&mut self, new_state: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_setActive(
            self as *mut crate::QPaintEngine,
            new_state,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPaintEngine::setDirty(QFlags<QPaintEngine::DirtyFlag> df)```</span>.
    #[inline(always)]
    pub unsafe fn set_dirty(&mut self, df: ::qt_core::QFlags<crate::q_paint_engine::DirtyFlag>) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_setDirty(
            self as *mut crate::QPaintEngine,
            df.to_int(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPaintEngine::setPaintDevice(QPaintDevice* device)```</span>.
    #[inline(always)]
    pub unsafe fn set_paint_device(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPaintDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_setPaintDevice(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPaintDevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPaintEngine::setSystemClip(const QRegion& baseClip)```</span>.
    #[inline(always)]
    pub unsafe fn set_system_clip(
        &mut self,
        base_clip: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRegion>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_setSystemClip(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRegion>>::cast_into(base_clip)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPaintEngine::setSystemRect(const QRect& rect)```</span>.
    #[inline(always)]
    pub unsafe fn set_system_rect(
        &mut self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_setSystemRect(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QPaintEngine::syncState()```</span>.
    #[inline(always)]
    pub unsafe fn sync_state(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_syncState(self as *mut crate::QPaintEngine)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegion QPaintEngine::systemClip() const```</span>.
    #[inline(always)]
    pub unsafe fn system_clip(&self) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_systemClip(
            self as *const crate::QPaintEngine,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```QRect QPaintEngine::systemRect() const```</span>.
    #[inline(always)]
    pub unsafe fn system_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_systemRect(
            self as *const crate::QPaintEngine,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QPaintEngine::testDirty(QFlags<QPaintEngine::DirtyFlag> df)```</span>.
    #[inline(always)]
    pub unsafe fn test_dirty(
        &mut self,
        df: ::qt_core::QFlags<crate::q_paint_engine::DirtyFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_testDirty(
            self as *mut crate::QPaintEngine,
            df.to_int(),
        )
    }

    /// <p>Reimplement this function to return the paint engine <a href="http://doc.qt.io/qt-5/qpaintengine.html#Type-enum">Type</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QPaintEngine::Type QPaintEngine::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to return the paint engine <a href="http://doc.qt.io/qt-5/qpaintengine.html#Type-enum">Type</a>.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_paint_engine::Type {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_type(self as *const crate::QPaintEngine)
    }

    /// <p>Reimplement this function to update the state of a paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual void QPaintEngine::updateState(const QPaintEngineState& state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to update the state of a paint engine.</p>
    /// <p>When implemented, this function is responsible for checking the paint engine's current <i>state</i> and update the properties that are changed. Use the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">QPaintEngineState::state</a>() function to find out which properties that must be updated, then use the corresponding <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#getfunction">get function</a> to retrieve the current values for the given properties.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a>.</p></div>
    #[inline(always)]
    pub unsafe fn update_state(
        &mut self,
        state: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPaintEngineState>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_updateState(
            self as *mut crate::QPaintEngine,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPaintEngineState>>::cast_into(state)
                .as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
///
/// C++ class: <span style='color: green;'>```QPaintEngineState```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> records which properties that have changed since the last time the paint engine was updated, as well as their current value.</p>
/// <p>Which properties that have changed can at any time be retrieved using the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() function. This function returns an instance of the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlags</a> type which stores an OR combination of <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> values. The <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> enum defines whether a property has changed since the last update or not.</p>
/// <p>If a property is marked with a dirty flag, its current value can be retrieved using the corresponding get function:</p>
/// <a name="getfunction"></a><div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th>Property Flag</th><th>Current Property Value</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackground</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundBrush">backgroundBrush</a>()</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackgroundMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundMode">backgroundMode</a>()</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrush</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brush">brush</a>()</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrushOrigin</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brushOrigin">brushOrigin</a>()</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a> <i>or</i> <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipOperation">clipOperation</a>()</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipPath">clipPath</a>()</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipRegion">clipRegion</a>()</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyCompositionMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#compositionMode">compositionMode</a>()</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFont</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#font">font</a>()</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyTransform</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#transform">transform</a>()</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipEnabled</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#isClipEnabled">isClipEnabled</a>()</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyPen</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#pen">pen</a>()</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyHints</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#renderHints">renderHints</a>()</td></tr>
/// </tbody></table></div>
/// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class also provide the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#painter">painter</a>() function which returns a pointer to the painter that is currently updating the paint engine.</p>
/// <p>An instance of this class, representing the current state of the active paint engine, is passed as argument to the <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>() function. The only situation in which you will have to use this class directly is when implementing your own paint engine.</p></div>
#[repr(C)]
pub struct QPaintEngineState {
    _unused: u8,
}
impl QPaintEngineState {
    /// <p>Returns the background brush in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QPaintEngineState::backgroundBrush() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundBrush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the background brush in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackground</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn background_brush(&self) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_backgroundBrush(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the background mode in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::BGMode QPaintEngineState::backgroundMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the background mode in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackgroundMode</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn background_mode(&self) -> ::qt_core::BGMode {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_backgroundMode(
            self as *const crate::QPaintEngineState,
        )
    }

    /// <p>Returns the brush in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QPaintEngineState::brush() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrush</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn brush(&self) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_brush(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns whether the coordinate of the fill have been specified as bounded by the current rendering operation and have to be resolved (about the currently rendered primitive).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPaintEngineState::brushNeedsResolving() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brushNeedsResolving">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the coordinate of the fill have been specified as bounded by the current rendering operation and have to be resolved (about the currently rendered primitive).</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn brush_needs_resolving(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_brushNeedsResolving(
            self as *const crate::QPaintEngineState,
        )
    }

    /// <p>Returns the brush origin in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF QPaintEngineState::brushOrigin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brushOrigin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush origin in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrushOrigin</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn brush_origin(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_brushOrigin(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the clip operation in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::ClipOperation QPaintEngineState::clipOperation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipOperation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clip operation in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes either the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a> or the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clip_operation(&self) -> ::qt_core::ClipOperation {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_clipOperation(
            self as *const crate::QPaintEngineState,
        )
    }

    /// <p>Returns the clip path in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPaintEngineState::clipPath() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clip path in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clip_path(&self) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_clipPath(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the clip region in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QPaintEngineState::clipRegion() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipRegion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the clip region in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clip_region(&self) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_clipRegion(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the composition mode in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainter::CompositionMode QPaintEngineState::compositionMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#compositionMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the composition mode in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyCompositionMode</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn composition_mode(&self) -> crate::q_painter::CompositionMode {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_compositionMode(
            self as *const crate::QPaintEngineState,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPaintEngineState& QPaintEngineState::operator=(const QPaintEngineState& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> records which properties that have changed since the last time the paint engine was updated, as well as their current value.</p>
    /// <p>Which properties that have changed can at any time be retrieved using the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() function. This function returns an instance of the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlags</a> type which stores an OR combination of <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> values. The <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> enum defines whether a property has changed since the last update or not.</p>
    /// <p>If a property is marked with a dirty flag, its current value can be retrieved using the corresponding get function:</p>
    /// <a name="getfunction"></a><div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Property Flag</th><th>Current Property Value</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackground</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundBrush">backgroundBrush</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackgroundMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundMode">backgroundMode</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrush</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brush">brush</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrushOrigin</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brushOrigin">brushOrigin</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a> <i>or</i> <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipOperation">clipOperation</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipPath">clipPath</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipRegion">clipRegion</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyCompositionMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#compositionMode">compositionMode</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFont</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#font">font</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyTransform</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#transform">transform</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipEnabled</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#isClipEnabled">isClipEnabled</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyPen</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#pen">pen</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyHints</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#renderHints">renderHints</a>()</td></tr>
    /// </tbody></table></div>
    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class also provide the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#painter">painter</a>() function which returns a pointer to the painter that is currently updating the paint engine.</p>
    /// <p>An instance of this class, representing the current state of the active paint engine, is passed as argument to the <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>() function. The only situation in which you will have to use this class directly is when implementing your own paint engine.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPaintEngineState>>,
    ) -> ::cpp_core::MutRef<crate::QPaintEngineState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_operator_(
            self as *mut crate::QPaintEngineState,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPaintEngineState>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the font in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont QPaintEngineState::font() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#font">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFont</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font(&self) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_font(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns whether clipping is enabled or not in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPaintEngineState::isClipEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#isClipEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether clipping is enabled or not in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipEnabled</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_clip_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_isClipEnabled(
            self as *const crate::QPaintEngineState,
        )
    }

    /// <p>Returns the matrix in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix QPaintEngineState::matrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate-obsolete.html#matrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix in the current paint engine state.</p>
    /// <p><b>Note: </b>It is advisable to use <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#transform">transform</a>() instead of this function to preserve the properties of perspective transformations.</p><p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyTransform</a> flag.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn matrix(&self) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_matrix(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPaintEngineState::QPaintEngineState()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> records which properties that have changed since the last time the paint engine was updated, as well as their current value.</p>
    /// <p>Which properties that have changed can at any time be retrieved using the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() function. This function returns an instance of the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlags</a> type which stores an OR combination of <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> values. The <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> enum defines whether a property has changed since the last update or not.</p>
    /// <p>If a property is marked with a dirty flag, its current value can be retrieved using the corresponding get function:</p>
    /// <a name="getfunction"></a><div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Property Flag</th><th>Current Property Value</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackground</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundBrush">backgroundBrush</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackgroundMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundMode">backgroundMode</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrush</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brush">brush</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrushOrigin</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brushOrigin">brushOrigin</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a> <i>or</i> <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipOperation">clipOperation</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipPath">clipPath</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipRegion">clipRegion</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyCompositionMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#compositionMode">compositionMode</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFont</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#font">font</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyTransform</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#transform">transform</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipEnabled</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#isClipEnabled">isClipEnabled</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyPen</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#pen">pen</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyHints</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#renderHints">renderHints</a>()</td></tr>
    /// </tbody></table></div>
    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class also provide the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#painter">painter</a>() function which returns a pointer to the painter that is currently updating the paint engine.</p>
    /// <p>An instance of this class, representing the current state of the active paint engine, is passed as argument to the <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>() function. The only situation in which you will have to use this class directly is when implementing your own paint engine.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPaintEngineState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_QPaintEngineState();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPaintEngineState::QPaintEngineState(const QPaintEngineState& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> records which properties that have changed since the last time the paint engine was updated, as well as their current value.</p>
    /// <p>Which properties that have changed can at any time be retrieved using the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() function. This function returns an instance of the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlags</a> type which stores an OR combination of <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> values. The <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> enum defines whether a property has changed since the last update or not.</p>
    /// <p>If a property is marked with a dirty flag, its current value can be retrieved using the corresponding get function:</p>
    /// <a name="getfunction"></a><div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Property Flag</th><th>Current Property Value</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackground</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundBrush">backgroundBrush</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackgroundMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundMode">backgroundMode</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrush</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brush">brush</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrushOrigin</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brushOrigin">brushOrigin</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a> <i>or</i> <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipOperation">clipOperation</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipPath">clipPath</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipRegion">clipRegion</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyCompositionMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#compositionMode">compositionMode</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFont</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#font">font</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyTransform</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#transform">transform</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipEnabled</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#isClipEnabled">isClipEnabled</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyPen</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#pen">pen</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyHints</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#renderHints">renderHints</a>()</td></tr>
    /// </tbody></table></div>
    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class also provide the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#painter">painter</a>() function which returns a pointer to the painter that is currently updating the paint engine.</p>
    /// <p>An instance of this class, representing the current state of the active paint engine, is passed as argument to the <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>() function. The only situation in which you will have to use this class directly is when implementing your own paint engine.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPaintEngineState>>,
    ) -> ::cpp_core::CppBox<crate::QPaintEngineState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_QPaintEngineState1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPaintEngineState>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the opacity in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QPaintEngineState::opacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#opacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the opacity in the current paint engine state.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn opacity(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_opacity(
            self as *const crate::QPaintEngineState,
        )
    }

    /// <p>Returns a pointer to the painter currently updating the paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainter* QPaintEngineState::painter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#painter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the painter currently updating the paint engine.</p></div>
    #[inline(always)]
    pub unsafe fn painter(&self) -> ::cpp_core::MutPtr<crate::QPainter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_painter(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the pen in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPen QPaintEngineState::pen() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#pen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pen in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyPen</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pen(&self) -> ::cpp_core::CppBox<crate::QPen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_pen(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns whether the coordinate of the stroke have been specified as bounded by the current rendering operation and have to be resolved (about the currently rendered primitive).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPaintEngineState::penNeedsResolving() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#penNeedsResolving">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the coordinate of the stroke have been specified as bounded by the current rendering operation and have to be resolved (about the currently rendered primitive).</p>
    /// <p>This function was introduced in  Qt 4.3.</p></div>
    #[inline(always)]
    pub unsafe fn pen_needs_resolving(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_penNeedsResolving(
            self as *const crate::QPaintEngineState,
        )
    }

    /// <p>Returns the render hints in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QPainter::RenderHint> QPaintEngineState::renderHints() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#renderHints">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the render hints in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyHints</a> flag.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn render_hints(&self) -> ::qt_core::QFlags<crate::q_painter::RenderHint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_renderHints(
            self as *const crate::QPaintEngineState,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns a combination of flags identifying the set of properties that need to be updated when updating the paint engine's state (i.e. during a call to the <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>() function).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<QPaintEngine::DirtyFlag> QPaintEngineState::state() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a combination of flags identifying the set of properties that need to be updated when updating the paint engine's state (i.e. during a call to the <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>() function).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn state(&self) -> ::qt_core::QFlags<crate::q_paint_engine::DirtyFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_state(
            self as *const crate::QPaintEngineState,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the matrix in the current paint engine state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QPaintEngineState::transform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#transform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the matrix in the current paint engine state.</p>
    /// <p>This variable should only be used when the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() returns a combination which includes the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyTransform</a> flag.</p>
    /// <p>This function was introduced in  Qt 4.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transform(&self) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_transform(
            self as *const crate::QPaintEngineState,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpdfwriter.html">QPdfWriter</a> class is a class to generate PDFs that can be used as a paint device.</p>
///
/// C++ class: <span style='color: green;'>```QPdfWriter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpdfwriter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpdfwriter.html">QPdfWriter</a> class is a class to generate PDFs that can be used as a paint device.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpdfwriter.html">QPdfWriter</a> generates PDF out of a series of drawing commands using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>. The <a href="http://doc.qt.io/qt-5/qpdfwriter.html#newPage">newPage</a>() method can be used to create several pages.</p></div>
#[repr(C)]
pub struct QPdfWriter {
    _unused: u8,
}
impl QPdfWriter {
    /// <p>Returns the creator of the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QPdfWriter::creator() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#creator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the creator of the document.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#setCreator">setCreator</a>().</p></div>
    #[inline(always)]
    pub unsafe fn creator(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_creator(self as *const crate::QPdfWriter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QPdfWriter::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_metaObject(self as *const crate::QPdfWriter);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a PDF writer that will write the pdf to <i>filename</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPdfWriter::QPdfWriter(const QString& filename)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#QPdfWriter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a PDF writer that will write the pdf to <i>filename</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        filename: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QPdfWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_QPdfWriter(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(filename)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a PDF writer that will write the pdf to <i>device</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPdfWriter::QPdfWriter(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#QPdfWriter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a PDF writer that will write the pdf to <i>device</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> ::cpp_core::CppBox<crate::QPdfWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_QPdfWriter1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">QPagedPaintDevice::newPage</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QPdfWriter::newPage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#newPage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#newPage">QPagedPaintDevice::newPage</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_page(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_newPage(self as *mut crate::QPdfWriter)
    }

    /// <p>Returns the PDF version for this writer. The default is <code>PdfVersion_1_4</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice::PdfVersion QPdfWriter::pdfVersion() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#pdfVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the PDF version for this writer. The default is <code>PdfVersion_1_4</code>.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#setPdfVersion">setPdfVersion</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn pdf_version(&self) -> crate::q_paged_paint_device::PdfVersion {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_pdfVersion(self as *const crate::QPdfWriter)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QPdfWriter::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_qt_metacall(
            self as *mut crate::QPdfWriter,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QPdfWriter::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_qt_metacast(
            self as *mut crate::QPdfWriter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the resolution of the PDF in DPI.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPdfWriter::resolution() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#resolution">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the resolution of the PDF in DPI.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#setResolution">setResolution</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resolution(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_resolution(self as *const crate::QPdfWriter)
    }

    /// <p>Sets the creator of the document to <i>creator</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPdfWriter::setCreator(const QString& creator)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#setCreator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the creator of the document to <i>creator</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#creator">creator</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_creator(
        &mut self,
        creator: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_setCreator(
            self as *mut crate::QPdfWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(creator)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setMargins">QPagedPaintDevice::setMargins</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPdfWriter::setMargins(const QPagedPaintDevice::Margins& m)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter-obsolete.html#setMargins">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setMargins">QPagedPaintDevice::setMargins</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#setPageMargins">setPageMargins</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_margins(
        &mut self,
        m: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_paged_paint_device::Margins>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_setMargins(self as *mut crate::QPdfWriter, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_paged_paint_device::Margins>>::cast_into(m).as_raw_ptr())
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSize-1">QPagedPaintDevice::setPageSize</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPdfWriter::setPageSize(QPagedPaintDevice::PageSize size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter-obsolete.html#setPageSize-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSize-1">QPagedPaintDevice::setPageSize</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#setPageSize">setPageSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_size(&mut self, size: crate::q_paged_paint_device::PageSize) {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_setPageSize(self as *mut crate::QPdfWriter, size)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSizeMM">QPagedPaintDevice::setPageSizeMM</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPdfWriter::setPageSizeMM(const QSizeF& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter-obsolete.html#setPageSizeMM">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#setPageSizeMM">QPagedPaintDevice::setPageSizeMM</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#setPageSize">setPageSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_page_size_m_m(
        &mut self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_setPageSizeMM(
            self as *mut crate::QPdfWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(size)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the PDF version for this writer to <i>version</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPdfWriter::setPdfVersion(QPagedPaintDevice::PdfVersion version)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#setPdfVersion">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the PDF version for this writer to <i>version</i>.</p>
    /// <p>If <i>version</i> is the same value as currently set then no change will be made.</p>
    /// <p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#pdfVersion">pdfVersion</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_pdf_version(&mut self, version: crate::q_paged_paint_device::PdfVersion) {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_setPdfVersion(
            self as *mut crate::QPdfWriter,
            version,
        )
    }

    /// <p>Sets the PDF <i>resolution</i> in DPI.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPdfWriter::setResolution(int resolution)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#setResolution">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the PDF <i>resolution</i> in DPI.</p>
    /// <p>This setting affects the coordinate system as returned by, for example <a href="http://doc.qt.io/qt-5/qpainter.html#viewport">QPainter::viewport</a>().</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#resolution">resolution</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_resolution(&mut self, resolution: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_setResolution(
            self as *mut crate::QPdfWriter,
            resolution,
        )
    }

    /// <p>Sets the title of the document being created to <i>title</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPdfWriter::setTitle(const QString& title)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#setTitle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the title of the document being created to <i>title</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#title">title</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_title(
        &mut self,
        title: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_setTitle(
            self as *mut crate::QPdfWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(title)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the title of the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QPdfWriter::title() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#title">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the title of the document.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpdfwriter.html#setTitle">setTitle</a>().</p></div>
    #[inline(always)]
    pub unsafe fn title(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_title(self as *const crate::QPdfWriter);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QPdfWriter::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QPdfWriter::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> class is a paint device that records and replays <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> commands.</p>
///
/// C++ class: <span style='color: green;'>```QPicture```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpicture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> class is a paint device that records and replays <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> commands.</p>
/// <p>A picture serializes painter commands to an IO device in a platform-independent format. They are sometimes referred to as meta-files.</p>
/// <p>Qt pictures use a proprietary binary format. Unlike native picture (meta-file) formats on many window systems, Qt pictures have no limitations regarding their contents. Everything that can be painted on a widget or pixmap (e.g., fonts, pixmaps, regions, transformed graphics, etc.) can also be stored in a picture.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> is resolution independent, i.e. a <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> can be displayed on different devices (for example svg, pdf, ps, printer and screen) looking the same. This is, for instance, needed for WYSIWYG print preview. <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> runs in the default system dpi, and scales the painter to match differences in resolution depending on the window system.</p>
/// <p>Example of how to record a picture:</p>
/// <pre class="cpp">
///
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html#QPicture">QPicture</a></span> picture;
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter;
/// &#32;   &#32;     painter<span class="operator">.</span>begin(<span class="operator">&amp;</span>picture);&#32;   &#32;      <span class="comment">// paint in picture</span>
/// &#32;   &#32;     painter<span class="operator">.</span>drawEllipse(<span class="number">10</span><span class="operator">,</span><span class="number">20</span><span class="operator">,</span> <span class="number">80</span><span class="operator">,</span><span class="number">70</span>); <span class="comment">// draw an ellipse</span>
/// &#32;   &#32;     painter<span class="operator">.</span>end();&#32;   &#32;   &#32;   &#32;   &#32;    <span class="comment">// painting done</span>
/// &#32;   &#32;     picture<span class="operator">.</span>save(<span class="string">"drawing.pic"</span>);&#32;      <span class="comment">// save picture</span>
///
/// </pre>
/// <p>Note that the list of painter commands is reset on each call to the <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() function.</p>
/// <p>Example of how to replay a picture:</p>
/// <pre class="cpp">
///
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html#QPicture">QPicture</a></span> picture;
/// &#32;   &#32;     picture<span class="operator">.</span>load(<span class="string">"drawing.pic"</span>);&#32;   &#32;      <span class="comment">// load picture</span>
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter;
/// &#32;   &#32;     painter<span class="operator">.</span>begin(<span class="operator">&amp;</span>myImage);&#32;   &#32;   &#32;      <span class="comment">// paint in myImage</span>
/// &#32;   &#32;     painter<span class="operator">.</span>drawPicture(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> picture);&#32;   <span class="comment">// draw the picture at (0,0)</span>
/// &#32;   &#32;     painter<span class="operator">.</span>end();&#32;   &#32;   &#32;   &#32;   &#32;   &#32;    <span class="comment">// painting done</span>
///
/// </pre>
/// <p>Pictures can also be drawn using <a href="http://doc.qt.io/qt-5/qpicture.html#play">play</a>(). Some basic data about a picture is available, for example, <a href="http://doc.qt.io/qt-5/qpicture.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qpicture.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpicture.html#boundingRect">boundingRect</a>().</p></div>
#[repr(C)]
pub struct QPicture {
    _unused: u8,
}
impl QPicture {
    /// <p>Returns the picture's bounding rectangle or an invalid rectangle if the picture contains no data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QPicture::boundingRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#boundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the picture's bounding rectangle or an invalid rectangle if the picture contains no data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#setBoundingRect">setBoundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bounding_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPicture_boundingRect(self as *const crate::QPicture);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns picture <i>p</i> to this picture and returns a reference to this picture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPicture& QPicture::operator=(const QPicture& p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns picture <i>p</i> to this picture and returns a reference to this picture.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPicture>>,
    ) -> ::cpp_core::MutRef<crate::QPicture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_operator_(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPicture>>::cast_into(p).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a pointer to the picture data. The pointer is only valid until the next non-const function is called on this picture. The returned pointer is 0 if the picture contains no data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const char* QPicture::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the picture data. The pointer is only valid until the next non-const function is called on this picture. The returned pointer is 0 if the picture contains no data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#setData">setData</a>(), <a href="http://doc.qt.io/qt-5/qpicture.html#size">size</a>(), and <a href="http://doc.qt.io/qt-5/qpicture.html#isNull">isNull</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_char> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_data(self as *const crate::QPicture);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QPicture::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_detach(self as *mut crate::QPicture)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QPicture::devType() const```</span>.
    #[inline(always)]
    pub unsafe fn dev_type(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_devType(self as *const crate::QPicture)
    }

    /// <p>Returns a list of picture formats that are supported for picture input.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QPicture::inputFormatList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#inputFormatList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of picture formats that are supported for picture input.</p>
    /// <p>Note that if you want to iterate over the list, you should iterate over a copy, e.g.</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html#QPicture">QPicture</a></span><span class="operator">::</span>inputFormatList();
    /// &#32;   &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>string<span class="operator">,</span> list)
    /// &#32;   &#32;   &#32;     myProcessing(string);
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#outputFormatList">outputFormatList</a>(), <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#inputFormats">inputFormats</a>(), and <a href="http://doc.qt.io/qt-5/qpictureio.html">QPictureIO</a>.</p></div>
    #[inline(always)]
    pub unsafe fn input_format_list() -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_inputFormatList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of picture formats that are supported for picture input.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QPicture::inputFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#inputFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of picture formats that are supported for picture input.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#outputFormats">outputFormats</a>(), <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#inputFormatList">inputFormatList</a>(), and <a href="http://doc.qt.io/qt-5/qpictureio.html">QPictureIO</a>.</p></div>
    #[inline(always)]
    pub unsafe fn input_formats() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_inputFormats();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QPicture::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_isDetached(self as *const crate::QPicture)
    }

    /// <p>Returns <code>true</code> if the picture contains no data; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::isNull() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#isNull">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the picture contains no data; otherwise returns false.</p></div>
    #[inline(always)]
    pub unsafe fn is_null(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_isNull(self as *const crate::QPicture)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::load(QIODevice* dev, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#load-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p><i>dev</i> is the device to use for loading.</p></div>
    #[inline(always)]
    pub unsafe fn load_q_io_device_char(
        &mut self,
        dev: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_load(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(dev)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads a picture from the file specified by <i>fileName</i> and returns true if successful; otherwise invalidates the picture and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::load(const QString& fileName, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#load">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads a picture from the file specified by <i>fileName</i> and returns true if successful; otherwise invalidates the picture and returns <code>false</code>.</p>
    /// <p>Please note that the <i>format</i> parameter has been deprecated and will have no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#save">save</a>().</p></div>
    #[inline(always)]
    pub unsafe fn load_q_string_char(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_load1(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::load(QIODevice* dev)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#load-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p><i>dev</i> is the device to use for loading.</p></div>
    #[inline(always)]
    pub unsafe fn load_q_io_device(
        &mut self,
        dev: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_load2(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(dev)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Loads a picture from the file specified by <i>fileName</i> and returns true if successful; otherwise invalidates the picture and returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::load(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#load">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads a picture from the file specified by <i>fileName</i> and returns true if successful; otherwise invalidates the picture and returns <code>false</code>.</p>
    /// <p>Please note that the <i>format</i> parameter has been deprecated and will have no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#save">save</a>().</p></div>
    #[inline(always)]
    pub unsafe fn load_q_string(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_load3(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Constructs an empty picture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPicture::QPicture(int formatVersion = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#QPicture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty picture.</p>
    /// <p>The <i>formatVersion</i> parameter may be used to <i>create</i> a <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> that can be read by applications that are compiled with earlier versions of Qt.</p>
    /// <p>Note that the default formatVersion is -1 which signifies the current release, i.e. for Qt 4.0 a formatVersion of 7 is the same as the default formatVersion of -1.</p>
    /// <p>Reading pictures generated by earlier versions of Qt is not supported in Qt 4.0.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        format_version: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPicture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_QPicture(format_version);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> class is a paint device that records and replays <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> commands.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPicture::QPicture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> class is a paint device that records and replays <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> commands.</p>
    /// <p>A picture serializes painter commands to an IO device in a platform-independent format. They are sometimes referred to as meta-files.</p>
    /// <p>Qt pictures use a proprietary binary format. Unlike native picture (meta-file) formats on many window systems, Qt pictures have no limitations regarding their contents. Everything that can be painted on a widget or pixmap (e.g., fonts, pixmaps, regions, transformed graphics, etc.) can also be stored in a picture.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> is resolution independent, i.e. a <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> can be displayed on different devices (for example svg, pdf, ps, printer and screen) looking the same. This is, for instance, needed for WYSIWYG print preview. <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a> runs in the default system dpi, and scales the painter to match differences in resolution depending on the window system.</p>
    /// <p>Example of how to record a picture:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html#QPicture">QPicture</a></span> picture;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter;
    /// &#32;   &#32;     painter<span class="operator">.</span>begin(<span class="operator">&amp;</span>picture);&#32;   &#32;      <span class="comment">// paint in picture</span>
    /// &#32;   &#32;     painter<span class="operator">.</span>drawEllipse(<span class="number">10</span><span class="operator">,</span><span class="number">20</span><span class="operator">,</span> <span class="number">80</span><span class="operator">,</span><span class="number">70</span>); <span class="comment">// draw an ellipse</span>
    /// &#32;   &#32;     painter<span class="operator">.</span>end();&#32;   &#32;   &#32;   &#32;   &#32;    <span class="comment">// painting done</span>
    /// &#32;   &#32;     picture<span class="operator">.</span>save(<span class="string">"drawing.pic"</span>);&#32;      <span class="comment">// save picture</span>
    ///
    /// </pre>
    /// <p>Note that the list of painter commands is reset on each call to the <a href="http://doc.qt.io/qt-5/qpainter.html#begin">QPainter::begin</a>() function.</p>
    /// <p>Example of how to replay a picture:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html#QPicture">QPicture</a></span> picture;
    /// &#32;   &#32;     picture<span class="operator">.</span>load(<span class="string">"drawing.pic"</span>);&#32;   &#32;      <span class="comment">// load picture</span>
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter;
    /// &#32;   &#32;     painter<span class="operator">.</span>begin(<span class="operator">&amp;</span>myImage);&#32;   &#32;   &#32;      <span class="comment">// paint in myImage</span>
    /// &#32;   &#32;     painter<span class="operator">.</span>drawPicture(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> picture);&#32;   <span class="comment">// draw the picture at (0,0)</span>
    /// &#32;   &#32;     painter<span class="operator">.</span>end();&#32;   &#32;   &#32;   &#32;   &#32;   &#32;    <span class="comment">// painting done</span>
    ///
    /// </pre>
    /// <p>Pictures can also be drawn using <a href="http://doc.qt.io/qt-5/qpicture.html#play">play</a>(). Some basic data about a picture is available, for example, <a href="http://doc.qt.io/qt-5/qpicture.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qpicture.html#isNull">isNull</a>() and <a href="http://doc.qt.io/qt-5/qpicture.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPicture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_QPicture2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>pic</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPicture::QPicture(const QPicture& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#QPicture-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>pic</i>.</p>
    /// <p>This constructor is fast thanks to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPicture>>,
    ) -> ::cpp_core::CppBox<crate::QPicture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_QPicture1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPicture>>::cast_into(arg1).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of picture formats that are supported for picture output.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QStringList QPicture::outputFormatList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#outputFormatList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of picture formats that are supported for picture output.</p>
    /// <p>Note that if you want to iterate over the list, you should iterate over a copy, e.g.</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html#QPicture">QPicture</a></span><span class="operator">::</span>outputFormatList();
    /// &#32;   &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>string<span class="operator">,</span> list)
    /// &#32;   &#32;   &#32;     myProcessing(string);
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#inputFormatList">inputFormatList</a>(), <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#outputFormats">outputFormats</a>(), and <a href="http://doc.qt.io/qt-5/qpictureio.html">QPictureIO</a>.</p></div>
    #[inline(always)]
    pub unsafe fn output_format_list() -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_outputFormatList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of picture formats that are supported for picture output.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QPicture::outputFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#outputFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of picture formats that are supported for picture output.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#inputFormats">inputFormats</a>(), <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#outputFormatList">outputFormatList</a>(), and <a href="http://doc.qt.io/qt-5/qpictureio.html">QPictureIO</a>.</p></div>
    #[inline(always)]
    pub unsafe fn output_formats() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_outputFormats();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual QPaintEngine* QPicture::paintEngine() const```</span>.
    #[inline(always)]
    pub unsafe fn paint_engine(&self) -> ::cpp_core::MutPtr<crate::QPaintEngine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPicture_paintEngine(self as *const crate::QPicture);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a string that specifies the picture format of the file <i>fileName</i>, or 0 if the file cannot be read or if the format is not recognized.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static const char* QPicture::pictureFormat(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture-obsolete.html#pictureFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a string that specifies the picture format of the file <i>fileName</i>, or 0 if the file cannot be read or if the format is not recognized.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#load">load</a>() and <a href="http://doc.qt.io/qt-5/qpicture.html#save">save</a>().</p></div>
    #[inline(always)]
    pub unsafe fn picture_format(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::Ptr<::std::os::raw::c_char> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_pictureFormat(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Replays the picture using <i>painter</i>, and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::play(QPainter* p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#play">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replays the picture using <i>painter</i>, and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    /// <p>This function does exactly the same as <a href="http://doc.qt.io/qt-5/qpainter.html#drawPicture">QPainter::drawPicture</a>() with (x, y) = (0, 0).</p></div>
    #[inline(always)]
    pub unsafe fn play(
        &mut self,
        p: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPainter>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_play(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPainter>>::cast_into(p)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::save(QIODevice* dev, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#save-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p><i>dev</i> is the device to use for saving.</p></div>
    #[inline(always)]
    pub unsafe fn save_q_io_device_char(
        &mut self,
        dev: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_save(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(dev)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Saves a picture to the file specified by <i>fileName</i> and returns true if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::save(const QString& fileName, const char* format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves a picture to the file specified by <i>fileName</i> and returns true if successful; otherwise returns <code>false</code>.</p>
    /// <p>Please note that the <i>format</i> parameter has been deprecated and will have no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#load">load</a>().</p></div>
    #[inline(always)]
    pub unsafe fn save_q_string_char(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_save1(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::save(QIODevice* dev)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#save-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p><i>dev</i> is the device to use for saving.</p></div>
    #[inline(always)]
    pub unsafe fn save_q_io_device(
        &mut self,
        dev: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_save2(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(dev)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Saves a picture to the file specified by <i>fileName</i> and returns true if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPicture::save(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#save">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves a picture to the file specified by <i>fileName</i> and returns true if successful; otherwise returns <code>false</code>.</p>
    /// <p>Please note that the <i>format</i> parameter has been deprecated and will have no effect.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#load">load</a>().</p></div>
    #[inline(always)]
    pub unsafe fn save_q_string(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_save3(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the picture's bounding rectangle to <i>r</i>. The automatically calculated value is overridden.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPicture::setBoundingRect(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#setBoundingRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the picture's bounding rectangle to <i>r</i>. The automatically calculated value is overridden.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#boundingRect">boundingRect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bounding_rect(
        &mut self,
        r: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_setBoundingRect(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(r).as_raw_ptr(),
        )
    }

    /// <p>Sets the picture data directly from <i>data</i> and <i>size</i>. This function copies the input data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QPicture::setData(const char* data, unsigned int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the picture data directly from <i>data</i> and <i>size</i>. This function copies the input data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qpicture.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        size: ::std::os::raw::c_uint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_setData(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(data)
                .as_raw_ptr(),
            size,
        )
    }

    /// <p>Returns the size of the picture data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QPicture::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the picture data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#data">data</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_size(self as *const crate::QPicture)
    }

    /// <p>Swaps picture <i>other</i> with this picture. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPicture::swap(QPicture& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps picture <i>other</i> with this picture. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPicture>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_swap(
            self as *mut crate::QPicture,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPicture>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpictureio.html">QPictureIO</a> class contains parameters for loading and saving pictures.</p>
///
/// C++ class: <span style='color: green;'>```QPictureIO```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpictureio.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpictureio.html">QPictureIO</a> class contains parameters for loading and saving pictures.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpictureio.html">QPictureIO</a> contains a <a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a> object that is used for picture data I/O. The programmer can install new picture file formats in addition to those that Qt provides.</p>
/// <p>You don't normally need to use this class; <a href="http://doc.qt.io/qt-5/qpicture.html#load">QPicture::load</a>(), <a href="http://doc.qt.io/qt-5/qpicture.html#save">QPicture::save</a>().</p></div>
#[repr(C)]
pub struct QPictureIO {
    _unused: u8,
}
impl QPictureIO {
    /// <p>Defines a picture I/O handler for the picture format called <i>format</i>, which is recognized using the regular expression defined in <i>header</i>, read using <i>readPicture</i> and written using <i>writePicture</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QPictureIO::defineIOHandler(const char* format, const char* header, const char* flags, void (*FN_PTR)(QPictureIO*) read_picture, void (*FN_PTR)(QPictureIO*) write_picture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#defineIOHandler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines a picture I/O handler for the picture format called <i>format</i>, which is recognized using the regular expression defined in <i>header</i>, read using <i>readPicture</i> and written using <i>writePicture</i>.</p>
    /// <p><i>flags</i> is a string of single-character flags for this format. The only flag defined currently is T (upper case), so the only legal value for <i>flags</i> are "T" and the empty string. The "T" flag means that the picture file is a text file, and Qt should treat all newline conventions as equivalent. (XPM files and some PPM files are text files for example.)</p>
    /// <p><i>format</i> is used to select a handler to write a <a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a>; <i>header</i> is used to select a handler to read an picture file.</p>
    /// <p>If <i>readPicture</i> is a null pointer, the <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> will not be able to read pictures in <i>format</i>. If <i>writePicture</i> is a null pointer, the <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> will not be able to write pictures in <i>format</i>. If both are null, the <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> object is valid but useless.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> readSVG(<span class="type"><a href="http://doc.qt.io/qt-5/qpictureio.html#QPictureIO">QPictureIO</a></span> <span class="operator">*</span>picture)
    ///   {
    /// &#32;     <span class="comment">// read the picture using the picture-&gt;ioDevice()</span>
    ///   }
    ///
    ///   <span class="type">void</span> writeSVG(<span class="type"><a href="http://doc.qt.io/qt-5/qpictureio.html#QPictureIO">QPictureIO</a></span> <span class="operator">*</span>picture)
    ///   {
    /// &#32;     <span class="comment">// write the picture using the picture-&gt;ioDevice()</span>
    ///   }
    ///
    /// &#32;     <span class="comment">// add the SVG picture handler</span>
    /// &#32;     <span class="comment">// ...</span>
    ///
    /// </pre>
    /// <p>Before the regular expression test, all the 0 bytes in the file header are converted to 1 bytes. This is done because when Qt was ASCII-based, <a href="http://doc.qt.io/qt-5/qregexp.html">QRegExp</a> could not handle 0 bytes in strings.</p>
    /// <p>The regexp is only applied on the first 14 bytes of the file.</p>
    /// <p>(Note that if one handlerIO supports writing a format and another supports reading it, Qt supports both reading and writing. If two handlers support the same operation, Qt chooses one arbitrarily.)</p></div>
    #[inline(always)]
    pub unsafe fn define_io_handler(
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        header: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        flags: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        read_picture: ::std::option::Option<extern "C" fn(*mut crate::QPictureIO)>,
        write_picture: ::std::option::Option<extern "C" fn(*mut crate::QPictureIO)>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_defineIOHandler(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(header)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(flags)
                .as_raw_ptr(),
            read_picture,
            write_picture,
        )
    }

    /// <p>Returns the picture description string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QPictureIO::description() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#description">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the picture description string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setDescription">setDescription</a>().</p></div>
    #[inline(always)]
    pub unsafe fn description(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPictureIO_description(self as *const crate::QPictureIO);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the file name currently set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QPictureIO::fileName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#fileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the file name currently set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn file_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPictureIO_fileName(self as *const crate::QPictureIO);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the picture format string or 0 if no format has been explicitly set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const char* QPictureIO::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the picture format string or 0 if no format has been explicitly set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::Ptr<::std::os::raw::c_char> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPictureIO_format(self as *const crate::QPictureIO);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the gamma value at which the picture will be viewed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QPictureIO::gamma() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#gamma">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the gamma value at which the picture will be viewed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setGamma">setGamma</a>().</p></div>
    #[inline(always)]
    pub unsafe fn gamma(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_gamma(self as *const crate::QPictureIO)
    }

    /// <p>Returns a sorted list of picture formats that are supported for picture input.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QPictureIO::inputFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#inputFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sorted list of picture formats that are supported for picture input.</p></div>
    #[inline(always)]
    pub unsafe fn input_formats() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureIO_inputFormats();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the IO device currently set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIODevice* QPictureIO::ioDevice() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#ioDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the IO device currently set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setIODevice">setIODevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn io_device(&self) -> ::cpp_core::MutPtr<::qt_core::QIODevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPictureIO_ioDevice(self as *const crate::QPictureIO);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> object with all parameters set to zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPictureIO::QPictureIO()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#QPictureIO">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> object with all parameters set to zero.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPictureIO> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureIO_QPictureIO();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> object with the I/O device <i>ioDevice</i> and a <i>format</i> tag.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPictureIO::QPictureIO(QIODevice* ioDevice, const char* format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#QPictureIO-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> object with the I/O device <i>ioDevice</i> and a <i>format</i> tag.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device_char(
        io_device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QPictureIO> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureIO_QPictureIO1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(io_device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> object with the file name <i>fileName</i> and a <i>format</i> tag.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPictureIO::QPictureIO(const QString& fileName, const char* format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#QPictureIO-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qpictureio.html" class="obsolete">QPictureIO</a> object with the file name <i>fileName</i> and a <i>format</i> tag.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_char(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::CppBox<crate::QPictureIO> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureIO_QPictureIO2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sorted list of picture formats that are supported for picture output.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QPictureIO::outputFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#outputFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sorted list of picture formats that are supported for picture output.</p></div>
    #[inline(always)]
    pub unsafe fn output_formats() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureIO_outputFormats();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the picture's parameters string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const char* QPictureIO::parameters() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#parameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the picture's parameters string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setParameters">setParameters</a>().</p></div>
    #[inline(always)]
    pub unsafe fn parameters(&self) -> ::cpp_core::Ptr<::std::os::raw::c_char> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPictureIO_parameters(self as *const crate::QPictureIO);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the picture currently set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPicture& QPictureIO::picture() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#picture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the picture currently set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setPicture">setPicture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn picture(&self) -> ::cpp_core::Ref<crate::QPicture> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPictureIO_picture(self as *const crate::QPictureIO);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a string that specifies the picture format of the file <i>fileName</i>, or null if the file cannot be read or if the format is not recognized.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QByteArray QPictureIO::pictureFormat(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#pictureFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a string that specifies the picture format of the file <i>fileName</i>, or null if the file cannot be read or if the format is not recognized.</p></div>
    #[inline(always)]
    pub unsafe fn picture_format_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureIO_pictureFormat(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QByteArray QPictureIO::pictureFormat(QIODevice* arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#pictureFormat-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a string that specifies the picture format of the picture read from IO device <i>d</i>, or 0 if the device cannot be read or if the format is not recognized.</p>
    /// <p>Make sure that <i>d</i> is at the right position in the device (for example, at the beginning of the file).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qiodevice.html#pos">QIODevice::pos</a>().</p></div>
    #[inline(always)]
    pub unsafe fn picture_format_q_io_device(
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureIO_pictureFormat1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(arg1)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the quality of the written picture, related to the compression ratio.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPictureIO::quality() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#quality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the quality of the written picture, related to the compression ratio.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setQuality">setQuality</a>() and <a href="http://doc.qt.io/qt-5/qpicture.html#save">QPicture::save</a>().</p></div>
    #[inline(always)]
    pub unsafe fn quality(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_quality(self as *const crate::QPictureIO)
    }

    /// <p>Reads an picture into memory and returns <code>true</code> if the picture was successfully read; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPictureIO::read()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#read">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reads an picture into memory and returns <code>true</code> if the picture was successfully read; otherwise returns <code>false</code>.</p>
    /// <p>Before reading an picture you must set an IO device or a file name. If both an IO device and a file name have been set, the IO device will be used.</p>
    /// <p>Setting the picture file format string is optional.</p>
    /// <p>Note that this function does <i>not</i> set the <a href="http://doc.qt.io/qt-5/qpictureio.html#format">format</a> used to read the picture. If you need that information, use the <a href="http://doc.qt.io/qt-5/qpictureio.html#pictureFormat">pictureFormat</a>() static functions.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpictureio.html#QPictureIO">QPictureIO</a></span> iio;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a></span>  pixmap;
    /// &#32;   &#32;     iio<span class="operator">.</span>setFileName(<span class="string">"vegeburger.pic"</span>);
    /// &#32;   &#32;     <span class="keyword">if</span> (iio<span class="operator">.</span>read()) {&#32;   &#32;   <span class="comment">// OK</span>
    /// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a></span> picture <span class="operator">=</span> iio<span class="operator">.</span>picture();
    /// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="operator">&amp;</span>pixmap);
    /// &#32;   &#32;   &#32;     painter<span class="operator">.</span>drawPicture(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> picture);
    /// &#32;   &#32;     }
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setIODevice">setIODevice</a>(), <a href="http://doc.qt.io/qt-5/qpictureio.html#setFileName">setFileName</a>(), <a href="http://doc.qt.io/qt-5/qpictureio.html#setFormat">setFormat</a>(), <a href="http://doc.qt.io/qt-5/qpictureio.html#write">write</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#load">QPixmap::load</a>().</p></div>
    #[inline(always)]
    pub unsafe fn read(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_read(self as *mut crate::QPictureIO)
    }

    /// <p>Sets the picture description string for picture handlers that support picture descriptions to <i>description</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setDescription(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setDescription">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the picture description string for picture handlers that support picture descriptions to <i>description</i>.</p>
    /// <p>Currently, no picture format supported by Qt uses the description string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#description">description</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_description(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setDescription(
            self as *mut crate::QPictureIO,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the name of the file to read or write an picture from to <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setFileName(const QString& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setFileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the name of the file to read or write an picture from to <i>fileName</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#fileName">fileName</a>() and <a href="http://doc.qt.io/qt-5/qpictureio.html#setIODevice">setIODevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_file_name(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setFileName(
            self as *mut crate::QPictureIO,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the picture format to <i>format</i> for the picture to be read or written.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setFormat(const char* arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the picture format to <i>format</i> for the picture to be read or written.</p>
    /// <p>It is necessary to specify a format before writing an picture, but it is not necessary to specify a format before reading an picture.</p>
    /// <p>If no format has been set, Qt guesses the picture format before reading it. If a format is set the picture will only be read if it has that format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#read">read</a>(), <a href="http://doc.qt.io/qt-5/qpictureio.html#write">write</a>(), and <a href="http://doc.qt.io/qt-5/qpictureio.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setFormat(
            self as *mut crate::QPictureIO,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the gamma value at which the picture will be viewed to <i>gamma</i>. If the picture format stores a gamma value for which the picture is intended to be used, then this setting will be used to modify the picture. Setting to 0.0 will disable gamma correction (i.e. any specification in the file will be ignored).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setGamma(float arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setGamma">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the gamma value at which the picture will be viewed to <i>gamma</i>. If the picture format stores a gamma value for which the picture is intended to be used, then this setting will be used to modify the picture. Setting to 0.0 will disable gamma correction (i.e. any specification in the file will be ignored).</p>
    /// <p>The default value is 0.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#gamma">gamma</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_gamma(&mut self, arg1: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setGamma(self as *mut crate::QPictureIO, arg1)
    }

    /// <p>Sets the IO device to be used for reading or writing an picture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setIODevice(QIODevice* arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setIODevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the IO device to be used for reading or writing an picture.</p>
    /// <p>Setting the IO device allows pictures to be read/written to any block-oriented <a href="http://doc.qt.io/qt-5/qiodevice.html">QIODevice</a>.</p>
    /// <p>If <i>ioDevice</i> is not null, this IO device will override file name settings.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_io_device(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setIODevice(
            self as *mut crate::QPictureIO,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(arg1)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the picture's parameter string to <i>parameters</i>. This is for picture handlers that require special parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setParameters(const char* arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setParameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the picture's parameter string to <i>parameters</i>. This is for picture handlers that require special parameters.</p>
    /// <p>Although the current picture formats supported by Qt ignore the parameters string, it may be used in future extensions or by contributions (for example, JPEG).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#parameters">parameters</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_parameters(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setParameters(
            self as *mut crate::QPictureIO,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the picture to <i>picture</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setPicture(const QPicture& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setPicture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the picture to <i>picture</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#picture">picture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_picture(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPicture>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setPicture(
            self as *mut crate::QPictureIO,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPicture>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Sets the quality of the written picture to <i>q</i>, related to the compression ratio.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setQuality(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setQuality">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the quality of the written picture to <i>q</i>, related to the compression ratio.</p>
    /// <p><i>q</i> must be in the range -1..100. Specify 0 to obtain small compressed files, 100 for large uncompressed files. (-1 signifies the default compression.)</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#quality">quality</a>() and <a href="http://doc.qt.io/qt-5/qpicture.html#save">QPicture::save</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_quality(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setQuality(self as *mut crate::QPictureIO, arg1)
    }

    /// <p>Sets the picture IO status to <i>status</i>. A non-zero value indicates an error, whereas 0 means that the IO operation was successful.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPictureIO::setStatus(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#setStatus">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the picture IO status to <i>status</i>. A non-zero value indicates an error, whereas 0 means that the IO operation was successful.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#status">status</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_status(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_setStatus(self as *mut crate::QPictureIO, arg1)
    }

    /// <p>Returns the picture's IO status. A non-zero value indicates an error, whereas 0 means that the IO operation was successful.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QPictureIO::status() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#status">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the picture's IO status. A non-zero value indicates an error, whereas 0 means that the IO operation was successful.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setStatus">setStatus</a>().</p></div>
    #[inline(always)]
    pub unsafe fn status(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_status(self as *const crate::QPictureIO)
    }

    /// <p>Writes an picture to an IO device and returns <code>true</code> if the picture was successfully written; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPictureIO::write()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#write">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes an picture to an IO device and returns <code>true</code> if the picture was successfully written; otherwise returns <code>false</code>.</p>
    /// <p>Before writing an picture you must set an IO device or a file name. If both an IO device and a file name have been set, the IO device will be used.</p>
    /// <p>The picture will be written using the specified picture format.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpictureio.html#QPictureIO">QPictureIO</a></span> iio;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpicture.html">QPicture</a></span>   picture;
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="operator">&amp;</span>picture);
    /// &#32;   &#32;     painter<span class="operator">.</span>drawPixmap(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> pixmap);
    /// &#32;   &#32;     iio<span class="operator">.</span>setPicture(picture);
    /// &#32;   &#32;     iio<span class="operator">.</span>setFileName(<span class="string">"vegeburger.pic"</span>);
    /// &#32;   &#32;     iio<span class="operator">.</span>setFormat(<span class="string">"PIC"</span>);
    /// &#32;   &#32;     <span class="keyword">if</span> (iio<span class="operator">.</span>write())
    /// &#32;   &#32;   &#32;     <span class="keyword">return</span> <span class="keyword">true</span>; <span class="comment">// returned true if written successfully</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureio.html#setIODevice">setIODevice</a>(), <a href="http://doc.qt.io/qt-5/qpictureio.html#setFileName">setFileName</a>(), <a href="http://doc.qt.io/qt-5/qpictureio.html#setFormat">setFormat</a>(), <a href="http://doc.qt.io/qt-5/qpictureio.html#read">read</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#save">QPixmap::save</a>().</p></div>
    #[inline(always)]
    pub unsafe fn write(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_write(self as *mut crate::QPictureIO)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html">QPictureFormatPlugin</a> class provides an abstract base for custom picture format plugins.</p>
///
/// C++ class: <span style='color: green;'>```QPictureFormatPlugin```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html">QPictureFormatPlugin</a> class provides an abstract base for custom picture format plugins.</p>
/// <p>The picture format plugin is a simple plugin interface that makes it easy to create custom picture formats that can be used transparently by applications.</p>
/// <p>Writing an picture format plugin is achieved by subclassing this base class, reimplementing the pure virtual functions <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#loadPicture">loadPicture</a>(), <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#savePicture">savePicture</a>(), and <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#installIOHandler">installIOHandler</a>(), and exporting the class with the <a href="http://doc.qt.io/qt-5/qtplugin.html#Q_PLUGIN_METADATA">Q_PLUGIN_METADATA</a>() macro.</p>
/// <p>The json file containing the metadata should contain one entry with the list of picture formats supported by the plugin:</p>
/// <pre class="cpp">
///
///   { <span class="string">"Keys"</span>: <span class="operator">[</span> <span class="string">"mypictureformat"</span> <span class="operator">]</span> }
///
/// </pre></div>
#[repr(C)]
pub struct QPictureFormatPlugin {
    _unused: u8,
}
impl QPictureFormatPlugin {
    /// <p>Installs a QPictureIO picture I/O handler for the picture format <i>format</i>. Returns <code>true</code> on success.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QPictureFormatPlugin::installIOHandler(const QString& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#installIOHandler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Installs a QPictureIO picture I/O handler for the picture format <i>format</i>. Returns <code>true</code> on success.</p></div>
    #[inline(always)]
    pub unsafe fn install_io_handler(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_installIOHandler(
            self as *mut crate::QPictureFormatPlugin,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Loads the picture stored in the file called <i>fileName</i>, with the given <i>format</i>, into *<i>picture</i>. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QPictureFormatPlugin::loadPicture(const QString& format, const QString& filename, QPicture* pic)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#loadPicture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Loads the picture stored in the file called <i>fileName</i>, with the given <i>format</i>, into *<i>picture</i>. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#savePicture">savePicture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn load_picture(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        filename: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pic: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPicture>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_loadPicture(
            self as *mut crate::QPictureFormatPlugin,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(format)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(filename)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPicture>>::cast_into(pic)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QPictureFormatPlugin::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_metaObject(
            self as *const crate::QPictureFormatPlugin,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QPictureFormatPlugin::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_qt_metacall(
            self as *mut crate::QPictureFormatPlugin,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QPictureFormatPlugin::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_qt_metacast(
            self as *mut crate::QPictureFormatPlugin,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Saves the given <i>picture</i> into the file called <i>fileName</i>, using the specified <i>format</i>. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QPictureFormatPlugin::savePicture(const QString& format, const QString& filename, const QPicture& pic)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#savePicture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the given <i>picture</i> into the file called <i>fileName</i>, using the specified <i>format</i>. Returns <code>true</code> on success; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#loadPicture">loadPicture</a>().</p></div>
    #[inline(always)]
    pub unsafe fn save_picture(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        filename: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pic: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPicture>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_savePicture(
            self as *mut crate::QPictureFormatPlugin,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(format)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(filename)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPicture>>::cast_into(pic).as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QPictureFormatPlugin::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QPictureFormatPlugin::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_pixmap_cache {
    //! C++ type: <span style='color: green;'>```QPixmapCache```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> class can be used for efficient access to the <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QPixmapCache::Key```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> class can be used for efficient access to the <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a>.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert">QPixmapCache::insert</a>() to receive an instance of Key generated by the pixmap cache. You can store the key in your own objects for a very efficient one-to-one object-to-pixmap mapping.</p></div>
    #[repr(C)]
    pub struct Key {
        _unused: u8,
    }
    impl Key {
        /// Calls C++ function: <span style='color: green;'>```QPixmapCache::Key& QPixmapCache::Key::operator=(const QPixmapCache::Key& other)```</span>.
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_pixmap_cache::Key>>,
        ) -> ::cpp_core::MutRef<crate::q_pixmap_cache::Key> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_Key_operator_1(
                self as *mut crate::q_pixmap_cache::Key,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_pixmap_cache::Key>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns <code>true</code> if there is a cached pixmap associated with this key. Otherwise, if pixmap was flushed, the key is no longer valid.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QPixmapCache::Key::isValid() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if there is a cached pixmap associated with this key. Otherwise, if pixmap was flushed, the key is no longer valid.</p>
        /// <p>This function was introduced in  Qt 5.7.</p></div>
        #[inline(always)]
        pub unsafe fn is_valid(&self) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_Key_isValid(
                self as *const crate::q_pixmap_cache::Key,
            )
        }

        /// <p>Constructs an empty Key object.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmapCache::Key::Key()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html#Key">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty Key object.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_pixmap_cache::Key> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_Key_Key();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an empty Key object.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmapCache::Key::Key(const QPixmapCache::Key& other)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html#Key">C++ documentation</a> for <span style='color: green;'>```Key::Key()```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty Key object.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_pixmap_cache::Key>>,
        ) -> ::cpp_core::CppBox<crate::q_pixmap_cache::Key> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_Key_Key1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_pixmap_cache::Key>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```void QPixmapCache::Key::swap(QPixmapCache::Key& other)```</span>.
        #[inline(always)]
        pub unsafe fn swap(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::q_pixmap_cache::Key>>,
        ) {
            crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_Key_swap(
                self as *mut crate::q_pixmap_cache::Key,
                ::cpp_core::CastInto::<::cpp_core::MutRef<crate::q_pixmap_cache::Key>>::cast_into(
                    other,
                )
                .as_mut_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_pixmap_cache::Key {
        /// <p>Destroys the key.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QPixmapCache::Key::~Key()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html#dtor.Key">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the key.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_Key_dKey(
                self as *mut crate::q_pixmap_cache::Key,
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_pixmap_cache::Key>>
        for crate::q_pixmap_cache::Key
    {
        /// Calls C++ function: <span style='color: green;'>```bool QPixmapCache::Key::operator==(const QPixmapCache::Key& key) const```</span>.
        #[inline(always)]
        fn eq(&self, key: &::cpp_core::Ref<crate::q_pixmap_cache::Key>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_Key_operator__(
                    self as *const crate::q_pixmap_cache::Key,
                    key.as_raw_ptr(),
                )
            }
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
///
/// C++ class: <span style='color: green;'>```QPixmapCache```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixmapcache.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
/// <p>This class is a tool for optimized drawing with <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>. You can use it to store temporary pixmaps that are expensive to generate without using more storage space than <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). Use <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert">insert</a>() to insert pixmaps, <a href="http://doc.qt.io/qt-5/qpixmapcache.html#find">find</a>() to find them, and <a href="http://doc.qt.io/qt-5/qpixmapcache.html#clear">clear</a>() to empty the cache.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> contains no member data, only static functions to access the global pixmap cache. It creates an internal <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> object for caching the pixmaps.</p>
/// <p>The cache associates a pixmap with a user-provided string as a key, or with a <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> that the cache generates. Using <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> for keys is faster than using strings. The string API is very convenient for complex keys but the <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> API will be very efficient and convenient for a one-to-one object-to-pixmap mapping - in this case, you can store the keys as members of an object.</p>
/// <p>If two pixmaps are inserted into the cache using equal keys then the last pixmap will replace the first pixmap in the cache. This follows the behavior of the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> and <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> classes.</p>
/// <p>The cache becomes full when the total size of all pixmaps in the cache exceeds <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). The initial cache limit is 10240 KB (10 MB); you can change this by calling <a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>() with the required value. A pixmap takes roughly (<i>width</i> * <i>height</i> * <i>depth</i>)/8 bytes of memory.</p>
/// <p>The <i>Qt Quarterly</i> article <a href="http://doc.qt.io/archives/qq/qq12-qpixmapcache.html">Optimizing with QPixmapCache</a> explains how to use <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> to speed up applications by caching the results of painting.</p></div>
#[repr(C)]
pub struct QPixmapCache {
    _unused: u8,
}
impl QPixmapCache {
    /// <p>Returns the cache limit (in kilobytes).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static int QPixmapCache::cacheLimit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cache limit (in kilobytes).</p>
    /// <p>The default cache limit is 10240 KB.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cache_limit() -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_cacheLimit()
    }

    /// <p>Removes all pixmaps from the cache.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QPixmapCache::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all pixmaps from the cache.</p></div>
    #[inline(always)]
    pub unsafe fn clear() {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_clear()
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmapCache& QPixmapCache::operator=(const QPixmapCache& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
    /// <p>This class is a tool for optimized drawing with <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>. You can use it to store temporary pixmaps that are expensive to generate without using more storage space than <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). Use <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert">insert</a>() to insert pixmaps, <a href="http://doc.qt.io/qt-5/qpixmapcache.html#find">find</a>() to find them, and <a href="http://doc.qt.io/qt-5/qpixmapcache.html#clear">clear</a>() to empty the cache.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> contains no member data, only static functions to access the global pixmap cache. It creates an internal <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> object for caching the pixmaps.</p>
    /// <p>The cache associates a pixmap with a user-provided string as a key, or with a <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> that the cache generates. Using <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> for keys is faster than using strings. The string API is very convenient for complex keys but the <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> API will be very efficient and convenient for a one-to-one object-to-pixmap mapping - in this case, you can store the keys as members of an object.</p>
    /// <p>If two pixmaps are inserted into the cache using equal keys then the last pixmap will replace the first pixmap in the cache. This follows the behavior of the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> and <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> classes.</p>
    /// <p>The cache becomes full when the total size of all pixmaps in the cache exceeds <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). The initial cache limit is 10240 KB (10 MB); you can change this by calling <a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>() with the required value. A pixmap takes roughly (<i>width</i> * <i>height</i> * <i>depth</i>)/8 bytes of memory.</p>
    /// <p>The <i>Qt Quarterly</i> article <a href="http://doc.qt.io/archives/qq/qq12-qpixmapcache.html">Optimizing with QPixmapCache</a> explains how to use <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> to speed up applications by caching the results of painting.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmapCache>>,
    ) -> ::cpp_core::MutRef<crate::QPixmapCache> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_operator_(
            self as *mut crate::QPixmapCache,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmapCache>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Use bool find(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&amp;, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>*) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmap* QPixmapCache::find(const QString& key)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpixmapcache-obsolete.html#find-1">C++ documentation</a> for <span style='color: green;'>```static bool QPixmapCache::find(const QString &key, QPixmap &pixmap)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use bool find(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&amp;, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>*) instead.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_string(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::MutPtr<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_find(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Use bool find(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&amp;, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>*) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QPixmapCache::find(const QString& key, QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache-obsolete.html#find-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use bool find(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&amp;, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>*) instead.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_string_q_pixmap(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPixmap>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_find1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPixmap>>::cast_into(pixmap)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Use bool find(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&amp;, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>*) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QPixmapCache::find(const QString& key, QPixmap* pixmap)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpixmapcache-obsolete.html#find-1">C++ documentation</a> for <span style='color: green;'>```static bool QPixmapCache::find(const QString &key, QPixmap &pixmap)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use bool find(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&amp;, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>*) instead.</p></div>
    #[inline(always)]
    pub unsafe fn find_q_string_q_pixmap2(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPixmap>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_find2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPixmap>>::cast_into(pixmap)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Use bool find(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&amp;, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>*) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QPixmapCache::find(const QPixmapCache::Key& key, QPixmap* pixmap)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpixmapcache-obsolete.html#find-1">C++ documentation</a> for <span style='color: green;'>```static bool QPixmapCache::find(const QString &key, QPixmap &pixmap)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use bool find(const <a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&amp;, <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>*) instead.</p></div>
    #[inline(always)]
    pub unsafe fn find_key_q_pixmap(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_pixmap_cache::Key>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QPixmap>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_find3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_pixmap_cache::Key>>::cast_into(key)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QPixmap>>::cast_into(pixmap)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Inserts a copy of the pixmap <i>pixmap</i> associated with the <i>key</i> into the cache.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QPixmapCache::insert(const QString& key, const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a copy of the pixmap <i>pixmap</i> associated with the <i>key</i> into the cache.</p>
    /// <p>All pixmaps inserted by the Qt library have a key starting with "$qt", so your own pixmap keys should never begin "$qt".</p>
    /// <p>When a pixmap is inserted and the cache is about to exceed its limit, it removes pixmaps until there is enough room for the pixmap to be inserted.</p>
    /// <p>The oldest pixmaps (least recently accessed in the cache) are deleted when more space is needed.</p>
    /// <p>The function returns <code>true</code> if the object was inserted into the cache; otherwise it returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_insert(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        )
    }

    /// <p>Inserts a copy of the given <i>pixmap</i> into the cache and returns a key that can be used to retrieve it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QPixmapCache::Key QPixmapCache::insert(const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a copy of the given <i>pixmap</i> into the cache and returns a key that can be used to retrieve it.</p>
    /// <p>When a pixmap is inserted and the cache is about to exceed its limit, it removes pixmaps until there is enough room for the pixmap to be inserted.</p>
    /// <p>The oldest pixmaps (least recently accessed in the cache) are deleted when more space is needed.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>() and <a href="http://doc.qt.io/qt-5/qpixmapcache.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_1a(
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> ::cpp_core::CppBox<crate::q_pixmap_cache::Key> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_insert1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmapCache::QPixmapCache()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
    /// <p>This class is a tool for optimized drawing with <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>. You can use it to store temporary pixmaps that are expensive to generate without using more storage space than <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). Use <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert">insert</a>() to insert pixmaps, <a href="http://doc.qt.io/qt-5/qpixmapcache.html#find">find</a>() to find them, and <a href="http://doc.qt.io/qt-5/qpixmapcache.html#clear">clear</a>() to empty the cache.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> contains no member data, only static functions to access the global pixmap cache. It creates an internal <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> object for caching the pixmaps.</p>
    /// <p>The cache associates a pixmap with a user-provided string as a key, or with a <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> that the cache generates. Using <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> for keys is faster than using strings. The string API is very convenient for complex keys but the <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> API will be very efficient and convenient for a one-to-one object-to-pixmap mapping - in this case, you can store the keys as members of an object.</p>
    /// <p>If two pixmaps are inserted into the cache using equal keys then the last pixmap will replace the first pixmap in the cache. This follows the behavior of the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> and <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> classes.</p>
    /// <p>The cache becomes full when the total size of all pixmaps in the cache exceeds <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). The initial cache limit is 10240 KB (10 MB); you can change this by calling <a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>() with the required value. A pixmap takes roughly (<i>width</i> * <i>height</i> * <i>depth</i>)/8 bytes of memory.</p>
    /// <p>The <i>Qt Quarterly</i> article <a href="http://doc.qt.io/archives/qq/qq12-qpixmapcache.html">Optimizing with QPixmapCache</a> explains how to use <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> to speed up applications by caching the results of painting.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPixmapCache> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_QPixmapCache();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPixmapCache::QPixmapCache(const QPixmapCache& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
    /// <p>This class is a tool for optimized drawing with <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>. You can use it to store temporary pixmaps that are expensive to generate without using more storage space than <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). Use <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert">insert</a>() to insert pixmaps, <a href="http://doc.qt.io/qt-5/qpixmapcache.html#find">find</a>() to find them, and <a href="http://doc.qt.io/qt-5/qpixmapcache.html#clear">clear</a>() to empty the cache.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> contains no member data, only static functions to access the global pixmap cache. It creates an internal <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> object for caching the pixmaps.</p>
    /// <p>The cache associates a pixmap with a user-provided string as a key, or with a <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> that the cache generates. Using <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> for keys is faster than using strings. The string API is very convenient for complex keys but the <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> API will be very efficient and convenient for a one-to-one object-to-pixmap mapping - in this case, you can store the keys as members of an object.</p>
    /// <p>If two pixmaps are inserted into the cache using equal keys then the last pixmap will replace the first pixmap in the cache. This follows the behavior of the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> and <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> classes.</p>
    /// <p>The cache becomes full when the total size of all pixmaps in the cache exceeds <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). The initial cache limit is 10240 KB (10 MB); you can change this by calling <a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>() with the required value. A pixmap takes roughly (<i>width</i> * <i>height</i> * <i>depth</i>)/8 bytes of memory.</p>
    /// <p>The <i>Qt Quarterly</i> article <a href="http://doc.qt.io/archives/qq/qq12-qpixmapcache.html">Optimizing with QPixmapCache</a> explains how to use <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> to speed up applications by caching the results of painting.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmapCache>>,
    ) -> ::cpp_core::CppBox<crate::QPixmapCache> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_QPixmapCache1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmapCache>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the pixmap associated with <i>key</i> from the cache.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QPixmapCache::remove(const QString& key)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the pixmap associated with <i>key</i> from the cache.</p></div>
    #[inline(always)]
    pub unsafe fn remove_q_string(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_remove(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(key)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the pixmap associated with <i>key</i> from the cache and releases the key for a future insertion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QPixmapCache::remove(const QPixmapCache::Key& key)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the pixmap associated with <i>key</i> from the cache and releases the key for a future insertion.</p>
    /// <p>This function was introduced in  Qt 4.6.</p></div>
    #[inline(always)]
    pub unsafe fn remove_key(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_pixmap_cache::Key>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_remove1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_pixmap_cache::Key>>::cast_into(key)
                .as_raw_ptr(),
        )
    }

    /// <p>Replaces the pixmap associated with the given <i>key</i> with the <i>pixmap</i> specified. Returns <code>true</code> if the <i>pixmap</i> has been correctly inserted into the cache; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static bool QPixmapCache::replace(const QPixmapCache::Key& key, const QPixmap& pixmap)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the pixmap associated with the given <i>key</i> with the <i>pixmap</i> specified. Returns <code>true</code> if the <i>pixmap</i> has been correctly inserted into the cache; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>() and <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_pixmap_cache::Key>>,
        pixmap: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPixmap>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_replace(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_pixmap_cache::Key>>::cast_into(key)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPixmap>>::cast_into(pixmap).as_raw_ptr(),
        )
    }

    /// <p>Sets the cache limit to <i>n</i> kilobytes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static void QPixmapCache::setCacheLimit(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the cache limit to <i>n</i> kilobytes.</p>
    /// <p>The default setting is 10240 KB.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_cache_limit(arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_setCacheLimit(arg1)
    }
}

/// <p><a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> is a convenience class for using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></p>
///
/// C++ class: <span style='color: green;'>```QRasterWindow```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qrasterwindow.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> is a convenience class for using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></p>
/// <p><a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> is a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> with a raster-based, non-OpenGL surface. On top of the functionality offered by <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>, <a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> adds a virtual <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#paintEvent">paintEvent</a>() function and the possibility to open a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on itself. The underlying paint engine will be the raster one, meaning that all drawing will happen on the CPU. For performing accelerated, OpenGL-based drawing, use <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> instead.</p>
/// <p>Internally the class is thin wrapper for <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> and <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> and is very similar to the <a href="http://doc.qt.io/qt-5/qtgui-rasterwindow-example.html">Raster Window Example</a> that uses these classes directly.</p></div>
#[repr(C)]
pub struct QRasterWindow {
    _unused: u8,
}
impl QRasterWindow {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QRasterWindow::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_metaObject(
            self as *const crate::QRasterWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRasterWindow::QRasterWindow(QWindow* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrasterwindow.html#QRasterWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) -> ::cpp_core::CppBox<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_QRasterWindow(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> is a convenience class for using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRasterWindow::QRasterWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrasterwindow.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> is a convenience class for using <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a></p>
    /// <p><a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> is a <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> with a raster-based, non-OpenGL surface. On top of the functionality offered by <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>, <a href="http://doc.qt.io/qt-5/qrasterwindow.html">QRasterWindow</a> adds a virtual <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#paintEvent">paintEvent</a>() function and the possibility to open a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on itself. The underlying paint engine will be the raster one, meaning that all drawing will happen on the CPU. For performing accelerated, OpenGL-based drawing, use <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> instead.</p>
    /// <p>Internally the class is thin wrapper for <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> and <a href="http://doc.qt.io/qt-5/qbackingstore.html">QBackingStore</a> and is very similar to the <a href="http://doc.qt.io/qt-5/qtgui-rasterwindow-example.html">Raster Window Example</a> that uses these classes directly.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_QRasterWindow1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QRasterWindow::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_qt_metacall(
            self as *mut crate::QRasterWindow,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QRasterWindow::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_qt_metacast(
            self as *mut crate::QRasterWindow,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QRasterWindow::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QRasterWindow::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a> class is used to query screen properties.</p>
///
/// C++ class: <span style='color: green;'>```QScreen```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qscreen.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qscreen.html">QScreen</a> class is used to query screen properties.</p>
/// <p>A note on logical vs physical dots per inch: physical DPI is based on the actual physical pixel sizes when available, and is useful for print preview and other cases where it's desirable to know the exact physical dimensions of screen displayed contents.</p>
/// <p>Logical dots per inch are used to convert font and user interface elements from point sizes to pixel sizes, and might be different from the physical dots per inch. The logical dots per inch are sometimes user-settable in the desktop environment's settings panel, to let the user globally control UI and font sizes in different applications.</p></div>
#[repr(C)]
pub struct QScreen {
    _unused: u8,
}
impl QScreen {
    /// Returns a built-in Qt signal `QScreen::geometryChanged` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn geometry_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QRect,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2geometryChanged(const QRect&)\0",
                ),
            )
        }
    }

    /// Returns a built-in Qt signal `QScreen::availableGeometryChanged` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn available_geometry_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QRect,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2availableGeometryChanged(const QRect&)\0",
                ),
            )
        }
    }

    /// <p>This property holds the screen's physical size (in millimeters)</p>
    ///
    /// Returns a built-in Qt signal `QScreen::physicalSizeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#physicalSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen's physical size (in millimeters)</p>
    /// <p>The physical size represents the actual physical dimensions of the screen's display.</p>
    /// <p>Depending on what information the underlying system provides the value might not be entirely accurate.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSizeF </td><td class="memItemRight bottomAlign"><span class="name"><b>physicalSize</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>physicalSizeChanged</b></span>(const QSizeF &amp;<i>size</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn physical_size_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QSizeF,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2physicalSizeChanged(const QSizeF&)\0",
                ),
            )
        }
    }

    /// Returns a built-in Qt signal `QScreen::physicalDotsPerInchChanged` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn physical_dots_per_inch_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2physicalDotsPerInchChanged(double)\0",
                ),
            )
        }
    }

    /// Returns a built-in Qt signal `QScreen::logicalDotsPerInchChanged` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn logical_dots_per_inch_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2logicalDotsPerInchChanged(double)\0",
                ),
            )
        }
    }

    /// Returns a built-in Qt signal `QScreen::virtualGeometryChanged` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn virtual_geometry_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QRect,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2virtualGeometryChanged(const QRect&)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the primary orientation of the screen changes with <i>orientation</i> as an argument.</p>
    ///
    /// Returns a built-in Qt signal `QScreen::primaryOrientationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientationChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the primary orientation of the screen changes with <i>orientation</i> as an argument.</p>
    /// <p><b>Note:</b> Notifier signal for property <a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">primaryOrientation</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">primaryOrientation</a>().</p></div>
    #[inline(always)]
    pub fn primary_orientation_changed(
        &self,
    ) -> ::qt_core::Signal<(::qt_core::ScreenOrientation,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2primaryOrientationChanged(Qt::ScreenOrientation)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the orientation of the screen changes with <i>orientation</i> as an argument.</p>
    ///
    /// Returns a built-in Qt signal `QScreen::orientationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#orientationChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the orientation of the screen changes with <i>orientation</i> as an argument.</p>
    /// <p><b>Note:</b> Notifier signal for property <a href="http://doc.qt.io/qt-5/qscreen.html#orientation-prop">orientation</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#orientation-prop">orientation</a>().</p></div>
    #[inline(always)]
    pub fn orientation_changed(&self) -> ::qt_core::Signal<(::qt_core::ScreenOrientation,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2orientationChanged(Qt::ScreenOrientation)\0",
                ),
            )
        }
    }

    /// <p>This property holds the approximate vertical refresh rate of the screen in Hz</p>
    ///
    /// Returns a built-in Qt signal `QScreen::refreshRateChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#refreshRate-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the approximate vertical refresh rate of the screen in Hz</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>refreshRate</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>refreshRateChanged</b></span>(qreal <i>refreshRate</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn refresh_rate_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2refreshRateChanged(double)\0"),
            )
        }
    }

    /// <p>Convenience function to compute the angle of rotation to get from rotation <i>a</i> to rotation <i>b</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QScreen::angleBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#angleBetween">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function to compute the angle of rotation to get from rotation <i>a</i> to rotation <i>b</i>.</p>
    /// <p>The result will be 0, 90, 180, or 270.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a> is interpreted as the screen's <a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">primaryOrientation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn angle_between(
        &self,
        a: ::qt_core::ScreenOrientation,
        b: ::qt_core::ScreenOrientation,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_angleBetween(self as *const crate::QScreen, a, b)
    }

    /// <p>This property holds the screen's available geometry in pixels</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QScreen::availableGeometry() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#availableGeometry-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen's available geometry in pixels</p>
    /// <p>The available geometry is the geometry excluding window manager reserved areas such as task bars and system menus.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRect </td><td class="memItemRight bottomAlign"><span class="name"><b>availableGeometry</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#availableGeometryChanged">availableGeometryChanged</a></b></span>(const QRect &amp;<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn available_geometry(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_availableGeometry(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the screen's available size in pixels</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QScreen::availableSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#availableSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen's available size in pixels</p>
    /// <p>The available size is the size excluding window manager reserved areas such as task bars and system menus.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>availableSize</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#availableGeometryChanged">availableGeometryChanged</a></b></span>(const QRect &amp;<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn available_size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_availableSize(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the available geometry of the virtual desktop to which this screen belongs</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QScreen::availableVirtualGeometry() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#availableVirtualGeometry-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the available geometry of the virtual desktop to which this screen belongs</p>
    /// <p>Returns the available geometry of the virtual desktop corresponding to this screen.</p>
    /// <p>This is the union of the virtual siblings' individual available geometries.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRect </td><td class="memItemRight bottomAlign"><span class="name"><b>availableVirtualGeometry</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#virtualGeometryChanged">virtualGeometryChanged</a></b></span>(const QRect &amp;<i>rect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#availableGeometry-prop">availableGeometry</a>() and <a href="http://doc.qt.io/qt-5/qscreen.html#virtualSiblings">virtualSiblings</a>().</p></div>
    #[inline(always)]
    pub unsafe fn available_virtual_geometry(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_availableVirtualGeometry(
            self as *const crate::QScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the available size of the virtual desktop to which this screen belongs</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QScreen::availableVirtualSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#availableVirtualSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the available size of the virtual desktop to which this screen belongs</p>
    /// <p>Returns the available pixel size of the virtual desktop corresponding to this screen.</p>
    /// <p>This is the combined size of the virtual siblings' individual available geometries.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>availableVirtualSize</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#virtualGeometryChanged">virtualGeometryChanged</a></b></span>(const QRect &amp;<i>rect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#availableSize-prop">availableSize</a>() and <a href="http://doc.qt.io/qt-5/qscreen.html#virtualSiblings">virtualSiblings</a>().</p></div>
    #[inline(always)]
    pub unsafe fn available_virtual_size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_availableVirtualSize(
            self as *const crate::QScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the color depth of the screen</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QScreen::depth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#depth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the color depth of the screen</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>depth</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn depth(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_depth(self as *const crate::QScreen)
    }

    /// <p>This property holds the screen's ratio between physical pixels and device-independent pixels</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QScreen::devicePixelRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#devicePixelRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen's ratio between physical pixels and device-independent pixels</p>
    /// <p>Returns the ratio between physical pixels and device-independent pixels for the screen.</p>
    /// <p>Common values are 1.0 on normal displays and 2.0 on "retina" displays. Higher values are also possible.</p>
    /// <p>This property was introduced in  Qt 5.5.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>devicePixelRatio</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchChanged">physicalDotsPerInchChanged</a></b></span>(qreal <i>dpi</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#devicePixelRatio">QWindow::devicePixelRatio</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#devicePixelRatio">QGuiApplication::devicePixelRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device_pixel_ratio(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_devicePixelRatio(self as *const crate::QScreen)
    }

    /// <p>This property holds the screen's geometry in pixels</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QScreen::geometry() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#geometry-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen's geometry in pixels</p>
    /// <p>As an example this might return <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(0, 0, 1280, 1024), or in a virtual desktop setting <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(1280, 0, 1280, 1024).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRect </td><td class="memItemRight bottomAlign"><span class="name"><b>geometry</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#geometryChanged">geometryChanged</a></b></span>(const QRect &amp;<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn geometry(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_geometry(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QScreen::grabWindow(unsigned long long window, int x = …, int y = …, int w = …, int h = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p><b>Warning:</b> Grabbing windows that are not part of the application is not supported on systems such as iOS, where sandboxing/security prevents reading pixels of windows not owned by the application.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_5a(
        &mut self,
        window: ::std::os::raw::c_ulonglong,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        h: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_grabWindow(
            self as *mut crate::QScreen,
            window,
            x,
            y,
            w,
            h,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QScreen::grabWindow(unsigned long long window, int x = …, int y = …, int w = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p><b>Warning:</b> Grabbing windows that are not part of the application is not supported on systems such as iOS, where sandboxing/security prevents reading pixels of windows not owned by the application.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_4a(
        &mut self,
        window: ::std::os::raw::c_ulonglong,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_grabWindow1(
            self as *mut crate::QScreen,
            window,
            x,
            y,
            w,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QScreen::grabWindow(unsigned long long window, int x = …, int y = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p><b>Warning:</b> Grabbing windows that are not part of the application is not supported on systems such as iOS, where sandboxing/security prevents reading pixels of windows not owned by the application.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_3a(
        &mut self,
        window: ::std::os::raw::c_ulonglong,
        x: ::std::os::raw::c_int,
        y: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_grabWindow2(
            self as *mut crate::QScreen,
            window,
            x,
            y,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QScreen::grabWindow(unsigned long long window, int x = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p><b>Warning:</b> Grabbing windows that are not part of the application is not supported on systems such as iOS, where sandboxing/security prevents reading pixels of windows not owned by the application.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_2a(
        &mut self,
        window: ::std::os::raw::c_ulonglong,
        x: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_grabWindow3(
            self as *mut crate::QScreen,
            window,
            x,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPixmap QScreen::grabWindow(unsigned long long window)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#grabWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and returns a pixmap constructed by grabbing the contents of the given <i>window</i> restricted by <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(<i>x</i>, <i>y</i>, <i>width</i>, <i>height</i>).</p>
    /// <p>The arguments (<i>x</i>, <i>y</i>) specify the offset in the window, whereas (<i>width</i>, <i>height</i>) specify the area to be copied. If <i>width</i> is negative, the function copies everything to the right border of the window. If <i>height</i> is negative, the function copies everything to the bottom of the window.</p>
    /// <p>The window system identifier (<code>WId</code>) can be retrieved using the <a href="http://doc.qt.io/qt-5/qwidget.html#winId">QWidget::winId</a>() function. The rationale for using a window identifier and not a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a>, is to enable grabbing of windows that are not part of the application, window system frames, and so on.</p>
    /// <p><b>Warning:</b> Grabbing windows that are not part of the application is not supported on systems such as iOS, where sandboxing/security prevents reading pixels of windows not owned by the application.</p>
    /// <p>The grabWindow() function grabs pixels from the screen, not from the window, i.e. if there is another window partially or entirely over the one you grab, you get pixels from the overlying window, too. The mouse cursor is generally not grabbed.</p>
    /// <p>Note on X11 that if the given <i>window</i> doesn't have the same depth as the root window, and another window partially or entirely obscures the one you grab, you will <i>not</i> get pixels from the overlying window. The contents of the obscured areas in the pixmap will be undefined and uninitialized.</p>
    /// <p>On Windows Vista and above grabbing a layered window, which is created by setting the <a href="http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum">Qt::WA_TranslucentBackground</a> attribute, will not work. Instead grabbing the desktop widget should work.</p>
    /// <p><b>Warning:</b> In general, grabbing an area outside the screen is not safe. This depends on the underlying window system.</p></div>
    #[inline(always)]
    pub unsafe fn grab_window_1a(
        &mut self,
        window: ::std::os::raw::c_ulonglong,
    ) -> ::cpp_core::CppBox<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_grabWindow4(self as *mut crate::QScreen, window);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Convenience function that returns <code>true</code> if <i>o</i> is either landscape or inverted landscape; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QScreen::isLandscape(Qt::ScreenOrientation orientation) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#isLandscape">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that returns <code>true</code> if <i>o</i> is either landscape or inverted landscape; otherwise returns <code>false</code>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a> is interpreted as the screen's <a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">primaryOrientation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_landscape(&self, orientation: ::qt_core::ScreenOrientation) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_isLandscape(self as *const crate::QScreen, orientation)
    }

    /// <p>Convenience function that returns <code>true</code> if <i>o</i> is either portrait or inverted portrait; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QScreen::isPortrait(Qt::ScreenOrientation orientation) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#isPortrait">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function that returns <code>true</code> if <i>o</i> is either portrait or inverted portrait; otherwise returns <code>false</code>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a> is interpreted as the screen's <a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">primaryOrientation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_portrait(&self, orientation: ::qt_core::ScreenOrientation) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_isPortrait(self as *const crate::QScreen, orientation)
    }

    /// <p>This property holds the number of logical dots or pixels per inch</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QScreen::logicalDotsPerInch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInch-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the number of logical dots or pixels per inch</p>
    /// <p>This value can be used to convert font point sizes to pixel sizes.</p>
    /// <p>This is a convenience property that's simply the average of the <a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchX-prop">logicalDotsPerInchX</a> and <a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchY-prop">logicalDotsPerInchY</a> properties.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>logicalDotsPerInch</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchChanged">logicalDotsPerInchChanged</a></b></span>(qreal <i>dpi</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchX-prop">logicalDotsPerInchX</a>() and <a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchY-prop">logicalDotsPerInchY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn logical_dots_per_inch(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_logicalDotsPerInch(self as *const crate::QScreen)
    }

    /// <p>This property holds the number of logical dots or pixels per inch in the horizontal direction</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QScreen::logicalDotsPerInchX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchX-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the number of logical dots or pixels per inch in the horizontal direction</p>
    /// <p>This value is used to convert font point sizes to pixel sizes.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>logicalDotsPerInchX</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchChanged">logicalDotsPerInchChanged</a></b></span>(qreal <i>dpi</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchY-prop">logicalDotsPerInchY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn logical_dots_per_inch_x(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_logicalDotsPerInchX(self as *const crate::QScreen)
    }

    /// <p>This property holds the number of logical dots or pixels per inch in the vertical direction</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QScreen::logicalDotsPerInchY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchY-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the number of logical dots or pixels per inch in the vertical direction</p>
    /// <p>This value is used to convert font point sizes to pixel sizes.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>logicalDotsPerInchY</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchChanged">logicalDotsPerInchChanged</a></b></span>(qreal <i>dpi</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#logicalDotsPerInchX-prop">logicalDotsPerInchX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn logical_dots_per_inch_y(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_logicalDotsPerInchY(self as *const crate::QScreen)
    }

    /// <p>This property holds the manufacturer of the screen</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QScreen::manufacturer() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#manufacturer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the manufacturer of the screen</p>
    /// <p>This property was introduced in  Qt 5.9.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>manufacturer</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn manufacturer(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_manufacturer(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Maps the rect between two screen orientations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QScreen::mapBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect& rect) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#mapBetween">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Maps the rect between two screen orientations.</p>
    /// <p>This will flip the x and y dimensions of the rectangle <i>rect</i> if the orientation <i>a</i> is <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PortraitOrientation</a> or <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::InvertedPortraitOrientation</a> and orientation <i>b</i> is <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::LandscapeOrientation</a> or <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::InvertedLandscapeOrientation</a>, or vice versa.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a> is interpreted as the screen's <a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">primaryOrientation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn map_between(
        &self,
        a: ::qt_core::ScreenOrientation,
        b: ::qt_core::ScreenOrientation,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_mapBetween(
            self as *const crate::QScreen,
            a,
            b,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QScreen::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_metaObject(self as *const crate::QScreen);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>This property holds the model of the screen</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QScreen::model() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#model-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the model of the screen</p>
    /// <p>This property was introduced in  Qt 5.9.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>model</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn model(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_model(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds a user presentable string representing the screen</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QScreen::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds a user presentable string representing the screen</p>
    /// <p>For example, on X11 these correspond to the XRandr screen names, typically "VGA1", "HDMI1", etc.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_name(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the native screen orientation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::ScreenOrientation QScreen::nativeOrientation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#nativeOrientation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the native screen orientation</p>
    /// <p>The native orientation of the screen is the orientation where the logo sticker of the device appears the right way up, or <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a> if the platform does not support this functionality.</p>
    /// <p>The native orientation is a property of the hardware, and does not change.</p>
    /// <p>This property was introduced in  Qt 5.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::ScreenOrientation </td><td class="memItemRight bottomAlign"><span class="name"><b>nativeOrientation</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn native_orientation(&self) -> ::qt_core::ScreenOrientation {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_nativeOrientation(self as *const crate::QScreen)
    }

    /// <p>This property holds the screen orientation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::ScreenOrientation QScreen::orientation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#orientation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen orientation</p>
    /// <p>The screen orientation represents the physical orientation of the display. For example, the screen orientation of a mobile device will change based on how it is being held. A change to the orientation might or might not trigger a change to the primary orientation of the screen.</p>
    /// <p>Changes to this property will be filtered by <a href="http://doc.qt.io/qt-5/qscreen.html#orientationUpdateMask">orientationUpdateMask</a>(), so in order to receive orientation updates the application must first call <a href="http://doc.qt.io/qt-5/qscreen.html#setOrientationUpdateMask">setOrientationUpdateMask</a>() with a mask of the orientations it wants to receive.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a> is never returned.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::ScreenOrientation </td><td class="memItemRight bottomAlign"><span class="name"><b>orientation</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#orientationChanged">orientationChanged</a></b></span>(Qt::ScreenOrientation <i>orientation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">primaryOrientation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn orientation(&self) -> ::qt_core::ScreenOrientation {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_orientation(self as *const crate::QScreen)
    }

    /// <p>Returns the currently set orientation update mask.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::ScreenOrientation> QScreen::orientationUpdateMask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#orientationUpdateMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set orientation update mask.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#setOrientationUpdateMask">setOrientationUpdateMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn orientation_update_mask(
        &self,
    ) -> ::qt_core::QFlags<::qt_core::ScreenOrientation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_orientationUpdateMask(
            self as *const crate::QScreen,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>This property holds the number of physical dots or pixels per inch</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QScreen::physicalDotsPerInch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInch-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the number of physical dots or pixels per inch</p>
    /// <p>This value represents the pixel density on the screen's display. Depending on what information the underlying system provides the value might not be entirely accurate.</p>
    /// <p>This is a convenience property that's simply the average of the <a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchX-prop">physicalDotsPerInchX</a> and <a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchY-prop">physicalDotsPerInchY</a> properties.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>physicalDotsPerInch</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchChanged">physicalDotsPerInchChanged</a></b></span>(qreal <i>dpi</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchX-prop">physicalDotsPerInchX</a>() and <a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchY-prop">physicalDotsPerInchY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn physical_dots_per_inch(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_physicalDotsPerInch(self as *const crate::QScreen)
    }

    /// <p>This property holds the number of physical dots or pixels per inch in the horizontal direction</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QScreen::physicalDotsPerInchX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchX-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the number of physical dots or pixels per inch in the horizontal direction</p>
    /// <p>This value represents the actual horizontal pixel density on the screen's display. Depending on what information the underlying system provides the value might not be entirely accurate.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>physicalDotsPerInchX</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchChanged">physicalDotsPerInchChanged</a></b></span>(qreal <i>dpi</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchY-prop">physicalDotsPerInchY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn physical_dots_per_inch_x(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_physicalDotsPerInchX(self as *const crate::QScreen)
    }

    /// <p>This property holds the number of physical dots or pixels per inch in the vertical direction</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QScreen::physicalDotsPerInchY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchY-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the number of physical dots or pixels per inch in the vertical direction</p>
    /// <p>This value represents the actual vertical pixel density on the screen's display. Depending on what information the underlying system provides the value might not be entirely accurate.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>physicalDotsPerInchY</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchChanged">physicalDotsPerInchChanged</a></b></span>(qreal <i>dpi</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#physicalDotsPerInchX-prop">physicalDotsPerInchX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn physical_dots_per_inch_y(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_physicalDotsPerInchY(self as *const crate::QScreen)
    }

    /// <p>This property holds the screen's physical size (in millimeters)</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QScreen::physicalSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#physicalSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the screen's physical size (in millimeters)</p>
    /// <p>The physical size represents the actual physical dimensions of the screen's display.</p>
    /// <p>Depending on what information the underlying system provides the value might not be entirely accurate.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSizeF </td><td class="memItemRight bottomAlign"><span class="name"><b>physicalSize</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>physicalSizeChanged</b></span>(const QSizeF &amp;<i>size</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn physical_size(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_physicalSize(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the primary screen orientation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::ScreenOrientation QScreen::primaryOrientation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the primary screen orientation</p>
    /// <p>The primary screen orientation is <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::LandscapeOrientation</a> if the screen geometry's width is greater than or equal to its height, or <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PortraitOrientation</a> otherwise. This property might change when the screen orientation was changed (i.e. when the display is rotated). The behavior is however platform dependent and can often be specified in an application manifest file.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::ScreenOrientation </td><td class="memItemRight bottomAlign"><span class="name"><b>primaryOrientation</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientationChanged">primaryOrientationChanged</a></b></span>(Qt::ScreenOrientation <i>orientation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn primary_orientation(&self) -> ::qt_core::ScreenOrientation {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_primaryOrientation(self as *const crate::QScreen)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QScreen::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_qt_metacall(
            self as *mut crate::QScreen,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QScreen::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_qt_metacast(
            self as *mut crate::QScreen,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This property holds the approximate vertical refresh rate of the screen in Hz</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QScreen::refreshRate() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#refreshRate-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the approximate vertical refresh rate of the screen in Hz</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>refreshRate</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>refreshRateChanged</b></span>(qreal <i>refreshRate</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn refresh_rate(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_refreshRate(self as *const crate::QScreen)
    }

    /// <p>This property holds the serial number of the screen</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QScreen::serialNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#serialNumber-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the serial number of the screen</p>
    /// <p>This property was introduced in  Qt 5.9.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>serialNumber</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn serial_number(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_serialNumber(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the orientations that the application is interested in receiving updates for in conjunction with this screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QScreen::setOrientationUpdateMask(QFlags<Qt::ScreenOrientation> mask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#setOrientationUpdateMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the orientations that the application is interested in receiving updates for in conjunction with this screen.</p>
    /// <p>For example, to receive <a href="http://doc.qt.io/qt-5/qscreen.html#orientation-prop">orientation</a>() updates and thus have <a href="http://doc.qt.io/qt-5/qscreen.html#orientationChanged">orientationChanged</a>() signals being emitted for LandscapeOrientation and InvertedLandscapeOrientation, call setOrientationUpdateMask() with <i>mask</i> set to <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::LandscapeOrientation</a> | <a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::InvertedLandscapeOrientation</a>.</p>
    /// <p>The default, 0, means no <a href="http://doc.qt.io/qt-5/qscreen.html#orientationChanged">orientationChanged</a>() signals are fired.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#orientationUpdateMask">orientationUpdateMask</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_orientation_update_mask(
        &mut self,
        mask: ::qt_core::QFlags<::qt_core::ScreenOrientation>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_setOrientationUpdateMask(
            self as *mut crate::QScreen,
            mask.to_int(),
        )
    }

    /// <p>This property holds the pixel resolution of the screen</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QScreen::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#size-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the pixel resolution of the screen</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>size</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#geometryChanged">geometryChanged</a></b></span>(const QRect &amp;<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_size(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QScreen::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QScreen::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Convenience function to compute a transform that maps from the coordinate system defined by orientation <i>a</i> into the coordinate system defined by orientation <i>b</i> and target dimensions <i>target</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QScreen::transformBetween(Qt::ScreenOrientation a, Qt::ScreenOrientation b, const QRect& target) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#transformBetween">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience function to compute a transform that maps from the coordinate system defined by orientation <i>a</i> into the coordinate system defined by orientation <i>b</i> and target dimensions <i>target</i>.</p>
    /// <p>Example, <i>a</i> is Qt::Landscape, <i>b</i> is Qt::Portrait, and <i>target</i> is <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(0, 0, w, h) the resulting transform will be such that the point <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>(0, 0) is mapped to <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>(0, w), and <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>(h, w) is mapped to <a href="http://doc.qt.io/qt-5/qpoint.html">QPoint</a>(0, h). Thus, the landscape coordinate system <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(0, 0, h, w) is mapped (with a 90 degree rotation) into the portrait coordinate system <a href="http://doc.qt.io/qt-5/qrect.html">QRect</a>(0, 0, w, h).</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt.html#ScreenOrientation-enum">Qt::PrimaryOrientation</a> is interpreted as the screen's <a href="http://doc.qt.io/qt-5/qscreen.html#primaryOrientation-prop">primaryOrientation</a>().</p></div>
    #[inline(always)]
    pub unsafe fn transform_between(
        &self,
        a: ::qt_core::ScreenOrientation,
        b: ::qt_core::ScreenOrientation,
        target: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_transformBetween(
            self as *const crate::QScreen,
            a,
            b,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(target)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the pixel geometry of the virtual desktop to which this screen belongs</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QScreen::virtualGeometry() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#virtualGeometry-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the pixel geometry of the virtual desktop to which this screen belongs</p>
    /// <p>Returns the pixel geometry of the virtual desktop corresponding to this screen.</p>
    /// <p>This is the union of the virtual siblings' individual geometries.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRect </td><td class="memItemRight bottomAlign"><span class="name"><b>virtualGeometry</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#virtualGeometryChanged">virtualGeometryChanged</a></b></span>(const QRect &amp;<i>rect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#virtualSiblings">virtualSiblings</a>().</p></div>
    #[inline(always)]
    pub unsafe fn virtual_geometry(&self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_virtualGeometry(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Get the screen's virtual siblings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*> QScreen::virtualSiblings() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#virtualSiblings">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Get the screen's virtual siblings.</p>
    /// <p>The virtual siblings are the screen instances sharing the same virtual desktop. They share a common coordinate system, and windows can freely be moved or positioned across them without having to be re-created.</p></div>
    #[inline(always)]
    pub unsafe fn virtual_siblings(&self) -> ::cpp_core::CppBox<crate::QListOfQScreen> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_virtualSiblings(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the pixel size of the virtual desktop to which this screen belongs</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QScreen::virtualSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#virtualSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the pixel size of the virtual desktop to which this screen belongs</p>
    /// <p>Returns the pixel size of the virtual desktop corresponding to this screen.</p>
    /// <p>This is the combined size of the virtual siblings' individual geometries.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>virtualSize</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#virtualGeometryChanged">virtualGeometryChanged</a></b></span>(const QRect &amp;<i>rect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qscreen.html#virtualSiblings">virtualSiblings</a>().</p></div>
    #[inline(always)]
    pub unsafe fn virtual_size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QScreen_virtualSize(self as *const crate::QScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_session_manager {
    //! C++ type: <span style='color: green;'>```QSessionManager```</span>

    /// <p>This enum type defines the circumstances under which this application wants to be restarted by the session manager. The current values are:</p>
    ///
    /// C++ enum: <span style='color: green;'>```QSessionManager::RestartHint```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#RestartHint-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type defines the circumstances under which this application wants to be restarted by the session manager. The current values are:</p>
    ///
    /// <p>The default hint is <code>RestartIfRunning</code>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RestartHint(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RestartHint {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RestartHint(value)
        }
    }

    impl From<RestartHint> for ::std::os::raw::c_int {
        fn from(value: RestartHint) -> Self {
            value.0
        }
    }

    impl RestartHint {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RestartHint {
        /// If the application is still running when the session is shut down, it wants to be restarted at the start of the next session. (C++ enum variant: <span style='color: green;'>```RestartIfRunning = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const RestartIfRunning: crate::q_session_manager::RestartHint =
            crate::q_session_manager::RestartHint(0);
        /// The application wants to be started at the start of the next session, no matter what. (This is useful for utilities that run just after startup and then quit.) (C++ enum variant: <span style='color: green;'>```RestartAnyway = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const RestartAnyway: crate::q_session_manager::RestartHint =
            crate::q_session_manager::RestartHint(1);
        /// The application wants to be started immediately whenever it is not running. (C++ enum variant: <span style='color: green;'>```RestartImmediately = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const RestartImmediately: crate::q_session_manager::RestartHint =
            crate::q_session_manager::RestartHint(2);
        /// The application does not want to be restarted automatically. (C++ enum variant: <span style='color: green;'>```RestartNever = 3```</span>)
        #[allow(non_upper_case_globals)]
        pub const RestartNever: crate::q_session_manager::RestartHint =
            crate::q_session_manager::RestartHint(3);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qsessionmanager.html">QSessionManager</a> class provides access to the session manager.</p>
///
/// C++ class: <span style='color: green;'>```QSessionManager```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qsessionmanager.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qsessionmanager.html">QSessionManager</a> class provides access to the session manager.</p>
/// <p>A session manager in a desktop environment (in which Qt GUI applications live) keeps track of a session, which is a group of running applications, each of which has a particular state. The state of an application contains (most notably) the documents the application has open and the position and size of its windows.</p>
/// <p>The session manager is used to save the session, e.g., when the machine is shut down, and to restore a session, e.g., when the machine is started up. We recommend that you use <a href="http://doc.qt.io/qt-5/qsettings.html">QSettings</a> to save an application's settings, for example, window positions, recently used files, etc. When the application is restarted by the session manager, you can restore the settings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qsessionmanager.html">QSessionManager</a> provides an interface between the application and the platform's session manager. In Qt, session management requests for action are handled by the two signals <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">QGuiApplication::commitDataRequest</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">QGuiApplication::saveStateRequest</a>(). Both provide a reference to a <a href="http://doc.qt.io/qt-5/qsessionmanager.html">QSessionManager</a> object as argument. The session manager can only be accessed in slots invoked by these signals.</p>
/// <p><b>Warning:</b> If you use <a href="http://doc.qt.io/qt-5/qsessionmanager.html">QSessionManager</a>, you should disable fallback session management: <a href="http://doc.qt.io/qt-5/qguiapplication.html#setFallbackSessionManagementEnabled">QGuiApplication::setFallbackSessionManagementEnabled</a>().</p>
/// <p>No user interaction is possible <i>unless</i> the application gets explicit permission from the session manager. You ask for permission by calling <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">allowsInteraction</a>() or, if it is really urgent, <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsErrorInteraction">allowsErrorInteraction</a>(). Qt does not enforce this, but the session manager may.</p>
/// <p>You can try to abort the shutdown process by calling <a href="http://doc.qt.io/qt-5/qsessionmanager.html#cancel">cancel</a>().</p>
/// <p>For sophisticated session managers provided on Unix/X11, <a href="http://doc.qt.io/qt-5/qsessionmanager.html">QSessionManager</a> offers further possibilities to fine-tune an application's session management behavior: <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartCommand">setRestartCommand</a>(), <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setDiscardCommand">setDiscardCommand</a>(), <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartHint">setRestartHint</a>(), <a href="http://doc.qt.io/qt-5/qobject.html#setProperty">setProperty</a>(), <a href="http://doc.qt.io/qt-5/qsessionmanager.html#requestPhase2">requestPhase2</a>(). See the respective function descriptions for further details.</p></div>
#[repr(C)]
pub struct QSessionManager {
    _unused: u8,
}
impl QSessionManager {
    /// <p>Returns <code>true</code> if error interaction is permitted; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSessionManager::allowsErrorInteraction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsErrorInteraction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if error interaction is permitted; otherwise returns <code>false</code>.</p>
    /// <p>This is similar to <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">allowsInteraction</a>(), but also enables the application to tell the user about any errors that occur. Session managers may give error interaction requests higher priority, which means that it is more likely that an error interaction is permitted. However, you are still not guaranteed that the session manager will allow interaction.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">allowsInteraction</a>(), <a href="http://doc.qt.io/qt-5/qsessionmanager.html#release">release</a>(), and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#cancel">cancel</a>().</p></div>
    #[inline(always)]
    pub unsafe fn allows_error_interaction(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_allowsErrorInteraction(
            self as *mut crate::QSessionManager,
        )
    }

    /// <p>Asks the session manager for permission to interact with the user. Returns true if interaction is permitted; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSessionManager::allowsInteraction()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Asks the session manager for permission to interact with the user. Returns true if interaction is permitted; otherwise returns <code>false</code>.</p>
    /// <p>The rationale behind this mechanism is to make it possible to synchronize user interaction during a shutdown. Advanced session managers may ask all applications simultaneously to commit their data, resulting in a much faster shutdown.</p>
    /// <p>When the interaction is completed we strongly recommend releasing the user interaction semaphore with a call to <a href="http://doc.qt.io/qt-5/qsessionmanager.html#release">release</a>(). This way, other applications may get the chance to interact with the user while your application is still busy saving data. (The semaphore is implicitly released when the application exits.)</p>
    /// <p>If the user decides to cancel the shutdown process during the interaction phase, you must tell the session manager that this has happened by calling <a href="http://doc.qt.io/qt-5/qsessionmanager.html#cancel">cancel</a>().</p>
    /// <p>Here's an example of how an application's <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">QGuiApplication::commitDataRequest</a>() might be implemented:</p>
    /// <pre class="cpp">
    ///
    ///   MyMainWidget<span class="operator">::</span>MyMainWidget(<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>parent)
    /// &#32;     :<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span>(parent)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a></span><span class="operator">::</span>setFallbackSessionManagementEnabled(<span class="keyword">false</span>);
    /// &#32;     connect(qApp<span class="operator">,</span> SIGNAL(commitDataRequest(<span class="type">QSessionManager</span>))<span class="operator">,</span> SLOT(commitData(<span class="type">QSessionManager</span>)));
    ///   }
    ///
    ///   <span class="type">void</span> MyMainWidget<span class="operator">::</span>commitData(<span class="type">QSessionManager</span><span class="operator">&amp;</span> manager)
    ///   {
    /// &#32;     <span class="keyword">if</span> (manager<span class="operator">.</span>allowsInteraction()) {
    /// &#32;   &#32;     <span class="type">int</span> ret <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>warning(
    /// &#32;   &#32;   &#32;   &#32;   &#32;     mainWindow<span class="operator">,</span>
    /// &#32;   &#32;   &#32;   &#32;   &#32;     tr(<span class="string">"My Application"</span>)<span class="operator">,</span>
    /// &#32;   &#32;   &#32;   &#32;   &#32;     tr(<span class="string">"Save changes to document?"</span>)<span class="operator">,</span>
    /// &#32;   &#32;   &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>Save <span class="operator">|</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>Discard <span class="operator">|</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>Cancel);
    ///
    /// &#32;   &#32;     <span class="keyword">switch</span> (ret) {
    /// &#32;   &#32;     <span class="keyword">case</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>Save:
    /// &#32;   &#32;   &#32;     manager<span class="operator">.</span>release();
    /// &#32;   &#32;   &#32;     <span class="keyword">if</span> (<span class="operator">!</span>saveDocument())
    /// &#32;   &#32;   &#32;   &#32;     manager<span class="operator">.</span>cancel();
    /// &#32;   &#32;   &#32;     <span class="keyword">break</span>;
    /// &#32;   &#32;     <span class="keyword">case</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>Discard:
    /// &#32;   &#32;   &#32;     <span class="keyword">break</span>;
    /// &#32;   &#32;     <span class="keyword">case</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmessagebox.html">QMessageBox</a></span><span class="operator">::</span>Cancel:
    /// &#32;   &#32;     <span class="keyword">default</span>:
    /// &#32;   &#32;   &#32;     manager<span class="operator">.</span>cancel();
    /// &#32;   &#32;     }
    /// &#32;     } <span class="keyword">else</span> {
    /// &#32;   &#32;     <span class="comment">// we did not get permission to interact, then</span>
    /// &#32;   &#32;     <span class="comment">// do something reasonable instead</span>
    /// &#32;     }
    ///   }
    ///
    /// </pre>
    /// <p>If an error occurred within the application while saving its data, you may want to try <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsErrorInteraction">allowsErrorInteraction</a>() instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">QGuiApplication::commitDataRequest</a>(), <a href="http://doc.qt.io/qt-5/qsessionmanager.html#release">release</a>(), and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#cancel">cancel</a>().</p></div>
    #[inline(always)]
    pub unsafe fn allows_interaction(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_allowsInteraction(
            self as *mut crate::QSessionManager,
        )
    }

    /// <p>Tells the session manager to cancel the shutdown process. Applications should not call this function without asking the user first.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSessionManager::cancel()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#cancel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Tells the session manager to cancel the shutdown process. Applications should not call this function without asking the user first.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">allowsInteraction</a>() and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsErrorInteraction">allowsErrorInteraction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cancel(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_cancel(self as *mut crate::QSessionManager)
    }

    /// <p>Returns the currently set discard command.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QSessionManager::discardCommand() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#discardCommand">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set discard command.</p>
    /// <p>To iterate over the list, you can use the <a href="http://doc.qt.io/qt-5/containers.html#foreach">foreach</a> pseudo-keyword:</p>
    /// <pre class="cpp">
    ///
    ///   foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>command<span class="operator">,</span> mySession<span class="operator">.</span>discardCommand())
    /// &#32;     do_something(command);
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#setDiscardCommand">setDiscardCommand</a>(), <a href="http://doc.qt.io/qt-5/qsessionmanager.html#restartCommand">restartCommand</a>(), and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartCommand">setRestartCommand</a>().</p></div>
    #[inline(always)]
    pub unsafe fn discard_command(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_discardCommand(
            self as *const crate::QSessionManager,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the session manager is currently performing a second session management phase; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSessionManager::isPhase2() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#isPhase2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the session manager is currently performing a second session management phase; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#requestPhase2">requestPhase2</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_phase2(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_isPhase2(self as *const crate::QSessionManager)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QSessionManager::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_metaObject(
            self as *const crate::QSessionManager,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QSessionManager::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_qt_metacall(
            self as *mut crate::QSessionManager,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QSessionManager::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_qt_metacast(
            self as *mut crate::QSessionManager,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Releases the session manager's interaction semaphore after an interaction phase.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSessionManager::release()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#release">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases the session manager's interaction semaphore after an interaction phase.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsInteraction">allowsInteraction</a>() and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#allowsErrorInteraction">allowsErrorInteraction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn release(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_release(self as *mut crate::QSessionManager)
    }

    /// <p>Requests a second session management phase for the application. The application may then return immediately from the <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">QGuiApplication::commitDataRequest</a>() or QApplication::saveStateRequest() function, and they will be called again once most or all other applications have finished their session management.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSessionManager::requestPhase2()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#requestPhase2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests a second session management phase for the application. The application may then return immediately from the <a href="http://doc.qt.io/qt-5/qguiapplication.html#commitDataRequest">QGuiApplication::commitDataRequest</a>() or QApplication::saveStateRequest() function, and they will be called again once most or all other applications have finished their session management.</p>
    /// <p>The two phases are useful for applications such as the X11 window manager that need to store information about another application's windows and therefore have to wait until these applications have completed their respective session management tasks.</p>
    /// <p><b>Note: </b>If another application has requested a second phase it may get called before, simultaneously with, or after your application's second phase.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#isPhase2">isPhase2</a>().</p></div>
    #[inline(always)]
    pub unsafe fn request_phase2(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_requestPhase2(
            self as *mut crate::QSessionManager,
        )
    }

    /// <p>Returns the currently set restart command.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList QSessionManager::restartCommand() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#restartCommand">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the currently set restart command.</p>
    /// <p>To iterate over the list, you can use the <a href="http://doc.qt.io/qt-5/containers.html#foreach">foreach</a> pseudo-keyword:</p>
    /// <pre class="cpp">
    ///
    ///   foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>command<span class="operator">,</span> mySession<span class="operator">.</span>restartCommand())
    /// &#32;     do_something(command);
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartCommand">setRestartCommand</a>() and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#restartHint">restartHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn restart_command(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_restartCommand(
            self as *const crate::QSessionManager,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the application's current restart hint. The default is <code>RestartIfRunning</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSessionManager::RestartHint QSessionManager::restartHint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#restartHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the application's current restart hint. The default is <code>RestartIfRunning</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartHint">setRestartHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn restart_hint(&self) -> crate::q_session_manager::RestartHint {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_restartHint(
            self as *const crate::QSessionManager,
        )
    }

    /// <p>Returns the identifier of the current session.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QSessionManager::sessionId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#sessionId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the identifier of the current session.</p>
    /// <p>If the application has been restored from an earlier session, this identifier is the same as it was in the earlier session.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#sessionKey">sessionKey</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">QGuiApplication::sessionId</a>().</p></div>
    #[inline(always)]
    pub unsafe fn session_id(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_sessionId(
            self as *const crate::QSessionManager,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the session key in the current session.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QSessionManager::sessionKey() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#sessionKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the session key in the current session.</p>
    /// <p>If the application has been restored from an earlier session, this key is the same as it was when the previous session ended.</p>
    /// <p>The session key changes with every call of commitData() or saveState().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#sessionId">sessionId</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionKey">QGuiApplication::sessionKey</a>().</p></div>
    #[inline(always)]
    pub unsafe fn session_key(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_sessionKey(
            self as *const crate::QSessionManager,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the discard command to the given <i>command</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSessionManager::setDiscardCommand(const QStringList& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setDiscardCommand">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the discard command to the given <i>command</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#discardCommand">discardCommand</a>() and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartCommand">setRestartCommand</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_discard_command(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_setDiscardCommand(
            self as *mut crate::QSessionManager,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSessionManager::setManagerProperty(const QString& name, const QString& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setManagerProperty-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Low-level write access to the application's identification and state records are kept in the session manager.</p>
    /// <p>The property called <i>name</i> has its value set to the string <i>value</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_manager_property_2_q_string(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_setManagerProperty(
            self as *mut crate::QSessionManager,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Low-level write access to the application's identification and state record are kept in the session manager.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSessionManager::setManagerProperty(const QString& name, const QStringList& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setManagerProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Low-level write access to the application's identification and state record are kept in the session manager.</p>
    /// <p>The property called <i>name</i> has its value set to the string list <i>value</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_manager_property_q_string_q_string_list(
        &mut self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_setManagerProperty1(
            self as *mut crate::QSessionManager,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>If the session manager is capable of restoring sessions it will execute <i>command</i> in order to restore the application. The command defaults to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSessionManager::setRestartCommand(const QStringList& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartCommand">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the session manager is capable of restoring sessions it will execute <i>command</i> in order to restore the application. The command defaults to</p>
    /// <pre class="cpp">
    ///
    ///   appname <span class="operator">-</span>session id
    ///
    /// </pre>
    /// <p>The <code>-session</code> option is mandatory; otherwise <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a> cannot tell whether it has been restored or what the current session identifier is. See <a href="http://doc.qt.io/qt-5/qguiapplication.html#isSessionRestored">QGuiApplication::isSessionRestored</a>() and <a href="http://doc.qt.io/qt-5/qguiapplication.html#sessionId">QGuiApplication::sessionId</a>() for details.</p>
    /// <p>If your application is very simple, it may be possible to store the entire application state in additional command line options. This is usually a very bad idea because command lines are often limited to a few hundred bytes. Instead, use <a href="http://doc.qt.io/qt-5/qsettings.html">QSettings</a>, temporary files, or a database for this purpose. By marking the data with the unique <a href="http://doc.qt.io/qt-5/qsessionmanager.html#sessionId">sessionId</a>(), you will be able to restore the application in a future session.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#restartCommand">restartCommand</a>(), <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setDiscardCommand">setDiscardCommand</a>(), and <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartHint">setRestartHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_restart_command(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_setRestartCommand(
            self as *mut crate::QSessionManager,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the application's restart hint to <i>hint</i>. On application startup, the hint is set to <code>RestartIfRunning</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSessionManager::setRestartHint(QSessionManager::RestartHint arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsessionmanager.html#setRestartHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the application's restart hint to <i>hint</i>. On application startup, the hint is set to <code>RestartIfRunning</code>.</p>
    /// <p><b>Note: </b>These flags are only hints, a session manager may or may not respect them.</p><p>We recommend setting the restart hint in <a href="http://doc.qt.io/qt-5/qguiapplication.html#saveStateRequest">QGuiApplication::saveStateRequest</a>() because most session managers perform a checkpoint shortly after an application's startup.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsessionmanager.html#restartHint">restartHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_restart_hint(&mut self, arg1: crate::q_session_manager::RestartHint) {
        crate::__ffi::ctr_qt_gui_ffi_QSessionManager_setRestartHint(
            self as *mut crate::QSessionManager,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QSessionManager::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QSessionManager::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSessionManager_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_standard_item {
    //! C++ type: <span style='color: green;'>```QStandardItem```</span>

    /// <p>This enum describes the types that are used to describe standard items.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QStandardItem::ItemType```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#ItemType-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum describes the types that are used to describe standard items.</p>
    ///
    /// <p>You can define new user types in <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> subclasses to ensure that custom items are treated specially; for example, when items are sorted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#type">type</a>().</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ItemType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ItemType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ItemType(value)
        }
    }

    impl From<ItemType> for ::std::os::raw::c_int {
        fn from(value: ItemType) -> Self {
            value.0
        }
    }

    impl ItemType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ItemType {
        /// The default type for standard items. (C++ enum variant: <span style='color: green;'>```Type = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Type: crate::q_standard_item::ItemType = crate::q_standard_item::ItemType(0);
        /// The minimum value for custom types. Values below UserType are reserved by Qt. (C++ enum variant: <span style='color: green;'>```UserType = 1000```</span>)
        #[allow(non_upper_case_globals)]
        pub const UserType: crate::q_standard_item::ItemType =
            crate::q_standard_item::ItemType(1000);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> class provides an item for use with the <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> class.</p>
///
/// C++ class: <span style='color: green;'>```QStandardItem```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qstandarditem.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> class provides an item for use with the <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> class.</p>
/// <p>Items usually contain text, icons, or checkboxes.</p>
/// <p>Each item can have its own background brush which is set with the <a href="http://doc.qt.io/qt-5/qstandarditem.html#setBackground">setBackground</a>() function. The current background brush can be found with <a href="http://doc.qt.io/qt-5/qstandarditem.html#background">background</a>(). The text label for each item can be rendered with its own font and brush. These are specified with the <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFont">setFont</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setForeground">setForeground</a>() functions, and read with <a href="http://doc.qt.io/qt-5/qstandarditem.html#font">font</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#foreground">foreground</a>().</p>
/// <p>By default, items are enabled, editable, selectable, checkable, and can be used both as the source of a drag and drop operation and as a drop target. Each item's flags can be changed by calling <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>(). Checkable items can be checked and unchecked with the <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckState">setCheckState</a>() function. The corresponding <a href="http://doc.qt.io/qt-5/qstandarditem.html#checkState">checkState</a>() function indicates whether the item is currently checked.</p>
/// <p>You can store application-specific data in an item by calling <a href="http://doc.qt.io/qt-5/qstandarditem.html#setData">setData</a>().</p>
/// <p>Each item can have a two-dimensional table of child items. This makes it possible to build hierarchies of items. The typical hierarchy is the tree, in which case the child table is a table with a single column (a list).</p>
/// <p>The dimensions of the child table can be set with <a href="http://doc.qt.io/qt-5/qstandarditem.html#setRowCount">setRowCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setColumnCount">setColumnCount</a>(). Items can be positioned in the child table with <a href="http://doc.qt.io/qt-5/qstandarditem.html#setChild">setChild</a>(). Get a pointer to a child item with <a href="http://doc.qt.io/qt-5/qstandarditem.html#child">child</a>(). New rows and columns of children can also be inserted with <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow">insertRow</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumn">insertColumn</a>(), or appended with <a href="http://doc.qt.io/qt-5/qstandarditem.html#appendRow">appendRow</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#appendColumn">appendColumn</a>(). When using the append and insert functions, the dimensions of the child table will grow as needed.</p>
/// <p>An existing row of children can be removed with <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeRow">removeRow</a>() or <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeRow">takeRow</a>(); correspondingly, a column can be removed with <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeColumn">removeColumn</a>() or <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeColumn">takeColumn</a>().</p>
/// <p>An item's children can be sorted by calling <a href="http://doc.qt.io/qt-5/qstandarditem.html#sortChildren">sortChildren</a>().</p>
/// <a name="subclassing"></a></div>
#[repr(C)]
pub struct QStandardItem {
    _unused: u8,
}
impl QStandardItem {
    /// <p>Returns the item's accessible description.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QStandardItem::accessibleDescription() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#accessibleDescription">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's accessible description.</p>
    /// <p>The accessible description is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setAccessibleDescription">setAccessibleDescription</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#accessibleText">accessibleText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn accessible_description(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_accessibleDescription(
            self as *const crate::QStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the item's accessible text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QStandardItem::accessibleText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#accessibleText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's accessible text.</p>
    /// <p>The accessible text is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setAccessibleText">setAccessibleText</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#accessibleDescription">accessibleDescription</a>().</p></div>
    #[inline(always)]
    pub unsafe fn accessible_text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_accessibleText(
            self as *const crate::QStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Appends a column containing <i>items</i>. If necessary, the row count is increased to the size of <i>items</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::appendColumn(const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#appendColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends a column containing <i>items</i>. If necessary, the row count is increased to the size of <i>items</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumn">insertColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_column(
        &mut self,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_appendColumn(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>Appends a row containing <i>items</i>. If necessary, the column count is increased to the size of <i>items</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::appendRow(const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#appendRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends a row containing <i>items</i>. If necessary, the column count is increased to the size of <i>items</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow">insertRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_row_q_list_of_q_standard_item(
        &mut self,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_appendRow(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::appendRow(QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#appendRow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends a row containing <i>item</i>.</p>
    /// <p>When building a list or a tree that has only one column, this function provides a convenient way to append a single new item.</p></div>
    #[inline(always)]
    pub unsafe fn append_row_q_standard_item(
        &mut self,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_appendRow1(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Appends rows containing <i>items</i>. The column count will not change.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::appendRows(const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#appendRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends rows containing <i>items</i>. The column count will not change.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow">insertRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_rows(
        &mut self,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_appendRows(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the brush used to render the item's background.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QStandardItem::background() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#background">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush used to render the item's background.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#foreground">foreground</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setBackground">setBackground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn background(&self) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_background(
            self as *const crate::QStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the checked state of the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::CheckState QStandardItem::checkState() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#checkState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the checked state of the item.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckState">setCheckState</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#isCheckable">isCheckable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn check_state(&self) -> ::qt_core::CheckState {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_checkState(self as *const crate::QStandardItem)
    }

    /// <p>Returns the child item at (<i>row</i>, <i>column</i>) if one has been set; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItem::child(int row, int column = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#child">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the child item at (<i>row</i>, <i>column</i>) if one has been set; otherwise returns 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setChild">setChild</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeChild">takeChild</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#parent">parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn child_2a(
        &self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_child(
            self as *const crate::QStandardItem,
            row,
            column,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the child item at (<i>row</i>, <i>column</i>) if one has been set; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItem::child(int row) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#child">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the child item at (<i>row</i>, <i>column</i>) if one has been set; otherwise returns 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setChild">setChild</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeChild">takeChild</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#parent">parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn child_1a(
        &self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_child1(
            self as *const crate::QStandardItem,
            row,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes all the data from all roles previously set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::clearData()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#clearData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the data from all roles previously set.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setData">setData</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn clear_data(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_clearData(self as *mut crate::QStandardItem)
    }

    /// <p>Returns a copy of this item. The item's children are not copied.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QStandardItem* QStandardItem::clone() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#clone">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a copy of this item. The item's children are not copied.</p>
    /// <p>When subclassing <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a>, you can reimplement this function to provide <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> with a factory that it can use to create new items on demand.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItemPrototype">QStandardItemModel::setItemPrototype</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clone(&self) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_clone(self as *const crate::QStandardItem);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the column where the item is located in its parent's child table, or -1 if the item has no parent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStandardItem::column() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#column">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the column where the item is located in its parent's child table, or -1 if the item has no parent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#row">row</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#parent">parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_column(self as *const crate::QStandardItem)
    }

    /// <p>Returns the number of child item columns that the item has.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStandardItem::columnCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#columnCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of child item columns that the item has.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setColumnCount">setColumnCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#rowCount">rowCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_columnCount(self as *const crate::QStandardItem)
    }

    /// <p>Returns the item's data for the given <i>role</i>, or an invalid <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a> if there is no data for the role.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVariant QStandardItem::data(int role = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's data for the given <i>role</i>, or an invalid <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a> if there is no data for the role.</p>
    /// <p><b>Note: </b>The default implementation treats <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::EditRole</a> and <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::DisplayRole</a> as referring to the same data.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_1a(
        &self,
        role: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_data(
            self as *const crate::QStandardItem,
            role,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the item's data for the given <i>role</i>, or an invalid <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a> if there is no data for the role.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVariant QStandardItem::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's data for the given <i>role</i>, or an invalid <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a> if there is no data for the role.</p>
    /// <p><b>Note: </b>The default implementation treats <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::EditRole</a> and <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::DisplayRole</a> as referring to the same data.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_0a(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_data1(self as *const crate::QStandardItem);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the item flags for the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::ItemFlag> QStandardItem::flags() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#flags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item flags for the item.</p>
    /// <p>The item flags determine how the user can interact with the item.</p>
    /// <p>By default, items are enabled, editable, selectable, checkable, and can be used both as the source of a drag and drop operation and as a drop target.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn flags(&self) -> ::qt_core::QFlags<::qt_core::ItemFlag> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_flags(self as *const crate::QStandardItem);
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the font used to render the item's text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFont QStandardItem::font() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#font">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the font used to render the item's text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn font(&self) -> ::cpp_core::CppBox<crate::QFont> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_font(self as *const crate::QStandardItem);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the brush used to render the item's foreground (e.g. text).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QBrush QStandardItem::foreground() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#foreground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the brush used to render the item's foreground (e.g. text).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setForeground">setForeground</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#background">background</a>().</p></div>
    #[inline(always)]
    pub unsafe fn foreground(&self) -> ::cpp_core::CppBox<crate::QBrush> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_foreground(
            self as *const crate::QStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this item has any children; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::hasChildren() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#hasChildren">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this item has any children; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#rowCount">rowCount</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#columnCount">columnCount</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#child">child</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_children(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_hasChildren(self as *const crate::QStandardItem)
    }

    /// <p>Returns the item's icon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIcon QStandardItem::icon() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#icon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's icon.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setIcon">setIcon</a>() and <a href="http://doc.qt.io/qt-5/qabstractitemview.html#iconSize-prop">iconSize</a>.</p></div>
    #[inline(always)]
    pub unsafe fn icon(&self) -> ::cpp_core::CppBox<crate::QIcon> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_icon(self as *const crate::QStandardItem);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> associated with this item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QModelIndex QStandardItem::index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#index">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> associated with this item.</p>
    /// <p>When you need to invoke item functionality in a <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a>-based API (e.g. <a href="http://doc.qt.io/qt-5/qabstractitemview.html">QAbstractItemView</a>), you can call this function to obtain an index that corresponds to the item's location in the model.</p>
    /// <p>If the item is not associated with a model, an invalid <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#model">model</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">QStandardItemModel::itemFromIndex</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(&self) -> ::cpp_core::CppBox<::qt_core::QModelIndex> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_index(self as *const crate::QStandardItem);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Inserts a column at <i>column</i> containing <i>items</i>. If necessary, the row count is increased to the size of <i>items</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::insertColumn(int column, const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a column at <i>column</i> containing <i>items</i>. If necessary, the row count is increased to the size of <i>items</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumns">insertColumns</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow">insertRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_column(
        &mut self,
        column: ::std::os::raw::c_int,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_insertColumn(
            self as *mut crate::QStandardItem,
            column,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>count</i> columns of child items at column <i>column</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::insertColumns(int column, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>count</i> columns of child items at column <i>column</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumn">insertColumn</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRows">insertRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_columns(
        &mut self,
        column: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_insertColumns(
            self as *mut crate::QStandardItem,
            column,
            count,
        )
    }

    /// <p>Inserts a row at <i>row</i> containing <i>items</i>. If necessary, the column count is increased to the size of <i>items</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::insertRow(int row, const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a row at <i>row</i> containing <i>items</i>. If necessary, the column count is increased to the size of <i>items</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRows">insertRows</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumn">insertColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_row_int_q_list_of_q_standard_item(
        &mut self,
        row: ::std::os::raw::c_int,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_insertRow(
            self as *mut crate::QStandardItem,
            row,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::insertRow(int row, QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts a row at <i>row</i> containing <i>item</i>.</p>
    /// <p>When building a list or a tree that has only one column, this function provides a convenient way to insert a single new item.</p></div>
    #[inline(always)]
    pub unsafe fn insert_row_int_q_standard_item(
        &mut self,
        row: ::std::os::raw::c_int,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_insertRow1(
            self as *mut crate::QStandardItem,
            row,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Inserts <i>items</i> at <i>row</i>. The column count won't be changed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::insertRows(int row, const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>items</i> at <i>row</i>. The column count won't be changed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow">insertRow</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumn">insertColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_rows_int_q_list_of_q_standard_item(
        &mut self,
        row: ::std::os::raw::c_int,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_insertRows(
            self as *mut crate::QStandardItem,
            row,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>count</i> rows of child items at row <i>row</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::insertRows(int row, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRows-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>count</i> rows of child items at row <i>row</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow">insertRow</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumns">insertColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_rows_2_int(
        &mut self,
        row: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_insertRows1(
            self as *mut crate::QStandardItem,
            row,
            count,
        )
    }

    /// <p>Returns whether the item is tristate and is controlled by <a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isAutoTristate() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#isAutoTristate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the item is tristate and is controlled by <a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a>.</p>
    /// <p>The default value is false.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setAutoTristate">setAutoTristate</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#isCheckable">isCheckable</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#checkState">checkState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_auto_tristate(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isAutoTristate(
            self as *const crate::QStandardItem,
        )
    }

    /// <p>Returns whether the item is user-checkable.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isCheckable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#isCheckable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the item is user-checkable.</p>
    /// <p>The default value is false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckable">setCheckable</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#checkState">checkState</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#isUserTristate">isUserTristate</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#isAutoTristate">isAutoTristate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_checkable(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isCheckable(self as *const crate::QStandardItem)
    }

    /// <p>Returns whether the item is drag enabled. An item that is drag enabled can be dragged by the user.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isDragEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#isDragEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the item is drag enabled. An item that is drag enabled can be dragged by the user.</p>
    /// <p>The default value is true.</p>
    /// <p>Note that item dragging must be enabled in the view for dragging to work; see <a href="http://doc.qt.io/qt-5/qabstractitemview.html#dragEnabled-prop">QAbstractItemView::dragEnabled</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setDragEnabled">setDragEnabled</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#isDropEnabled">isDropEnabled</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_drag_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isDragEnabled(
            self as *const crate::QStandardItem,
        )
    }

    /// <p>Returns whether the item is drop enabled. When an item is drop enabled, it can be used as a drop target.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isDropEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#isDropEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the item is drop enabled. When an item is drop enabled, it can be used as a drop target.</p>
    /// <p>The default value is true.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setDropEnabled">setDropEnabled</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#isDragEnabled">isDragEnabled</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_drop_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isDropEnabled(
            self as *const crate::QStandardItem,
        )
    }

    /// <p>Returns whether the item can be edited by the user.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isEditable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#isEditable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the item can be edited by the user.</p>
    /// <p>When an item is editable (and enabled), the user can edit the item by invoking one of the view's edit triggers; see <a href="http://doc.qt.io/qt-5/qabstractitemview.html#editTriggers-prop">QAbstractItemView::editTriggers</a>.</p>
    /// <p>The default value is true.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setEditable">setEditable</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_editable(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isEditable(self as *const crate::QStandardItem)
    }

    /// <p>Returns whether the item is enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#isEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the item is enabled.</p>
    /// <p>When an item is enabled, the user can interact with it. The possible types of interaction are specified by the other item flags, such as <a href="http://doc.qt.io/qt-5/qstandarditem.html#isEditable">isEditable</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#isSelectable">isSelectable</a>().</p>
    /// <p>The default value is true.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setEnabled">setEnabled</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isEnabled(self as *const crate::QStandardItem)
    }

    /// <p>Returns whether the item is selectable by the user.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isSelectable() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#isSelectable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the item is selectable by the user.</p>
    /// <p>The default value is true.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setSelectable">setSelectable</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#flags">flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_selectable(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isSelectable(self as *const crate::QStandardItem)
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qstandarditem.html#isAutoTristate">QStandardItem::isAutoTristate</a>() instead. For a tristate checkbox that the user can change between all three states, use <a href="http://doc.qt.io/qt-5/qstandarditem.html#isUserTristate">QStandardItem::isUserTristate</a>() instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isTristate() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem-obsolete.html#isTristate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qstandarditem.html#isAutoTristate">QStandardItem::isAutoTristate</a>() instead. For a tristate checkbox that the user can change between all three states, use <a href="http://doc.qt.io/qt-5/qstandarditem.html#isUserTristate">QStandardItem::isUserTristate</a>() instead.</p></div>
    #[inline(always)]
    pub unsafe fn is_tristate(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isTristate(self as *const crate::QStandardItem)
    }

    /// <p>Returns whether the item is tristate; that is, if it's checkable with three separate states and the user can cycle through all three states.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItem::isUserTristate() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#isUserTristate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the item is tristate; that is, if it's checkable with three separate states and the user can cycle through all three states.</p>
    /// <p>The default value is false.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setUserTristate">setUserTristate</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#isCheckable">isCheckable</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#checkState">checkState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_user_tristate(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_isUserTristate(
            self as *const crate::QStandardItem,
        )
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> that this item belongs to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* QStandardItem::model() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#model">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> that this item belongs to.</p>
    /// <p>If the item is not a child of another item that belongs to the model, this function returns 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#index">index</a>().</p></div>
    #[inline(always)]
    pub unsafe fn model(&self) -> ::cpp_core::MutPtr<crate::QStandardItemModel> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_model(self as *const crate::QStandardItem);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Constructs an item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItem::QStandardItem()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#QStandardItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an item.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_QStandardItem();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an item with the given <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItem::QStandardItem(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#QStandardItem-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an item with the given <i>text</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_QStandardItem1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an item with the given <i>icon</i> and <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItem::QStandardItem(const QIcon& icon, const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#QStandardItem-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an item with the given <i>icon</i> and <i>text</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_icon_q_string(
        icon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIcon>>,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_QStandardItem2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIcon>>::cast_into(icon).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an item with <i>rows</i> rows and <i>columns</i> columns of child items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItem::QStandardItem(int rows, int columns = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#QStandardItem-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an item with <i>rows</i> rows and <i>columns</i> columns of child items.</p></div>
    #[inline(always)]
    pub unsafe fn from_2_int(
        rows: ::std::os::raw::c_int,
        columns: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_QStandardItem3(rows, columns);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an item with <i>rows</i> rows and <i>columns</i> columns of child items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItem::QStandardItem(int rows)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#QStandardItem-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an item with <i>rows</i> rows and <i>columns</i> columns of child items.</p></div>
    #[inline(always)]
    pub unsafe fn from_int(
        rows: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_QStandardItem4(rows);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the item's parent item, or 0 if the item has no parent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItem::parent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#parent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's parent item, or 0 if the item has no parent.</p>
    /// <p><b>Note: </b>For toplevel items parent() returns 0. To receive toplevel item's parent use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#invisibleRootItem">QStandardItemModel::invisibleRootItem</a>() instead.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#child">child</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#invisibleRootItem">QStandardItemModel::invisibleRootItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn parent(&self) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_parent(self as *const crate::QStandardItem);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reads the item from stream <i>in</i>. Only the data and flags of the item are read, not the child items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QStandardItem::read(QDataStream& in)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#read">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reads the item from stream <i>in</i>. Only the data and flags of the item are read, not the child items.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#write">write</a>().</p></div>
    #[inline(always)]
    pub unsafe fn read(
        &mut self,
        in_: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QDataStream>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_read(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QDataStream>>::cast_into(in_)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the given <i>column</i>. The items that were in the column are deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::removeColumn(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the given <i>column</i>. The items that were in the column are deleted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#takeColumn">takeColumn</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeColumns">removeColumns</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeRow">removeRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_column(&mut self, column: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_removeColumn(
            self as *mut crate::QStandardItem,
            column,
        )
    }

    /// <p>Removes <i>count</i> columns at column <i>column</i>. The items that were in those columns are deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::removeColumns(int column, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes <i>count</i> columns at column <i>column</i>. The items that were in those columns are deleted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#removeColumn">removeColumn</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeRows">removeRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_columns(
        &mut self,
        column: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_removeColumns(
            self as *mut crate::QStandardItem,
            column,
            count,
        )
    }

    /// <p>Removes the given <i>row</i>. The items that were in the row are deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::removeRow(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the given <i>row</i>. The items that were in the row are deleted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#takeRow">takeRow</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeRows">removeRows</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeColumn">removeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_row(&mut self, row: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_removeRow(self as *mut crate::QStandardItem, row)
    }

    /// <p>Removes <i>count</i> rows at row <i>row</i>. The items that were in those rows are deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::removeRows(int row, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes <i>count</i> rows at row <i>row</i>. The items that were in those rows are deleted.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#removeRow">removeRow</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#removeColumn">removeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_rows(&mut self, row: ::std::os::raw::c_int, count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_removeRows(
            self as *mut crate::QStandardItem,
            row,
            count,
        )
    }

    /// <p>Returns the row where the item is located in its parent's child table, or -1 if the item has no parent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStandardItem::row() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#row">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the row where the item is located in its parent's child table, or -1 if the item has no parent.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#column">column</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#parent">parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_row(self as *const crate::QStandardItem)
    }

    /// <p>Returns the number of child item rows that the item has.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStandardItem::rowCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#rowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of child item rows that the item has.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setRowCount">setRowCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#columnCount">columnCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_rowCount(self as *const crate::QStandardItem)
    }

    /// <p>Sets the item's accessible description to the string specified by <i>accessibleDescription</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setAccessibleDescription(const QString& accessibleDescription)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setAccessibleDescription">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's accessible description to the string specified by <i>accessibleDescription</i>.</p>
    /// <p>The accessible description is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#accessibleDescription">accessibleDescription</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setAccessibleText">setAccessibleText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_accessible_description(
        &mut self,
        accessible_description: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setAccessibleDescription(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(
                accessible_description,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Sets the item's accessible text to the string specified by <i>accessibleText</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setAccessibleText(const QString& accessibleText)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setAccessibleText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's accessible text to the string specified by <i>accessibleText</i>.</p>
    /// <p>The accessible text is used by assistive technologies (i.e. for users who cannot use conventional means of interaction).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#accessibleText">accessibleText</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setAccessibleDescription">setAccessibleDescription</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_accessible_text(
        &mut self,
        accessible_text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setAccessibleText(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(accessible_text)
                .as_raw_ptr(),
        )
    }

    /// <p>Determines that the item is tristate and controlled by <a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a> if <i>tristate</i> is <code>true</code>. This enables automatic management of the state of parent items in <a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a> (checked if all children are checked, unchecked if all children are unchecked, or partially checked if only some children are checked).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setAutoTristate(bool tristate)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setAutoTristate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Determines that the item is tristate and controlled by <a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a> if <i>tristate</i> is <code>true</code>. This enables automatic management of the state of parent items in <a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a> (checked if all children are checked, unchecked if all children are unchecked, or partially checked if only some children are checked).</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#isAutoTristate">isAutoTristate</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckable">setCheckable</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckState">setCheckState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_auto_tristate(&mut self, tristate: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setAutoTristate(
            self as *mut crate::QStandardItem,
            tristate,
        )
    }

    /// <p>Sets the item's background brush to the specified <i>brush</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setBackground(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setBackground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's background brush to the specified <i>brush</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#background">background</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setForeground">setForeground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_background(
        &mut self,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setBackground(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>Sets the check state of the item to be <i>state</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setCheckState(Qt::CheckState checkState)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the check state of the item to be <i>state</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#checkState">checkState</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckable">setCheckable</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_check_state(&mut self, check_state: ::qt_core::CheckState) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setCheckState(
            self as *mut crate::QStandardItem,
            check_state,
        )
    }

    /// <p>Sets whether the item is user-checkable. If <i>checkable</i> is true, the item can be checked by the user; otherwise, the user cannot check the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setCheckable(bool checkable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the item is user-checkable. If <i>checkable</i> is true, the item can be checked by the user; otherwise, the user cannot check the item.</p>
    /// <p>The item delegate will render a checkable item with a check box next to the item's text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#isCheckable">isCheckable</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckState">setCheckState</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setUserTristate">setUserTristate</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setAutoTristate">setAutoTristate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_checkable(&mut self, checkable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setCheckable(
            self as *mut crate::QStandardItem,
            checkable,
        )
    }

    /// <p>Sets the child item at (<i>row</i>, <i>column</i>) to <i>item</i>. This item (the parent item) takes ownership of <i>item</i>. If necessary, the row count and column count are increased to fit the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setChild(int row, int column, QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setChild">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the child item at (<i>row</i>, <i>column</i>) to <i>item</i>. This item (the parent item) takes ownership of <i>item</i>. If necessary, the row count and column count are increased to fit the item.</p>
    /// <p><b>Note: </b>Passing a null pointer as <i>item</i> removes the item.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#child">child</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_child_3a(
        &mut self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setChild(
            self as *mut crate::QStandardItem,
            row,
            column,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setChild(int row, QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setChild-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Sets the child at <i>row</i> to <i>item</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_child_2a(
        &mut self,
        row: ::std::os::raw::c_int,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setChild1(
            self as *mut crate::QStandardItem,
            row,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the number of child item columns to <i>columns</i>. If this is less than <a href="http://doc.qt.io/qt-5/qstandarditem.html#columnCount">columnCount</a>(), the data in the unwanted columns is discarded.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setColumnCount(int columns)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setColumnCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of child item columns to <i>columns</i>. If this is less than <a href="http://doc.qt.io/qt-5/qstandarditem.html#columnCount">columnCount</a>(), the data in the unwanted columns is discarded.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#columnCount">columnCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setRowCount">setRowCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_column_count(&mut self, columns: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setColumnCount(
            self as *mut crate::QStandardItem,
            columns,
        )
    }

    /// <p>Sets the item's data for the given <i>role</i> to the specified <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QStandardItem::setData(const QVariant& value, int role = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's data for the given <i>role</i> to the specified <i>value</i>.</p>
    /// <p>If you subclass <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> and reimplement this function, your reimplementation should call <a href="http://doc.qt.io/qt-5/qstandarditem.html#emitDataChanged">emitDataChanged</a>() if you do not call the base implementation of setData(). This will ensure that e.g. views using the model are notified of the changes.</p>
    /// <p><b>Note: </b>The default implementation treats <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::EditRole</a> and <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::DisplayRole</a> as referring to the same data.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::ItemDataRole</a>, <a href="http://doc.qt.io/qt-5/qstandarditem.html#data">data</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data_2a(
        &mut self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
        role: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setData(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
            role,
        )
    }

    /// <p>Sets the item's data for the given <i>role</i> to the specified <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QStandardItem::setData(const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's data for the given <i>role</i> to the specified <i>value</i>.</p>
    /// <p>If you subclass <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> and reimplement this function, your reimplementation should call <a href="http://doc.qt.io/qt-5/qstandarditem.html#emitDataChanged">emitDataChanged</a>() if you do not call the base implementation of setData(). This will ensure that e.g. views using the model are notified of the changes.</p>
    /// <p><b>Note: </b>The default implementation treats <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::EditRole</a> and <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::DisplayRole</a> as referring to the same data.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::ItemDataRole</a>, <a href="http://doc.qt.io/qt-5/qstandarditem.html#data">data</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data_1a(
        &mut self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setData1(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets whether the item is drag enabled. If <i>dragEnabled</i> is true, the item can be dragged by the user; otherwise, the user cannot drag the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setDragEnabled(bool dragEnabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setDragEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the item is drag enabled. If <i>dragEnabled</i> is true, the item can be dragged by the user; otherwise, the user cannot drag the item.</p>
    /// <p>Note that you also need to ensure that item dragging is enabled in the view; see <a href="http://doc.qt.io/qt-5/qabstractitemview.html#dragEnabled-prop">QAbstractItemView::dragEnabled</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#isDragEnabled">isDragEnabled</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setDropEnabled">setDropEnabled</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_drag_enabled(&mut self, drag_enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setDragEnabled(
            self as *mut crate::QStandardItem,
            drag_enabled,
        )
    }

    /// <p>Sets whether the item is drop enabled. If <i>dropEnabled</i> is true, the item can be used as a drop target; otherwise, it cannot.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setDropEnabled(bool dropEnabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setDropEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the item is drop enabled. If <i>dropEnabled</i> is true, the item can be used as a drop target; otherwise, it cannot.</p>
    /// <p>Note that you also need to ensure that drops are enabled in the view; see <a href="http://doc.qt.io/qt-5/qwidget.html#acceptDrops-prop">QWidget::acceptDrops</a>(); and that the model supports the desired drop actions; see <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#supportedDropActions">QAbstractItemModel::supportedDropActions</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#isDropEnabled">isDropEnabled</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setDragEnabled">setDragEnabled</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_drop_enabled(&mut self, drop_enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setDropEnabled(
            self as *mut crate::QStandardItem,
            drop_enabled,
        )
    }

    /// <p>Sets whether the item is editable. If <i>editable</i> is true, the item can be edited by the user; otherwise, the user cannot edit the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setEditable(bool editable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setEditable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the item is editable. If <i>editable</i> is true, the item can be edited by the user; otherwise, the user cannot edit the item.</p>
    /// <p>How the user can edit items in a view is determined by the view's edit triggers; see <a href="http://doc.qt.io/qt-5/qabstractitemview.html#editTriggers-prop">QAbstractItemView::editTriggers</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#isEditable">isEditable</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_editable(&mut self, editable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setEditable(
            self as *mut crate::QStandardItem,
            editable,
        )
    }

    /// <p>Sets whether the item is enabled. If <i>enabled</i> is true, the item is enabled, meaning that the user can interact with the item; if <i>enabled</i> is false, the user cannot interact with the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setEnabled(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the item is enabled. If <i>enabled</i> is true, the item is enabled, meaning that the user can interact with the item; if <i>enabled</i> is false, the user cannot interact with the item.</p>
    /// <p>This flag takes precedence over the other item flags; e.g. if an item is not enabled, it cannot be selected by the user, even if the <a href="http://doc.qt.io/qt-5/qt.html#ItemFlag-enum">Qt::ItemIsSelectable</a> flag has been set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#isEnabled">isEnabled</a>(), <a href="http://doc.qt.io/qt-5/qt.html#ItemFlag-enum">Qt::ItemIsEnabled</a>, and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_enabled(&mut self, enabled: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setEnabled(
            self as *mut crate::QStandardItem,
            enabled,
        )
    }

    /// <p>Sets the item flags for the item to <i>flags</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setFlags(QFlags<Qt::ItemFlag> flags)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item flags for the item to <i>flags</i>.</p>
    /// <p>The item flags determine how the user can interact with the item. This is often used to disable an item.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#flags">flags</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_flags(&mut self, flags: ::qt_core::QFlags<::qt_core::ItemFlag>) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setFlags(
            self as *mut crate::QStandardItem,
            flags.to_int(),
        )
    }

    /// <p>Sets the font used to display the item's text to the given <i>font</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setFont(const QFont& font)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the font used to display the item's text to the given <i>font</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#font">font</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setText">setText</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setForeground">setForeground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_font(
        &mut self,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setFont(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        )
    }

    /// <p>Sets the brush used to display the item's foreground (e.g. text) to the given <i>brush</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setForeground(const QBrush& brush)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setForeground">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the brush used to display the item's foreground (e.g. text) to the given <i>brush</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#foreground">foreground</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setBackground">setBackground</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFont">setFont</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_foreground(
        &mut self,
        brush: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QBrush>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setForeground(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QBrush>>::cast_into(brush).as_raw_ptr(),
        )
    }

    /// <p>Sets the item's icon to the <i>icon</i> specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setIcon(const QIcon& icon)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setIcon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's icon to the <i>icon</i> specified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#icon">icon</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_icon(
        &mut self,
        icon: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QIcon>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setIcon(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QIcon>>::cast_into(icon).as_raw_ptr(),
        )
    }

    /// <p>Sets the number of child item rows to <i>rows</i>. If this is less than <a href="http://doc.qt.io/qt-5/qstandarditem.html#rowCount">rowCount</a>(), the data in the unwanted rows is discarded.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setRowCount(int rows)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setRowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of child item rows to <i>rows</i>. If this is less than <a href="http://doc.qt.io/qt-5/qstandarditem.html#rowCount">rowCount</a>(), the data in the unwanted rows is discarded.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#rowCount">rowCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setColumnCount">setColumnCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_row_count(&mut self, rows: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setRowCount(
            self as *mut crate::QStandardItem,
            rows,
        )
    }

    /// <p>Sets whether the item is selectable. If <i>selectable</i> is true, the item can be selected by the user; otherwise, the user cannot select the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setSelectable(bool selectable)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setSelectable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the item is selectable. If <i>selectable</i> is true, the item can be selected by the user; otherwise, the user cannot select the item.</p>
    /// <p>You can control the selection behavior and mode by manipulating their view properties; see <a href="http://doc.qt.io/qt-5/qabstractitemview.html#selectionMode-prop">QAbstractItemView::selectionMode</a> and <a href="http://doc.qt.io/qt-5/qabstractitemview.html#selectionBehavior-prop">QAbstractItemView::selectionBehavior</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#isSelectable">isSelectable</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFlags">setFlags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_selectable(&mut self, selectable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setSelectable(
            self as *mut crate::QStandardItem,
            selectable,
        )
    }

    /// <p>Sets the size hint for the item to be <i>size</i>. If no size hint is set, the item delegate will compute the size hint based on the item data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setSizeHint(const QSize& sizeHint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setSizeHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size hint for the item to be <i>size</i>. If no size hint is set, the item delegate will compute the size hint based on the item data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#sizeHint">sizeHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_size_hint(
        &mut self,
        size_hint: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setSizeHint(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size_hint)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the item's status tip to the string specified by <i>statusTip</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setStatusTip(const QString& statusTip)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setStatusTip">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's status tip to the string specified by <i>statusTip</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#statusTip">statusTip</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setToolTip">setToolTip</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setWhatsThis">setWhatsThis</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_status_tip(
        &mut self,
        status_tip: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setStatusTip(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(status_tip)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the item's text to the <i>text</i> specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setText(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's text to the <i>text</i> specified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#text">text</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setFont">setFont</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setForeground">setForeground</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text(
        &mut self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setText(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the text alignment for the item's text to the <i>alignment</i> specified.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setTextAlignment(QFlags<Qt::AlignmentFlag> textAlignment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setTextAlignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text alignment for the item's text to the <i>alignment</i> specified.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#textAlignment">textAlignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_alignment(
        &mut self,
        text_alignment: ::qt_core::QFlags<::qt_core::AlignmentFlag>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setTextAlignment(
            self as *mut crate::QStandardItem,
            text_alignment.to_int(),
        )
    }

    /// <p>Sets the item's tooltip to the string specified by <i>toolTip</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setToolTip(const QString& toolTip)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setToolTip">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's tooltip to the string specified by <i>toolTip</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#toolTip">toolTip</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setStatusTip">setStatusTip</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setWhatsThis">setWhatsThis</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_tool_tip(
        &mut self,
        tool_tip: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setToolTip(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(tool_tip)
                .as_raw_ptr(),
        )
    }

    /// <p>Use <a href="http://doc.qt.io/qt-5/qstandarditem.html#setAutoTristate">QStandardItem::setAutoTristate</a>(bool tristate) instead. For a tristate checkbox that the user can change between all three states, use <a href="http://doc.qt.io/qt-5/qstandarditem.html#setUserTristate">QStandardItem::setUserTristate</a>(bool tristate) instead.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setTristate(bool tristate)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem-obsolete.html#setTristate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Use <a href="http://doc.qt.io/qt-5/qstandarditem.html#setAutoTristate">QStandardItem::setAutoTristate</a>(bool tristate) instead. For a tristate checkbox that the user can change between all three states, use <a href="http://doc.qt.io/qt-5/qstandarditem.html#setUserTristate">QStandardItem::setUserTristate</a>(bool tristate) instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem-obsolete.html#isTristate">isTristate</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_tristate(&mut self, tristate: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setTristate(
            self as *mut crate::QStandardItem,
            tristate,
        )
    }

    /// <p>Sets whether the item is tristate and controlled by the user. If <i>tristate</i> is true, the user can cycle through three separate states; otherwise, the item is checkable with two states. (Note that this also requires that the item is checkable; see <a href="http://doc.qt.io/qt-5/qstandarditem.html#isCheckable">isCheckable</a>().)</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setUserTristate(bool tristate)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setUserTristate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the item is tristate and controlled by the user. If <i>tristate</i> is true, the user can cycle through three separate states; otherwise, the item is checkable with two states. (Note that this also requires that the item is checkable; see <a href="http://doc.qt.io/qt-5/qstandarditem.html#isCheckable">isCheckable</a>().)</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#isUserTristate">isUserTristate</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckable">setCheckable</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setCheckState">setCheckState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_user_tristate(&mut self, tristate: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setUserTristate(
            self as *mut crate::QStandardItem,
            tristate,
        )
    }

    /// <p>Sets the item's "What's This?" help to the string specified by <i>whatsThis</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::setWhatsThis(const QString& whatsThis)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#setWhatsThis">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item's "What's This?" help to the string specified by <i>whatsThis</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#whatsThis">whatsThis</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#setStatusTip">setStatusTip</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#setToolTip">setToolTip</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_whats_this(
        &mut self,
        whats_this: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_setWhatsThis(
            self as *mut crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(whats_this)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the size hint set for the item, or an invalid <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> if no size hint has been set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QStandardItem::sizeHint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#sizeHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size hint set for the item, or an invalid <a href="http://doc.qt.io/qt-5/qsize.html">QSize</a> if no size hint has been set.</p>
    /// <p>If no size hint has been set, the item delegate will compute the size hint based on the item data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setSizeHint">setSizeHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size_hint(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_sizeHint(
            self as *const crate::QStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sorts the children of the item using the given <i>order</i>, by the values in the given <i>column</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::sortChildren(int column, Qt::SortOrder order = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#sortChildren">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sorts the children of the item using the given <i>order</i>, by the values in the given <i>column</i>.</p>
    /// <p><b>Note: </b>This function is recursive, therefore it sorts the children of the item, its grandchildren, etc.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#operator-lt">operator&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn sort_children_2a(
        &mut self,
        column: ::std::os::raw::c_int,
        order: ::qt_core::SortOrder,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_sortChildren(
            self as *mut crate::QStandardItem,
            column,
            order,
        )
    }

    /// <p>Sorts the children of the item using the given <i>order</i>, by the values in the given <i>column</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItem::sortChildren(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#sortChildren">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sorts the children of the item using the given <i>order</i>, by the values in the given <i>column</i>.</p>
    /// <p><b>Note: </b>This function is recursive, therefore it sorts the children of the item, its grandchildren, etc.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#operator-lt">operator&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn sort_children_1a(&mut self, column: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_sortChildren1(
            self as *mut crate::QStandardItem,
            column,
        )
    }

    /// <p>Returns the item's status tip.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QStandardItem::statusTip() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#statusTip">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's status tip.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setStatusTip">setStatusTip</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#toolTip">toolTip</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#whatsThis">whatsThis</a>().</p></div>
    #[inline(always)]
    pub unsafe fn status_tip(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_statusTip(
            self as *const crate::QStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the child item at (<i>row</i>, <i>column</i>) without deleting it, and returns a pointer to the item. If there was no child at the given location, then this function returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItem::takeChild(int row, int column = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeChild">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the child item at (<i>row</i>, <i>column</i>) without deleting it, and returns a pointer to the item. If there was no child at the given location, then this function returns 0.</p>
    /// <p>Note that this function, unlike <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeRow">takeRow</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeColumn">takeColumn</a>(), does not affect the dimensions of the child table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#child">child</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeRow">takeRow</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeColumn">takeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_child_2a(
        &mut self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_takeChild(
            self as *mut crate::QStandardItem,
            row,
            column,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the child item at (<i>row</i>, <i>column</i>) without deleting it, and returns a pointer to the item. If there was no child at the given location, then this function returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItem::takeChild(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeChild">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the child item at (<i>row</i>, <i>column</i>) without deleting it, and returns a pointer to the item. If there was no child at the given location, then this function returns 0.</p>
    /// <p>Note that this function, unlike <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeRow">takeRow</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeColumn">takeColumn</a>(), does not affect the dimensions of the child table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#child">child</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeRow">takeRow</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeColumn">takeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_child_1a(
        &mut self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_takeChild1(
            self as *mut crate::QStandardItem,
            row,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes <i>column</i> without deleting the column items, and returns a list of pointers to the removed items. For items in the column that have not been set, the corresponding pointers in the list will be 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QStandardItem::takeColumn(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes <i>column</i> without deleting the column items, and returns a list of pointers to the removed items. For items in the column that have not been set, the corresponding pointers in the list will be 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#removeColumn">removeColumn</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertColumn">insertColumn</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeRow">takeRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_column(
        &mut self,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_takeColumn(
            self as *mut crate::QStandardItem,
            column,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes <i>row</i> without deleting the row items, and returns a list of pointers to the removed items. For items in the row that have not been set, the corresponding pointers in the list will be 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QStandardItem::takeRow(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes <i>row</i> without deleting the row items, and returns a list of pointers to the removed items. For items in the row that have not been set, the corresponding pointers in the list will be 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#removeRow">removeRow</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#insertRow">insertRow</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#takeColumn">takeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_row(
        &mut self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_takeRow(
            self as *mut crate::QStandardItem,
            row,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the item's text. This is the text that's presented to the user in a view.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QStandardItem::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's text. This is the text that's presented to the user in a view.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setText">setText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_text(self as *const crate::QStandardItem);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text alignment for the item's text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt::AlignmentFlag> QStandardItem::textAlignment() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#textAlignment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text alignment for the item's text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setTextAlignment">setTextAlignment</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_alignment(&self) -> ::qt_core::QFlags<::qt_core::AlignmentFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_textAlignment(
            self as *const crate::QStandardItem,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Returns the item's tooltip.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QStandardItem::toolTip() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#toolTip">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's tooltip.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setToolTip">setToolTip</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#statusTip">statusTip</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#whatsThis">whatsThis</a>().</p></div>
    #[inline(always)]
    pub unsafe fn tool_tip(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItem_toolTip(self as *const crate::QStandardItem);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the type of this item. The type is used to distinguish custom items from the base class. When subclassing <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a>, you should reimplement this function and return a new value greater than or equal to <a href="http://doc.qt.io/qt-5/qstandarditem.html#ItemType-enum">UserType</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QStandardItem::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of this item. The type is used to distinguish custom items from the base class. When subclassing <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a>, you should reimplement this function and return a new value greater than or equal to <a href="http://doc.qt.io/qt-5/qstandarditem.html#ItemType-enum">UserType</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#ItemType-enum">QStandardItem::Type</a>.</p></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_type(self as *const crate::QStandardItem)
    }

    /// <p>Returns the item's "What's This?" help.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QStandardItem::whatsThis() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#whatsThis">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item's "What's This?" help.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#setWhatsThis">setWhatsThis</a>(), <a href="http://doc.qt.io/qt-5/qstandarditem.html#toolTip">toolTip</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditem.html#statusTip">statusTip</a>().</p></div>
    #[inline(always)]
    pub unsafe fn whats_this(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItem_whatsThis(
            self as *const crate::QStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Writes the item to stream <i>out</i>. Only the data and flags of the item are written, not the child items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QStandardItem::write(QDataStream& out) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#write">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the item to stream <i>out</i>. Only the data and flags of the item are written, not the child items.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditem.html#read">read</a>().</p></div>
    #[inline(always)]
    pub unsafe fn write(
        &self,
        out: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QDataStream>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_write(
            self as *const crate::QStandardItem,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QDataStream>>::cast_into(out)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> class provides a generic model for storing custom data.</p>
///
/// C++ class: <span style='color: green;'>```QStandardItemModel```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> class provides a generic model for storing custom data.</p>
/// <p><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> can be used as a repository for standard Qt data types. It is one of the <a href="http://doc.qt.io/qt-5/model-view-programming.html#model-view-classes">Model/View Classes</a> and is part of Qt's <a href="http://doc.qt.io/qt-5/model-view-programming.html">model/view</a> framework.</p>
/// <p><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> provides a classic item-based approach to working with the model. The items in a <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> are provided by <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> implements the <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html">QAbstractItemModel</a> interface, which means that the model can be used to provide data in any view that supports that interface (such as <a href="http://doc.qt.io/qt-5/qlistview.html">QListView</a>, <a href="http://doc.qt.io/qt-5/qtableview.html">QTableView</a> and <a href="http://doc.qt.io/qt-5/qtreeview.html">QTreeView</a>, and your own custom views). For performance and flexibility, you may want to subclass <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html">QAbstractItemModel</a> to provide support for different kinds of data repositories. For example, the QDirModel provides a model interface to the underlying file system.</p>
/// <p>When you want a list or tree, you typically create an empty <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> and use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendRow">appendRow</a>() to add items to the model, and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#item">item</a>() to access an item. If your model represents a table, you typically pass the dimensions of the table to the <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> constructor and use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItem">setItem</a>() to position items into the table. You can also use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setRowCount">setRowCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setColumnCount">setColumnCount</a>() to alter the dimensions of the model. To insert items, use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow">insertRow</a>() or <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn">insertColumn</a>(), and to remove items, use <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeRow">removeRow</a>() or <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeColumn">removeColumn</a>().</p>
/// <p>You can set the header labels of your model with <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHorizontalHeaderLabels">setHorizontalHeaderLabels</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setVerticalHeaderLabels">setVerticalHeaderLabels</a>().</p>
/// <p>You can search for items in the model with <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#findItems">findItems</a>(), and sort the model by calling <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sort">sort</a>().</p>
/// <p>Call <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#clear">clear</a>() to remove all items from the model.</p>
/// <p>An example usage of <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> to create a table:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#QStandardItemModel">QStandardItemModel</a></span> model(<span class="number">4</span><span class="operator">,</span> <span class="number">4</span>);
///   <span class="keyword">for</span> (<span class="type">int</span> row <span class="operator">=</span> <span class="number">0</span>; row <span class="operator">&lt;</span> <span class="number">4</span>; <span class="operator">+</span><span class="operator">+</span>row) {
/// &#32;     <span class="keyword">for</span> (<span class="type">int</span> column <span class="operator">=</span> <span class="number">0</span>; column <span class="operator">&lt;</span> <span class="number">4</span>; <span class="operator">+</span><span class="operator">+</span>column) {
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span> <span class="operator">*</span>item <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span>(<span class="string">"row %0, column %1"</span>)<span class="operator">.</span>arg(row)<span class="operator">.</span>arg(column));
/// &#32;   &#32;     model<span class="operator">.</span>setItem(row<span class="operator">,</span> column<span class="operator">,</span> item);
/// &#32;     }
///   }
///
/// </pre>
/// <p>An example usage of <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> to create a tree:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#QStandardItemModel">QStandardItemModel</a></span> model;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span> <span class="operator">*</span>parentItem <span class="operator">=</span> model<span class="operator">.</span>invisibleRootItem();
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">4</span>; <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span> <span class="operator">*</span>item <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span>(<span class="string">"item %0"</span>)<span class="operator">.</span>arg(i));
/// &#32;     parentItem<span class="operator">-</span><span class="operator">&gt;</span>appendRow(item);
/// &#32;     parentItem <span class="operator">=</span> item;
///   }
///
/// </pre>
/// <p>After setting the model on a view, you typically want to react to user actions, such as an item being clicked. Since a <a href="http://doc.qt.io/qt-5/qabstractitemview.html">QAbstractItemView</a> provides <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a>-based signals and functions, you need a way to obtain the <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> that corresponds to a given <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a>, and vice versa. <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#indexFromItem">indexFromItem</a>() provide this mapping. Typical usage of <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>() includes obtaining the item at the current index in a view, and obtaining the item that corresponds to an index carried by a <a href="http://doc.qt.io/qt-5/qabstractitemview.html">QAbstractItemView</a> signal, such as <a href="http://doc.qt.io/qt-5/qabstractitemview.html#clicked">QAbstractItemView::clicked</a>(). First you connect the view's signal to a slot in your class:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qtreeview.html">QTreeView</a></span> <span class="operator">*</span>treeView <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreeview.html">QTreeView</a></span>(<span class="keyword">this</span>);
///   treeView<span class="operator">-</span><span class="operator">&gt;</span>setModel(myStandardItemModel);
///   connect(treeView<span class="operator">,</span> SIGNAL(clicked(<span class="type"><a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a></span>))<span class="operator">,</span>
/// &#32;   &#32;     <span class="keyword">this</span><span class="operator">,</span> SLOT(clicked(<span class="type"><a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a></span>)));
///
/// </pre>
/// <p>When you receive the signal, you call <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>() on the given model index to get a pointer to the item:</p>
/// <pre class="cpp">
///
///   <span class="type">void</span> MyWidget<span class="operator">::</span>clicked(<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a></span> <span class="operator">&amp;</span>index)
///   {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span> <span class="operator">*</span>item <span class="operator">=</span> myStandardItemModel<span class="operator">-</span><span class="operator">&gt;</span>itemFromIndex(index);
/// &#32;     <span class="comment">// Do stuff with the item ...</span>
///   }
///
/// </pre>
/// <p>Conversely, you must obtain the <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> of an item when you want to invoke a model/view function that takes an index as argument. You can obtain the index either by using the model's <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#indexFromItem">indexFromItem</a>() function, or, equivalently, by calling <a href="http://doc.qt.io/qt-5/qstandarditem.html#index">QStandardItem::index</a>():</p>
/// <pre class="cpp">
///
///   treeView<span class="operator">-</span><span class="operator">&gt;</span>scrollTo(item<span class="operator">-</span><span class="operator">&gt;</span>index());
///
/// </pre>
/// <p>You are, of course, not required to use the item-based approach; you could instead rely entirely on the <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html">QAbstractItemModel</a> interface when working with the model, or use a combination of the two as appropriate.</p></div>
#[repr(C)]
pub struct QStandardItemModel {
    _unused: u8,
}
impl QStandardItemModel {
    /// <p>This signal is emitted whenever the data of <i>item</i> has changed.</p>
    ///
    /// Returns a built-in Qt signal `QStandardItemModel::itemChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted whenever the data of <i>item</i> has changed.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub fn item_changed(&self) -> ::qt_core::Signal<(*mut crate::QStandardItem,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2itemChanged(QStandardItem*)\0"),
            )
        }
    }

    /// <p>Appends a column containing <i>items</i>. If necessary, the row count is increased to the size of <i>items</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::appendColumn(const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends a column containing <i>items</i>. If necessary, the row count is increased to the size of <i>items</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn">insertColumn</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendRow">appendRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_column(
        &mut self,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_appendColumn(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>Appends a row containing <i>items</i>. If necessary, the column count is increased to the size of <i>items</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::appendRow(const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends a row containing <i>items</i>. If necessary, the column count is increased to the size of <i>items</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow">insertRow</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendColumn">appendColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_row_q_list_of_q_standard_item(
        &mut self,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_appendRow(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::appendRow(QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendRow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>When building a list or a tree that has only one column, this function provides a convenient way to append a single new <i>item</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn append_row_q_standard_item(
        &mut self,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_appendRow1(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes all items (including header items) from the model and sets the number of rows and columns to zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items (including header items) from the model and sets the number of rows and columns to zero.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#removeColumns">removeColumns</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#removeRows">removeRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_clear(
            self as *mut crate::QStandardItemModel,
        )
    }

    /// <p>Removes the data stored in all the roles for the given <i>index</i>. Returns <code>true</code> if <i>index</i> is valid and data was cleared, <code>false</code> otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItemModel::clearItemData(const QModelIndex& index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#clearItemData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the data stored in all the roles for the given <i>index</i>. Returns <code>true</code> if <i>index</i> is valid and data was cleared, <code>false</code> otherwise.</p>
    /// <p>This function was introduced in  Qt 5.12.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setData">setData</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#data">data</a>().</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(cpp_lib_version = "5.12.2", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn clear_item_data(
        &mut self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_clearItemData(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#columnCount">QAbstractItemModel::columnCount</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QStandardItemModel::columnCount(const QModelIndex& parent = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#columnCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#columnCount">QAbstractItemModel::columnCount</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setColumnCount">setColumnCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column_count_1a(
        &self,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_columnCount(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#columnCount">QAbstractItemModel::columnCount</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QStandardItemModel::columnCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#columnCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#columnCount">QAbstractItemModel::columnCount</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setColumnCount">setColumnCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column_count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_columnCount1(
            self as *const crate::QStandardItemModel,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#data">QAbstractItemModel::data</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVariant QStandardItemModel::data(const QModelIndex& index, int role = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#data">QAbstractItemModel::data</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_2a(
        &self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
        role: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_data(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
            role,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#data">QAbstractItemModel::data</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVariant QStandardItemModel::data(const QModelIndex& index) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#data">QAbstractItemModel::data</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_1a(
        &self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_data1(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#dropMimeData">QAbstractItemModel::dropMimeData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#dropMimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#dropMimeData">QAbstractItemModel::dropMimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn drop_mime_data(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QMimeData>>,
        action: ::qt_core::DropAction,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_dropMimeData(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QMimeData>>::cast_into(data)
                .as_raw_ptr(),
            action,
            row,
            column,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a list of items that match the given <i>text</i>, using the given <i>flags</i>, in the given <i>column</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QStandardItemModel::findItems(const QString& text, QFlags<Qt::MatchFlag> flags = …, int column = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#findItems">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of items that match the given <i>text</i>, using the given <i>flags</i>, in the given <i>column</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn find_items_3a(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        flags: ::qt_core::QFlags<::qt_core::MatchFlag>,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_findItems(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            flags.to_int(),
            column,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of items that match the given <i>text</i>, using the given <i>flags</i>, in the given <i>column</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QStandardItemModel::findItems(const QString& text, QFlags<Qt::MatchFlag> flags = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#findItems">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of items that match the given <i>text</i>, using the given <i>flags</i>, in the given <i>column</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn find_items_2a(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        flags: ::qt_core::QFlags<::qt_core::MatchFlag>,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_findItems1(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
            flags.to_int(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a list of items that match the given <i>text</i>, using the given <i>flags</i>, in the given <i>column</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QStandardItemModel::findItems(const QString& text) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#findItems">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of items that match the given <i>text</i>, using the given <i>flags</i>, in the given <i>column</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn find_items_1a(
        &self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_findItems2(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#flags">QAbstractItemModel::flags</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QFlags<Qt::ItemFlag> QStandardItemModel::flags(const QModelIndex& index) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#flags">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#flags">QAbstractItemModel::flags</a>().</p></div>
    #[inline(always)]
    pub unsafe fn flags(
        &self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::qt_core::QFlags<::qt_core::ItemFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_flags(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#hasChildren">QAbstractItemModel::hasChildren</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::hasChildren(const QModelIndex& parent = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#hasChildren">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#hasChildren">QAbstractItemModel::hasChildren</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_children_1a(
        &self,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_hasChildren(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#hasChildren">QAbstractItemModel::hasChildren</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::hasChildren() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#hasChildren">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#hasChildren">QAbstractItemModel::hasChildren</a>().</p></div>
    #[inline(always)]
    pub unsafe fn has_children_0a(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_hasChildren1(
            self as *const crate::QStandardItemModel,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#headerData">QAbstractItemModel::headerData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVariant QStandardItemModel::headerData(int section, Qt::Orientation orientation, int role = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#headerData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#headerData">QAbstractItemModel::headerData</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHeaderData">setHeaderData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn header_data_3a(
        &self,
        section: ::std::os::raw::c_int,
        orientation: ::qt_core::Orientation,
        role: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_headerData(
            self as *const crate::QStandardItemModel,
            section,
            orientation,
            role,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#headerData">QAbstractItemModel::headerData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QVariant QStandardItemModel::headerData(int section, Qt::Orientation orientation) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#headerData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#headerData">QAbstractItemModel::headerData</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHeaderData">setHeaderData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn header_data_2a(
        &self,
        section: ::std::os::raw::c_int,
        orientation: ::qt_core::Orientation,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_headerData1(
            self as *const crate::QStandardItemModel,
            section,
            orientation,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the horizontal header item for <i>column</i> if one has been set; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::horizontalHeaderItem(int column) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#horizontalHeaderItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the horizontal header item for <i>column</i> if one has been set; otherwise returns 0.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHorizontalHeaderItem">setHorizontalHeaderItem</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#verticalHeaderItem">verticalHeaderItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn horizontal_header_item(
        &self,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_horizontalHeaderItem(
            self as *const crate::QStandardItemModel,
            column,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#index">QAbstractItemModel::index</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QModelIndex QStandardItemModel::index(int row, int column, const QModelIndex& parent = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#index">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#index">QAbstractItemModel::index</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_3a(
        &self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::cpp_core::CppBox<::qt_core::QModelIndex> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_index(
            self as *const crate::QStandardItemModel,
            row,
            column,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#index">QAbstractItemModel::index</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QModelIndex QStandardItemModel::index(int row, int column) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#index">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#index">QAbstractItemModel::index</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_2a(
        &self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QModelIndex> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_index1(
            self as *const crate::QStandardItemModel,
            row,
            column,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> associated with the given <i>item</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QModelIndex QStandardItemModel::indexFromItem(const QStandardItem* item) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#indexFromItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> associated with the given <i>item</i>.</p>
    /// <p>Use this function when you want to perform an operation that requires the <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> of the item, such as <a href="http://doc.qt.io/qt-5/qabstractitemview.html#scrollTo">QAbstractItemView::scrollTo</a>(). <a href="http://doc.qt.io/qt-5/qstandarditem.html#index">QStandardItem::index</a>() is provided as convenience; it is equivalent to calling this function.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#index">QStandardItem::index</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_from_item(
        &self,
        item: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QStandardItem>>,
    ) -> ::cpp_core::CppBox<::qt_core::QModelIndex> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_indexFromItem(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QStandardItem>>::cast_into(item)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Inserts a column at <i>column</i> containing <i>items</i>. If necessary, the row count is increased to the size of <i>items</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::insertColumn(int column, const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a column at <i>column</i> containing <i>items</i>. If necessary, the row count is increased to the size of <i>items</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeColumn">takeColumn</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendColumn">appendColumn</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow">insertRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_column_int_q_list_of_q_standard_item(
        &mut self,
        column: ::std::os::raw::c_int,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertColumn(
            self as *mut crate::QStandardItemModel,
            column,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts a single column before the given <i>column</i> in the child items of the <i>parent</i> specified. Returns <code>true</code> if the column is inserted; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItemModel::insertColumn(int column, const QModelIndex& parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a single column before the given <i>column</i> in the child items of the <i>parent</i> specified. Returns <code>true</code> if the column is inserted; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow">insertRow</a>(), and <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeColumn">removeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_column_int_q_model_index(
        &mut self,
        column: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertColumn1(
            self as *mut crate::QStandardItemModel,
            column,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts a single column before the given <i>column</i> in the child items of the <i>parent</i> specified. Returns <code>true</code> if the column is inserted; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItemModel::insertColumn(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a single column before the given <i>column</i> in the child items of the <i>parent</i> specified. Returns <code>true</code> if the column is inserted; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow">insertRow</a>(), and <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeColumn">removeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_column_int(&mut self, column: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertColumn2(
            self as *mut crate::QStandardItemModel,
            column,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#insertColumns">QAbstractItemModel::insertColumns</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::insertColumns(int column, int count, const QModelIndex& parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#insertColumns">QAbstractItemModel::insertColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_columns_3a(
        &mut self,
        column: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertColumns(
            self as *mut crate::QStandardItemModel,
            column,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#insertColumns">QAbstractItemModel::insertColumns</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::insertColumns(int column, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#insertColumns">QAbstractItemModel::insertColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_columns_2a(
        &mut self,
        column: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertColumns1(
            self as *mut crate::QStandardItemModel,
            column,
            count,
        )
    }

    /// <p>Inserts a row at <i>row</i> containing <i>items</i>. If necessary, the column count is increased to the size of <i>items</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::insertRow(int row, const QList<QStandardItem*>& items)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a row at <i>row</i> containing <i>items</i>. If necessary, the column count is increased to the size of <i>items</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeRow">takeRow</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendRow">appendRow</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn">insertColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_row_int_q_list_of_q_standard_item(
        &mut self,
        row: ::std::os::raw::c_int,
        items: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertRow(
            self as *mut crate::QStandardItemModel,
            row,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(items)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::insertRow(int row, QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts a row at <i>row</i> containing <i>item</i>.</p>
    /// <p>When building a list or a tree that has only one column, this function provides a convenient way to append a single new item.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn insert_row_int_q_standard_item(
        &mut self,
        row: ::std::os::raw::c_int,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertRow1(
            self as *mut crate::QStandardItemModel,
            row,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Inserts a single row before the given <i>row</i> in the child items of the <i>parent</i> specified. Returns <code>true</code> if the row is inserted; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItemModel::insertRow(int row, const QModelIndex& parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a single row before the given <i>row</i> in the child items of the <i>parent</i> specified. Returns <code>true</code> if the row is inserted; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn">insertColumn</a>(), and <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeRow">removeRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_row_int_q_model_index(
        &mut self,
        row: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertRow2(
            self as *mut crate::QStandardItemModel,
            row,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts a single row before the given <i>row</i> in the child items of the <i>parent</i> specified. Returns <code>true</code> if the row is inserted; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStandardItemModel::insertRow(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a single row before the given <i>row</i> in the child items of the <i>parent</i> specified. Returns <code>true</code> if the row is inserted; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn">insertColumn</a>(), and <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeRow">removeRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_row_int(&mut self, row: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertRow3(
            self as *mut crate::QStandardItemModel,
            row,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#insertRows">QAbstractItemModel::insertRows</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::insertRows(int row, int count, const QModelIndex& parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#insertRows">QAbstractItemModel::insertRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_rows_3a(
        &mut self,
        row: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertRows(
            self as *mut crate::QStandardItemModel,
            row,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#insertRows">QAbstractItemModel::insertRows</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::insertRows(int row, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#insertRows">QAbstractItemModel::insertRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_rows_2a(
        &mut self,
        row: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_insertRows1(
            self as *mut crate::QStandardItemModel,
            row,
            count,
        )
    }

    /// <p>Returns the model's invisible root item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::invisibleRootItem() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#invisibleRootItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the model's invisible root item.</p>
    /// <p>The invisible root item provides access to the model's top-level items through the <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> API, making it possible to write functions that can treat top-level items and their children in a uniform way; for example, recursive functions involving a tree model.</p>
    /// <p><b>Note: </b>Calling <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#index">index()</a> on the <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> object retrieved from this function is not valid.</p><p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn invisible_root_item(&self) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_invisibleRootItem(
            self as *const crate::QStandardItemModel,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the item for the given <i>row</i> and <i>column</i> if one has been set; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::item(int row, int column = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#item">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item for the given <i>row</i> and <i>column</i> if one has been set; otherwise returns 0.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItem">setItem</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeItem">takeItem</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>().</p></div>
    #[inline(always)]
    pub unsafe fn item_2a(
        &self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_item(
            self as *const crate::QStandardItemModel,
            row,
            column,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the item for the given <i>row</i> and <i>column</i> if one has been set; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::item(int row) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#item">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item for the given <i>row</i> and <i>column</i> if one has been set; otherwise returns 0.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItem">setItem</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeItem">takeItem</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>().</p></div>
    #[inline(always)]
    pub unsafe fn item_1a(
        &self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_item1(
            self as *const crate::QStandardItemModel,
            row,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#itemData">QAbstractItemModel::itemData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QMap<int, QVariant> QStandardItemModel::itemData(const QModelIndex& index) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#itemData">QAbstractItemModel::itemData</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItemData">setItemData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn item_data(
        &self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::cpp_core::CppBox<::qt_core::QMapOfIntQVariant> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_itemData(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a pointer to the <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> associated with the given <i>index</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::itemFromIndex(const QModelIndex& index) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> associated with the given <i>index</i>.</p>
    /// <p>Calling this function is typically the initial step when processing <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a>-based signals from a view, such as <a href="http://doc.qt.io/qt-5/qabstractitemview.html#activated">QAbstractItemView::activated</a>(). In your slot, you call itemFromIndex(), with the <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> carried by the signal as argument, to obtain a pointer to the corresponding <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a>.</p>
    /// <p>Note that this function will lazily create an item for the index (using <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemPrototype">itemPrototype</a>()), and set it in the parent item's child table, if no item already exists at that index.</p>
    /// <p>If <i>index</i> is an invalid index, this function returns 0.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#indexFromItem">indexFromItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn item_from_index(
        &self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_itemFromIndex(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the item prototype used by the model. The model uses the item prototype as an item factory when it needs to construct new items on demand (for instance, when a view or item delegate calls <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setData">setData</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QStandardItem* QStandardItemModel::itemPrototype() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemPrototype">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item prototype used by the model. The model uses the item prototype as an item factory when it needs to construct new items on demand (for instance, when a view or item delegate calls <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setData">setData</a>()).</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItemPrototype">setItemPrototype</a>().</p></div>
    #[inline(always)]
    pub unsafe fn item_prototype(&self) -> ::cpp_core::Ptr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_itemPrototype(
            self as *const crate::QStandardItemModel,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QStandardItemModel::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_metaObject(
            self as *const crate::QStandardItemModel,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#mimeData">QAbstractItemModel::mimeData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QMimeData* QStandardItemModel::mimeData(const QList<QModelIndex>& indexes) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#mimeData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#mimeData">QAbstractItemModel::mimeData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mime_data(
        &self,
        indexes: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QListOfQModelIndex>>,
    ) -> ::cpp_core::MutPtr<::qt_core::QMimeData> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_mimeData(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QListOfQModelIndex>>::cast_into(
                indexes,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#mimeTypes">QAbstractItemModel::mimeTypes</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QStringList QStandardItemModel::mimeTypes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#mimeTypes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#mimeTypes">QAbstractItemModel::mimeTypes</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mime_types(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_mimeTypes(
            self as *const crate::QStandardItemModel,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new item model with the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItemModel::QStandardItemModel(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#QStandardItemModel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new item model with the given <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QStandardItemModel> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_QStandardItemModel(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new item model that initially has <i>rows</i> rows and <i>columns</i> columns, and that has the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItemModel::QStandardItemModel(int rows, int columns, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#QStandardItemModel-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new item model that initially has <i>rows</i> rows and <i>columns</i> columns, and that has the given <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        rows: ::std::os::raw::c_int,
        columns: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QStandardItemModel> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_QStandardItemModel1(
            rows,
            columns,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> class provides a generic model for storing custom data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItemModel::QStandardItemModel()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> class provides a generic model for storing custom data.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> can be used as a repository for standard Qt data types. It is one of the <a href="http://doc.qt.io/qt-5/model-view-programming.html#model-view-classes">Model/View Classes</a> and is part of Qt's <a href="http://doc.qt.io/qt-5/model-view-programming.html">model/view</a> framework.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> provides a classic item-based approach to working with the model. The items in a <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> are provided by <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> implements the <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html">QAbstractItemModel</a> interface, which means that the model can be used to provide data in any view that supports that interface (such as <a href="http://doc.qt.io/qt-5/qlistview.html">QListView</a>, <a href="http://doc.qt.io/qt-5/qtableview.html">QTableView</a> and <a href="http://doc.qt.io/qt-5/qtreeview.html">QTreeView</a>, and your own custom views). For performance and flexibility, you may want to subclass <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html">QAbstractItemModel</a> to provide support for different kinds of data repositories. For example, the QDirModel provides a model interface to the underlying file system.</p>
    /// <p>When you want a list or tree, you typically create an empty <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> and use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#appendRow">appendRow</a>() to add items to the model, and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#item">item</a>() to access an item. If your model represents a table, you typically pass the dimensions of the table to the <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> constructor and use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItem">setItem</a>() to position items into the table. You can also use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setRowCount">setRowCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setColumnCount">setColumnCount</a>() to alter the dimensions of the model. To insert items, use <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertRow">insertRow</a>() or <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#insertColumn">insertColumn</a>(), and to remove items, use <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeRow">removeRow</a>() or <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeColumn">removeColumn</a>().</p>
    /// <p>You can set the header labels of your model with <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHorizontalHeaderLabels">setHorizontalHeaderLabels</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setVerticalHeaderLabels">setVerticalHeaderLabels</a>().</p>
    /// <p>You can search for items in the model with <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#findItems">findItems</a>(), and sort the model by calling <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sort">sort</a>().</p>
    /// <p>Call <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#clear">clear</a>() to remove all items from the model.</p>
    /// <p>An example usage of <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> to create a table:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#QStandardItemModel">QStandardItemModel</a></span> model(<span class="number">4</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="keyword">for</span> (<span class="type">int</span> row <span class="operator">=</span> <span class="number">0</span>; row <span class="operator">&lt;</span> <span class="number">4</span>; <span class="operator">+</span><span class="operator">+</span>row) {
    /// &#32;     <span class="keyword">for</span> (<span class="type">int</span> column <span class="operator">=</span> <span class="number">0</span>; column <span class="operator">&lt;</span> <span class="number">4</span>; <span class="operator">+</span><span class="operator">+</span>column) {
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span> <span class="operator">*</span>item <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span>(<span class="string">"row %0, column %1"</span>)<span class="operator">.</span>arg(row)<span class="operator">.</span>arg(column));
    /// &#32;   &#32;     model<span class="operator">.</span>setItem(row<span class="operator">,</span> column<span class="operator">,</span> item);
    /// &#32;     }
    ///   }
    ///
    /// </pre>
    /// <p>An example usage of <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> to create a tree:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#QStandardItemModel">QStandardItemModel</a></span> model;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span> <span class="operator">*</span>parentItem <span class="operator">=</span> model<span class="operator">.</span>invisibleRootItem();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">4</span>; <span class="operator">+</span><span class="operator">+</span>i) {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span> <span class="operator">*</span>item <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span>(<span class="string">"item %0"</span>)<span class="operator">.</span>arg(i));
    /// &#32;     parentItem<span class="operator">-</span><span class="operator">&gt;</span>appendRow(item);
    /// &#32;     parentItem <span class="operator">=</span> item;
    ///   }
    ///
    /// </pre>
    /// <p>After setting the model on a view, you typically want to react to user actions, such as an item being clicked. Since a <a href="http://doc.qt.io/qt-5/qabstractitemview.html">QAbstractItemView</a> provides <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a>-based signals and functions, you need a way to obtain the <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> that corresponds to a given <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a>, and vice versa. <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#indexFromItem">indexFromItem</a>() provide this mapping. Typical usage of <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>() includes obtaining the item at the current index in a view, and obtaining the item that corresponds to an index carried by a <a href="http://doc.qt.io/qt-5/qabstractitemview.html">QAbstractItemView</a> signal, such as <a href="http://doc.qt.io/qt-5/qabstractitemview.html#clicked">QAbstractItemView::clicked</a>(). First you connect the view's signal to a slot in your class:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qtreeview.html">QTreeView</a></span> <span class="operator">*</span>treeView <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreeview.html">QTreeView</a></span>(<span class="keyword">this</span>);
    ///   treeView<span class="operator">-</span><span class="operator">&gt;</span>setModel(myStandardItemModel);
    ///   connect(treeView<span class="operator">,</span> SIGNAL(clicked(<span class="type"><a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a></span>))<span class="operator">,</span>
    /// &#32;   &#32;     <span class="keyword">this</span><span class="operator">,</span> SLOT(clicked(<span class="type"><a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a></span>)));
    ///
    /// </pre>
    /// <p>When you receive the signal, you call <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemFromIndex">itemFromIndex</a>() on the given model index to get a pointer to the item:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">void</span> MyWidget<span class="operator">::</span>clicked(<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a></span> <span class="operator">&amp;</span>index)
    ///   {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a></span> <span class="operator">*</span>item <span class="operator">=</span> myStandardItemModel<span class="operator">-</span><span class="operator">&gt;</span>itemFromIndex(index);
    /// &#32;     <span class="comment">// Do stuff with the item ...</span>
    ///   }
    ///
    /// </pre>
    /// <p>Conversely, you must obtain the <a href="http://doc.qt.io/qt-5/qmodelindex.html">QModelIndex</a> of an item when you want to invoke a model/view function that takes an index as argument. You can obtain the index either by using the model's <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#indexFromItem">indexFromItem</a>() function, or, equivalently, by calling <a href="http://doc.qt.io/qt-5/qstandarditem.html#index">QStandardItem::index</a>():</p>
    /// <pre class="cpp">
    ///
    ///   treeView<span class="operator">-</span><span class="operator">&gt;</span>scrollTo(item<span class="operator">-</span><span class="operator">&gt;</span>index());
    ///
    /// </pre>
    /// <p>You are, of course, not required to use the item-based approach; you could instead rely entirely on the <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html">QAbstractItemModel</a> interface when working with the model, or use a combination of the two as appropriate.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QStandardItemModel> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_QStandardItemModel2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new item model that initially has <i>rows</i> rows and <i>columns</i> columns, and that has the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStandardItemModel::QStandardItemModel(int rows, int columns)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#QStandardItemModel-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new item model that initially has <i>rows</i> rows and <i>columns</i> columns, and that has the given <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        rows: ::std::os::raw::c_int,
        columns: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QStandardItemModel> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_QStandardItemModel3(rows, columns);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#parent">QAbstractItemModel::parent</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QModelIndex QStandardItemModel::parent(const QModelIndex& child) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#parent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#parent">QAbstractItemModel::parent</a>().</p></div>
    #[inline(always)]
    pub unsafe fn parent(
        &self,
        child: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::cpp_core::CppBox<::qt_core::QModelIndex> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_parent(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(child)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QStandardItemModel::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_qt_metacall(
            self as *mut crate::QStandardItemModel,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QStandardItemModel::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_qt_metacast(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeColumns">QAbstractItemModel::removeColumns</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::removeColumns(int column, int count, const QModelIndex& parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#removeColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeColumns">QAbstractItemModel::removeColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_columns_3a(
        &mut self,
        column: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_removeColumns(
            self as *mut crate::QStandardItemModel,
            column,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeColumns">QAbstractItemModel::removeColumns</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::removeColumns(int column, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#removeColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeColumns">QAbstractItemModel::removeColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_columns_2a(
        &mut self,
        column: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_removeColumns1(
            self as *mut crate::QStandardItemModel,
            column,
            count,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeRows">QAbstractItemModel::removeRows</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::removeRows(int row, int count, const QModelIndex& parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#removeRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeRows">QAbstractItemModel::removeRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_rows_3a(
        &mut self,
        row: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_removeRows(
            self as *mut crate::QStandardItemModel,
            row,
            count,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeRows">QAbstractItemModel::removeRows</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::removeRows(int row, int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#removeRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#removeRows">QAbstractItemModel::removeRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_rows_2a(
        &mut self,
        row: ::std::os::raw::c_int,
        count: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_removeRows1(
            self as *mut crate::QStandardItemModel,
            row,
            count,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#rowCount">QAbstractItemModel::rowCount</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QStandardItemModel::rowCount(const QModelIndex& parent = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#rowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#rowCount">QAbstractItemModel::rowCount</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setRowCount">setRowCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row_count_1a(
        &self,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_rowCount(
            self as *const crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(parent)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#rowCount">QAbstractItemModel::rowCount</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual int QStandardItemModel::rowCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#rowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#rowCount">QAbstractItemModel::rowCount</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setRowCount">setRowCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row_count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_rowCount1(
            self as *const crate::QStandardItemModel,
        )
    }

    /// <p>Sets the number of columns in this model to <i>columns</i>. If this is less than <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#columnCount">columnCount</a>(), the data in the unwanted columns is discarded.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setColumnCount(int columns)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setColumnCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of columns in this model to <i>columns</i>. If this is less than <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#columnCount">columnCount</a>(), the data in the unwanted columns is discarded.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#columnCount">columnCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setRowCount">setRowCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_column_count(&mut self, columns: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setColumnCount(
            self as *mut crate::QStandardItemModel,
            columns,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setData">QAbstractItemModel::setData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::setData(const QModelIndex& index, const QVariant& value, int role = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setData">QAbstractItemModel::setData</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#data">data</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data_3a(
        &mut self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
        role: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setData(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
            role,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setData">QAbstractItemModel::setData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::setData(const QModelIndex& index, const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setData">QAbstractItemModel::setData</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#data">data</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data_2a(
        &mut self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setData1(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setHeaderData">QAbstractItemModel::setHeaderData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant& value, int role = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHeaderData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setHeaderData">QAbstractItemModel::setHeaderData</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#headerData">headerData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_header_data_4a(
        &mut self,
        section: ::std::os::raw::c_int,
        orientation: ::qt_core::Orientation,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
        role: ::std::os::raw::c_int,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setHeaderData(
            self as *mut crate::QStandardItemModel,
            section,
            orientation,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
            role,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setHeaderData">QAbstractItemModel::setHeaderData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHeaderData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setHeaderData">QAbstractItemModel::setHeaderData</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#headerData">headerData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_header_data_3a(
        &mut self,
        section: ::std::os::raw::c_int,
        orientation: ::qt_core::Orientation,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setHeaderData1(
            self as *mut crate::QStandardItemModel,
            section,
            orientation,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the horizontal header item for <i>column</i> to <i>item</i>. The model takes ownership of the item. If necessary, the column count is increased to fit the item. The previous header item (if there was one) is deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setHorizontalHeaderItem(int column, QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHorizontalHeaderItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the horizontal header item for <i>column</i> to <i>item</i>. The model takes ownership of the item. If necessary, the column count is increased to fit the item. The previous header item (if there was one) is deleted.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#horizontalHeaderItem">horizontalHeaderItem</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHorizontalHeaderLabels">setHorizontalHeaderLabels</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setVerticalHeaderItem">setVerticalHeaderItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_horizontal_header_item(
        &mut self,
        column: ::std::os::raw::c_int,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setHorizontalHeaderItem(
            self as *mut crate::QStandardItemModel,
            column,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the horizontal header labels using <i>labels</i>. If necessary, the column count is increased to the size of <i>labels</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setHorizontalHeaderLabels(const QStringList& labels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHorizontalHeaderLabels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the horizontal header labels using <i>labels</i>. If necessary, the column count is increased to the size of <i>labels</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHorizontalHeaderItem">setHorizontalHeaderItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_horizontal_header_labels(
        &mut self,
        labels: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setHorizontalHeaderLabels(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(labels)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the item for the given <i>row</i> and <i>column</i> to <i>item</i>. The model takes ownership of the item. If necessary, the row count and column count are increased to fit the item. The previous item at the given location (if there was one) is deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setItem(int row, int column, QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item for the given <i>row</i> and <i>column</i> to <i>item</i>. The model takes ownership of the item. If necessary, the row count and column count are increased to fit the item. The previous item at the given location (if there was one) is deleted.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#item">item</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_item_3a(
        &mut self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setItem(
            self as *mut crate::QStandardItemModel,
            row,
            column,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setItem(int row, QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItem-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn set_item_2a(
        &mut self,
        row: ::std::os::raw::c_int,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setItem1(
            self as *mut crate::QStandardItemModel,
            row,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setItemData">QAbstractItemModel::setItemData</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItemModel::setItemData(const QModelIndex& index, const QMap<int, QVariant>& roles)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItemData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#setItemData">QAbstractItemModel::setItemData</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemData">itemData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_item_data(
        &mut self,
        index: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
        roles: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QMapOfIntQVariant>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setItemData(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(index)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QMapOfIntQVariant>>::cast_into(roles)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the item prototype for the model to the specified <i>item</i>. The model takes ownership of the prototype.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setItemPrototype(const QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItemPrototype">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item prototype for the model to the specified <i>item</i>. The model takes ownership of the prototype.</p>
    /// <p>The item prototype acts as a <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> factory, by relying on the <a href="http://doc.qt.io/qt-5/qstandarditem.html#clone">QStandardItem::clone</a>() function. To provide your own prototype, subclass <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a>, reimplement <a href="http://doc.qt.io/qt-5/qstandarditem.html#clone">QStandardItem::clone</a>() and set the prototype to be an instance of your custom class. Whenever <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> needs to create an item on demand (for instance, when a view or item delegate calls <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setData">setData</a>())), the new items will be instances of your custom class.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#itemPrototype">itemPrototype</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#clone">QStandardItem::clone</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_item_prototype(
        &mut self,
        item: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setItemPrototype(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QStandardItem>>::cast_into(item)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the item role names to <i>roleNames</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setItemRoleNames(const QHash<int, QByteArray>& roleNames)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setItemRoleNames">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the item role names to <i>roleNames</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_item_role_names(
        &mut self,
        role_names: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QHashOfIntQByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setItemRoleNames(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QHashOfIntQByteArray>>::cast_into(
                role_names,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Sets the number of rows in this model to <i>rows</i>. If this is less than <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#rowCount">rowCount</a>(), the data in the unwanted rows is discarded.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setRowCount(int rows)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setRowCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the number of rows in this model to <i>rows</i>. If this is less than <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#rowCount">rowCount</a>(), the data in the unwanted rows is discarded.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#rowCount">rowCount</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setColumnCount">setColumnCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_row_count(&mut self, rows: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setRowCount(
            self as *mut crate::QStandardItemModel,
            rows,
        )
    }

    /// <p>This property holds the item role that is used to query the model's data when sorting items</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setSortRole(int role)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sortRole-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the item role that is used to query the model's data when sorting items</p>
    /// <p>The default value is <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::DisplayRole</a>.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>sortRole</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortRole</b></span>(int <i>role</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sort">sort</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#sortChildren">QStandardItem::sortChildren</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_sort_role(&mut self, role: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setSortRole(
            self as *mut crate::QStandardItemModel,
            role,
        )
    }

    /// <p>Sets the vertical header item for <i>row</i> to <i>item</i>. The model takes ownership of the item. If necessary, the row count is increased to fit the item. The previous header item (if there was one) is deleted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setVerticalHeaderItem(int row, QStandardItem* item)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setVerticalHeaderItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the vertical header item for <i>row</i> to <i>item</i>. The model takes ownership of the item. If necessary, the row count is increased to fit the item. The previous header item (if there was one) is deleted.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#verticalHeaderItem">verticalHeaderItem</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setVerticalHeaderLabels">setVerticalHeaderLabels</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setHorizontalHeaderItem">setHorizontalHeaderItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_vertical_header_item(
        &mut self,
        row: ::std::os::raw::c_int,
        item: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setVerticalHeaderItem(
            self as *mut crate::QStandardItemModel,
            row,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(item)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the vertical header labels using <i>labels</i>. If necessary, the row count is increased to the size of <i>labels</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStandardItemModel::setVerticalHeaderLabels(const QStringList& labels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setVerticalHeaderLabels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the vertical header labels using <i>labels</i>. If necessary, the row count is increased to the size of <i>labels</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setVerticalHeaderItem">setVerticalHeaderItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_vertical_header_labels(
        &mut self,
        labels: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_setVerticalHeaderLabels(
            self as *mut crate::QStandardItemModel,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(labels)
                .as_raw_ptr(),
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#sibling">QAbstractItemModel::sibling</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QModelIndex QStandardItemModel::sibling(int row, int column, const QModelIndex& idx) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sibling">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#sibling">QAbstractItemModel::sibling</a>().</p></div>
    #[inline(always)]
    pub unsafe fn sibling(
        &self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
        idx: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QModelIndex>>,
    ) -> ::cpp_core::CppBox<::qt_core::QModelIndex> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_sibling(
            self as *const crate::QStandardItemModel,
            row,
            column,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QModelIndex>>::cast_into(idx)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#sort">QAbstractItemModel::sort</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QStandardItemModel::sort(int column, Qt::SortOrder order = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sort">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#sort">QAbstractItemModel::sort</a>().</p></div>
    #[inline(always)]
    pub unsafe fn sort_2a(&mut self, column: ::std::os::raw::c_int, order: ::qt_core::SortOrder) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_sort(
            self as *mut crate::QStandardItemModel,
            column,
            order,
        )
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#sort">QAbstractItemModel::sort</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QStandardItemModel::sort(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sort">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#sort">QAbstractItemModel::sort</a>().</p></div>
    #[inline(always)]
    pub unsafe fn sort_1a(&mut self, column: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_sort1(
            self as *mut crate::QStandardItemModel,
            column,
        )
    }

    /// <p>This property holds the item role that is used to query the model's data when sorting items</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStandardItemModel::sortRole() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sortRole-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the item role that is used to query the model's data when sorting items</p>
    /// <p>The default value is <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::DisplayRole</a>.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>sortRole</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortRole</b></span>(int <i>role</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sort">sort</a>() and <a href="http://doc.qt.io/qt-5/qstandarditem.html#sortChildren">QStandardItem::sortChildren</a>().</p></div>
    #[inline(always)]
    pub unsafe fn sort_role(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_sortRole(
            self as *const crate::QStandardItemModel,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#supportedDropActions">QAbstractItemModel::supportedDropActions</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QFlags<Qt::DropAction> QStandardItemModel::supportedDropActions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#supportedDropActions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qabstractitemmodel.html#supportedDropActions">QAbstractItemModel::supportedDropActions</a>().</p>
    /// <p><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html">QStandardItemModel</a> supports both copy and move.</p></div>
    #[inline(always)]
    pub unsafe fn supported_drop_actions(&self) -> ::qt_core::QFlags<::qt_core::DropAction> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_supportedDropActions(
            self as *const crate::QStandardItemModel,
        );
        ::qt_core::QFlags::from(ffi_result)
    }

    /// <p>Removes the given <i>column</i> without deleting the column items, and returns a list of pointers to the removed items. The model releases ownership of the items. For items in the column that have not been set, the corresponding pointers in the list will be 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QStandardItemModel::takeColumn(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeColumn">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the given <i>column</i> without deleting the column items, and returns a list of pointers to the removed items. The model releases ownership of the items. For items in the column that have not been set, the corresponding pointers in the list will be 0.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeRow">takeRow</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_column(
        &mut self,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_takeColumn(
            self as *mut crate::QStandardItemModel,
            column,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the horizontal header item at <i>column</i> from the header without deleting it, and returns a pointer to the item. The model releases ownership of the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::takeHorizontalHeaderItem(int column)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeHorizontalHeaderItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the horizontal header item at <i>column</i> from the header without deleting it, and returns a pointer to the item. The model releases ownership of the item.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#horizontalHeaderItem">horizontalHeaderItem</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeVerticalHeaderItem">takeVerticalHeaderItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_horizontal_header_item(
        &mut self,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_takeHorizontalHeaderItem(
            self as *mut crate::QStandardItemModel,
            column,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the item at (<i>row</i>, <i>column</i>) without deleting it. The model releases ownership of the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::takeItem(int row, int column = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at (<i>row</i>, <i>column</i>) without deleting it. The model releases ownership of the item.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#item">item</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeRow">takeRow</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeColumn">takeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_item_2a(
        &mut self,
        row: ::std::os::raw::c_int,
        column: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_takeItem(
            self as *mut crate::QStandardItemModel,
            row,
            column,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the item at (<i>row</i>, <i>column</i>) without deleting it. The model releases ownership of the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::takeItem(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at (<i>row</i>, <i>column</i>) without deleting it. The model releases ownership of the item.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#item">item</a>(), <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeRow">takeRow</a>(), and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeColumn">takeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_item_1a(
        &mut self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_takeItem1(
            self as *mut crate::QStandardItemModel,
            row,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the given <i>row</i> without deleting the row items, and returns a list of pointers to the removed items. The model releases ownership of the items. For items in the row that have not been set, the corresponding pointers in the list will be 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QStandardItemModel::takeRow(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeRow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the given <i>row</i> without deleting the row items, and returns a list of pointers to the removed items. The model releases ownership of the items. For items in the row that have not been set, the corresponding pointers in the list will be 0.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeColumn">takeColumn</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_row(
        &mut self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_takeRow(
            self as *mut crate::QStandardItemModel,
            row,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the vertical header item at <i>row</i> from the header without deleting it, and returns a pointer to the item. The model releases ownership of the item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::takeVerticalHeaderItem(int row)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeVerticalHeaderItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the vertical header item at <i>row</i> from the header without deleting it, and returns a pointer to the item. The model releases ownership of the item.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#verticalHeaderItem">verticalHeaderItem</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#takeHorizontalHeaderItem">takeHorizontalHeaderItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_vertical_header_item(
        &mut self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_takeVerticalHeaderItem(
            self as *mut crate::QStandardItemModel,
            row,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QStandardItemModel::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QStandardItemModel::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the vertical header item for row <i>row</i> if one has been set; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QStandardItemModel::verticalHeaderItem(int row) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#verticalHeaderItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the vertical header item for row <i>row</i> if one has been set; otherwise returns 0.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#setVerticalHeaderItem">setVerticalHeaderItem</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#horizontalHeaderItem">horizontalHeaderItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn vertical_header_item(
        &self,
        row: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_verticalHeaderItem(
            self as *const crate::QStandardItemModel,
            row,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

pub mod q_static_text {
    //! C++ type: <span style='color: green;'>```QStaticText```</span>

    /// <p>This enum the different performance hints that can be set on the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>. These hints can be used to indicate that the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> should use additional caches, if possible, to improve performance at the expense of memory. In particular, setting the performance hint AggressiveCaching on the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> will improve performance when using the OpenGL graphics system or when drawing to a <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a>.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QStaticText::PerformanceHint```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#PerformanceHint-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum the different performance hints that can be set on the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>. These hints can be used to indicate that the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> should use additional caches, if possible, to improve performance at the expense of memory. In particular, setting the performance hint AggressiveCaching on the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> will improve performance when using the OpenGL graphics system or when drawing to a <a href="http://doc.qt.io/qt-5/qopenglwidget.html">QOpenGLWidget</a>.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PerformanceHint(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PerformanceHint {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PerformanceHint(value)
        }
    }

    impl From<PerformanceHint> for ::std::os::raw::c_int {
        fn from(value: PerformanceHint) -> Self {
            value.0
        }
    }

    impl PerformanceHint {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PerformanceHint {
        /// Do basic caching for high performance at a low memory cost. (C++ enum variant: <span style='color: green;'>```ModerateCaching = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const ModerateCaching: crate::q_static_text::PerformanceHint =
            crate::q_static_text::PerformanceHint(0);
        /// Use additional caching when available. This may improve performance at a higher memory cost. (C++ enum variant: <span style='color: green;'>```AggressiveCaching = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const AggressiveCaching: crate::q_static_text::PerformanceHint =
            crate::q_static_text::PerformanceHint(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> class enables optimized drawing of text when the text and its layout is updated rarely.</p>
///
/// C++ class: <span style='color: green;'>```QStaticText```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qstatictext.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> class enables optimized drawing of text when the text and its layout is updated rarely.</p>
/// <p><a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> provides a way to cache layout data for a block of text so that it can be drawn more efficiently than by using <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">QPainter::drawText</a>() in which the layout information is recalculated with every call.</p>
/// <p>The class primarily provides an optimization for cases where the text, its font and the transformations on the painter are static over several paint events. If the text or its layout is changed for every iteration, <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">QPainter::drawText</a>() is the more efficient alternative, since the static text's layout would have to be recalculated to take the new state into consideration.</p>
/// <p>Translating the painter will not cause the layout of the text to be recalculated, but will cause a very small performance impact on drawStaticText(). Altering any other parts of the painter's transformation or the painter's font will cause the layout of the static text to be recalculated. This should be avoided as often as possible to maximize the performance benefit of using <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
/// <p>In addition, only affine transformations are supported by drawStaticText(). Calling drawStaticText() on a projected painter will perform slightly worse than using the regular drawText() call, so this should be avoided.</p>
/// <pre class="cpp">
///
///   <span class="keyword">class</span> MyWidget: <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span>
///   {
///   <span class="keyword">public</span>:
/// &#32;     MyWidget(<span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span>parent <span class="operator">=</span> <span class="number">0</span>) : <span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span>(parent)<span class="operator">,</span> m_staticText(<span class="string">"This is static text"</span>)
///
///   <span class="keyword">protected</span>:
/// &#32;     <span class="type">void</span> paintEvent(<span class="type"><a href="http://doc.qt.io/qt-5/qpaintevent.html">QPaintEvent</a></span> <span class="operator">*</span>)
/// &#32;     {
/// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a></span> painter(<span class="keyword">this</span>);
/// &#32;   &#32;     painter<span class="operator">.</span>drawStaticText(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> m_staticText);
/// &#32;     }
///
///   <span class="keyword">private</span>:
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstatictext.html#QStaticText">QStaticText</a></span> m_staticText;
///   };
///
/// </pre>
/// <p>The <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> class can be used to mimic the behavior of <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">QPainter::drawText</a>() to a specific point with no boundaries, and also when <a href="http://doc.qt.io/qt-5/qpainter.html#drawText">QPainter::drawText</a>() is called with a bounding rectangle.</p>
/// <p>If a bounding rectangle is not required, create a <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object without setting a preferred text width. The text will then occupy a single line.</p>
/// <p>If you set a text width on the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object, this will bound the text. The text will be formatted so that no line exceeds the given width. The text width set for <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> will not automatically be used for clipping. To achieve clipping in addition to line breaks, use <a href="http://doc.qt.io/qt-5/qpainter.html#setClipRect">QPainter::setClipRect</a>(). The position of the text is decided by the argument passed to <a href="http://doc.qt.io/qt-5/qpainter.html#drawStaticText">QPainter::drawStaticText</a>() and can change from call to call with a minimal impact on performance.</p>
/// <p>For extra convenience, it is possible to apply formatting to the text using the HTML subset supported by <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>. <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> will attempt to guess the format of the input text using <a href="http://doc.qt.io/qt-5/qt.html#mightBeRichText">Qt::mightBeRichText</a>(), and interpret it as rich text if this function returns <code>true</code>. To force <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> to display its contents as either plain text or rich text, use the function <a href="http://doc.qt.io/qt-5/qstatictext.html#setTextFormat">QStaticText::setTextFormat</a>() and pass in, respectively, <a href="http://doc.qt.io/qt-5/qt.html#TextFormat-enum">Qt::PlainText</a> and <a href="http://doc.qt.io/qt-5/qt.html#TextFormat-enum">Qt::RichText</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> can only represent text, so only HTML tags which alter the layout or appearance of the text will be respected. Adding an image to the input HTML, for instance, will cause the image to be included as part of the layout, affecting the positions of the text glyphs, but it will not be displayed. The result will be an empty area the size of the image in the output. Similarly, using tables will cause the text to be laid out in table format, but the borders will not be drawn.</p>
/// <p>If it's the first time the static text is drawn, or if the static text, or the painter's font has been altered since the last time it was drawn, the text's layout has to be recalculated. On some paint engines, changing the matrix of the painter will also cause the layout to be recalculated. In particular, this will happen for any engine except for the OpenGL2 paint engine. Recalculating the layout will impose an overhead on the <a href="http://doc.qt.io/qt-5/qpainter.html#drawStaticText">QPainter::drawStaticText</a>() call where it occurs. To avoid this overhead in the paint event, you can call <a href="http://doc.qt.io/qt-5/qstatictext.html#prepare">prepare</a>() ahead of time to ensure that the layout is calculated.</p></div>
#[repr(C)]
pub struct QStaticText {
    _unused: u8,
}
impl QStaticText {
    /// <p>Assigns <i>other</i> to this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStaticText& QStaticText::operator=(const QStaticText& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#operator-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QStaticText>>,
    ) -> ::cpp_core::MutRef<crate::QStaticText> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStaticText_operator_1(
            self as *mut crate::QStaticText,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QStaticText>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an empty <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStaticText::QStaticText()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#QStaticText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a></p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QStaticText> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStaticText_QStaticText();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object with the given <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStaticText::QStaticText(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#QStaticText-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object with the given <i>text</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QStaticText> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStaticText_QStaticText1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object which is a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QStaticText::QStaticText(const QStaticText& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#QStaticText-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object which is a copy of <i>other</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QStaticText>>,
    ) -> ::cpp_core::CppBox<crate::QStaticText> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStaticText_QStaticText2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QStaticText>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns which performance hint is set for the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStaticText::PerformanceHint QStaticText::performanceHint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#performanceHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns which performance hint is set for the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#setPerformanceHint">setPerformanceHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn performance_hint(&self) -> crate::q_static_text::PerformanceHint {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_performanceHint(self as *const crate::QStaticText)
    }

    /// <p>Prepares the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object for being painted with the given <i>matrix</i> and the given <i>font</i> to avoid overhead when the actual drawStaticText() call is made.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::prepare(const QTransform& matrix = …, const QFont& font = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#prepare">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Prepares the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object for being painted with the given <i>matrix</i> and the given <i>font</i> to avoid overhead when the actual drawStaticText() call is made.</p>
    /// <p>When drawStaticText() is called, the layout of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> will be recalculated if any part of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object has changed since the last time it was drawn. It will also be recalculated if the painter's font is not the same as when the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> was last drawn, or, on any other paint engine than the OpenGL2 engine, if the painter's matrix has been altered since the static text was last drawn.</p>
    /// <p>To avoid the overhead of creating the layout the first time you draw the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> after making changes, you can use the prepare() function and pass in the <i>matrix</i> and <i>font</i> you expect to use when drawing the text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">QPainter::setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setMatrix">QPainter::setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepare_2a(
        &mut self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
        font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_prepare(
            self as *mut crate::QStaticText,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        )
    }

    /// <p>Prepares the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object for being painted with the given <i>matrix</i> and the given <i>font</i> to avoid overhead when the actual drawStaticText() call is made.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::prepare(const QTransform& matrix = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#prepare">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Prepares the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object for being painted with the given <i>matrix</i> and the given <i>font</i> to avoid overhead when the actual drawStaticText() call is made.</p>
    /// <p>When drawStaticText() is called, the layout of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> will be recalculated if any part of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object has changed since the last time it was drawn. It will also be recalculated if the painter's font is not the same as when the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> was last drawn, or, on any other paint engine than the OpenGL2 engine, if the painter's matrix has been altered since the static text was last drawn.</p>
    /// <p>To avoid the overhead of creating the layout the first time you draw the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> after making changes, you can use the prepare() function and pass in the <i>matrix</i> and <i>font</i> you expect to use when drawing the text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">QPainter::setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setMatrix">QPainter::setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepare_1a(
        &mut self,
        matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_prepare1(
            self as *mut crate::QStaticText,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(matrix)
                .as_raw_ptr(),
        )
    }

    /// <p>Prepares the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object for being painted with the given <i>matrix</i> and the given <i>font</i> to avoid overhead when the actual drawStaticText() call is made.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::prepare()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#prepare">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Prepares the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object for being painted with the given <i>matrix</i> and the given <i>font</i> to avoid overhead when the actual drawStaticText() call is made.</p>
    /// <p>When drawStaticText() is called, the layout of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> will be recalculated if any part of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> object has changed since the last time it was drawn. It will also be recalculated if the painter's font is not the same as when the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> was last drawn, or, on any other paint engine than the OpenGL2 engine, if the painter's matrix has been altered since the static text was last drawn.</p>
    /// <p>To avoid the overhead of creating the layout the first time you draw the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> after making changes, you can use the prepare() function and pass in the <i>matrix</i> and <i>font</i> you expect to use when drawing the text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#setFont">QPainter::setFont</a>() and <a href="http://doc.qt.io/qt-5/qpainter-obsolete.html#setMatrix">QPainter::setMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepare_0a(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_prepare2(self as *mut crate::QStaticText)
    }

    /// <p>Sets the performance hint of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> according to the <i>performanceHint</i> provided. The <i>performanceHint</i> is used to customize how much caching is done internally to improve performance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::setPerformanceHint(QStaticText::PerformanceHint performanceHint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#setPerformanceHint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the performance hint of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> according to the <i>performanceHint</i> provided. The <i>performanceHint</i> is used to customize how much caching is done internally to improve performance.</p>
    /// <p>The default is <a href="http://doc.qt.io/qt-5/qstatictext.html#PerformanceHint-enum">QStaticText::ModerateCaching</a>.</p>
    /// <p><b>Note: </b>This function will cause the layout of the text to require recalculation.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#performanceHint">performanceHint</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_performance_hint(
        &mut self,
        performance_hint: crate::q_static_text::PerformanceHint,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_setPerformanceHint(
            self as *mut crate::QStaticText,
            performance_hint,
        )
    }

    /// <p>Sets the text of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> to <i>text</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::setText(const QString& text)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#setText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> to <i>text</i>.</p>
    /// <p><b>Note: </b>This function will cause the layout of the text to require recalculation.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#text">text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text(
        &mut self,
        text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_setText(
            self as *mut crate::QStaticText,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(text)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the text format of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> to <i>textFormat</i>. If <i>textFormat</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#TextFormat-enum">Qt::AutoText</a> (the default), the format of the text will try to be determined using the function <a href="http://doc.qt.io/qt-5/qt.html#mightBeRichText">Qt::mightBeRichText</a>(). If the text format is <a href="http://doc.qt.io/qt-5/qt.html#TextFormat-enum">Qt::PlainText</a>, then the text will be displayed as is, whereas it will be interpreted as HTML if the format is <a href="http://doc.qt.io/qt-5/qt.html#TextFormat-enum">Qt::RichText</a>. HTML tags that alter the font of the text, its color, or its layout are supported by <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::setTextFormat(Qt::TextFormat textFormat)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#setTextFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text format of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a> to <i>textFormat</i>. If <i>textFormat</i> is set to <a href="http://doc.qt.io/qt-5/qt.html#TextFormat-enum">Qt::AutoText</a> (the default), the format of the text will try to be determined using the function <a href="http://doc.qt.io/qt-5/qt.html#mightBeRichText">Qt::mightBeRichText</a>(). If the text format is <a href="http://doc.qt.io/qt-5/qt.html#TextFormat-enum">Qt::PlainText</a>, then the text will be displayed as is, whereas it will be interpreted as HTML if the format is <a href="http://doc.qt.io/qt-5/qt.html#TextFormat-enum">Qt::RichText</a>. HTML tags that alter the font of the text, its color, or its layout are supported by <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    /// <p><b>Note: </b>This function will cause the layout of the text to require recalculation.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#textFormat">textFormat</a>(), <a href="http://doc.qt.io/qt-5/qstatictext.html#setText">setText</a>(), and <a href="http://doc.qt.io/qt-5/qstatictext.html#text">text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_format(&mut self, text_format: ::qt_core::TextFormat) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_setTextFormat(
            self as *mut crate::QStaticText,
            text_format,
        )
    }

    /// <p>Sets the text option structure that controls the layout process to the given <i>textOption</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::setTextOption(const QTextOption& textOption)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#setTextOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the text option structure that controls the layout process to the given <i>textOption</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#textOption">textOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_option(
        &mut self,
        text_option: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextOption>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_setTextOption(
            self as *mut crate::QStaticText,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextOption>>::cast_into(text_option)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the preferred width for this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>. If the text is wider than the specified width, it will be broken into multiple lines and grow vertically. If the text cannot be split into multiple lines, it will be larger than the specified <i>textWidth</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::setTextWidth(double textWidth)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#setTextWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the preferred width for this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>. If the text is wider than the specified width, it will be broken into multiple lines and grow vertically. If the text cannot be split into multiple lines, it will be larger than the specified <i>textWidth</i>.</p>
    /// <p>Setting the preferred text width to a negative number will cause the text to be unbounded.</p>
    /// <p>Use <a href="http://doc.qt.io/qt-5/qstatictext.html#size">size</a>() to get the actual size of the text.</p>
    /// <p><b>Note: </b>This function will cause the layout of the text to require recalculation.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#textWidth">textWidth</a>() and <a href="http://doc.qt.io/qt-5/qstatictext.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_text_width(&mut self, text_width: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_setTextWidth(
            self as *mut crate::QStaticText,
            text_width,
        )
    }

    /// <p>Returns the size of the bounding rect for this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QStaticText::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the bounding rect for this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#textWidth">textWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSizeF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStaticText_size(self as *const crate::QStaticText);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this static text instance with <i>other</i>. This function is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStaticText::swap(QStaticText& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this static text instance with <i>other</i>. This function is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 5.0.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QStaticText>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_swap(
            self as *mut crate::QStaticText,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QStaticText>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the text of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QStaticText::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#setText">setText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStaticText_text(self as *const crate::QStaticText);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text format of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::TextFormat QStaticText::textFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#textFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text format of the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#setTextFormat">setTextFormat</a>(), <a href="http://doc.qt.io/qt-5/qstatictext.html#setText">setText</a>(), and <a href="http://doc.qt.io/qt-5/qstatictext.html#text">text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_format(&self) -> ::qt_core::TextFormat {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_textFormat(self as *const crate::QStaticText)
    }

    /// <p>Returns the current text option used to control the layout process.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption QStaticText::textOption() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#textOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current text option used to control the layout process.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#setTextOption">setTextOption</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_option(&self) -> ::cpp_core::CppBox<crate::QTextOption> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStaticText_textOption(self as *const crate::QStaticText);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the preferred width for this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QStaticText::textWidth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#textWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the preferred width for this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#setTextWidth">setTextWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_width(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_textWidth(self as *const crate::QStaticText)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qstylehints.html">QStyleHints</a> class contains platform specific hints and settings.</p>
///
/// C++ class: <span style='color: green;'>```QStyleHints```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qstylehints.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstylehints.html">QStyleHints</a> class contains platform specific hints and settings.</p>
/// <p>An object of this class, obtained from <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a>, provides access to certain global user interface parameters of the current platform.</p>
/// <p>Access is read only; typically the platform itself provides the user a way to tune these parameters.</p>
/// <p>Access to these parameters are useful when implementing custom user interface components, in that they allow the components to exhibit the same behaviour and feel as other components.</p></div>
#[repr(C)]
pub struct QStyleHints {
    _unused: u8,
}
impl QStyleHints {
    /// <p>This property holds the text cursor's flash (blink) time in milliseconds.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::cursorFlashTimeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#cursorFlashTime-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the text cursor's flash (blink) time in milliseconds.</p>
    /// <p>The flash time is the time used to display, invert and restore the caret display. Usually the text cursor is displayed for half the cursor flash time, then hidden for the same amount of time.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>cursorFlashTime</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cursorFlashTimeChanged</b></span>(int <i>cursorFlashTime</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn cursor_flash_time_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2cursorFlashTimeChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the time limit, in milliseconds, that distinguishes a key press from two consecutive key presses.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::keyboardInputIntervalChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#keyboardInputInterval-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time limit, in milliseconds, that distinguishes a key press from two consecutive key presses.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardInputInterval</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardInputIntervalChanged</b></span>(int <i>keyboardInputInterval</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn keyboard_input_interval_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2keyboardInputIntervalChanged(int)\0",
                ),
            )
        }
    }

    /// <p>This property holds the time limit in milliseconds that distinguishes a double click from two consecutive mouse clicks.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::mouseDoubleClickIntervalChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#mouseDoubleClickInterval-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time limit in milliseconds that distinguishes a double click from two consecutive mouse clicks.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mouseDoubleClickInterval</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mouseDoubleClickIntervalChanged</b></span>(int <i>mouseDoubleClickInterval</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn mouse_double_click_interval_changed(
        &self,
    ) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2mouseDoubleClickIntervalChanged(int)\0",
                ),
            )
        }
    }

    /// <p>This property holds the time limit in milliseconds that activates a press and hold.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::mousePressAndHoldIntervalChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#mousePressAndHoldInterval-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time limit in milliseconds that activates a press and hold.</p>
    /// <p>This property was introduced in  Qt 5.3.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mousePressAndHoldInterval</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mousePressAndHoldIntervalChanged</b></span>(int <i>mousePressAndHoldInterval</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn mouse_press_and_hold_interval_changed(
        &self,
    ) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2mousePressAndHoldIntervalChanged(int)\0",
                ),
            )
        }
    }

    /// <p>This property holds the distance, in pixels, that the mouse must be moved with a button held down before a drag and drop operation will begin.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::startDragDistanceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#startDragDistance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the distance, in pixels, that the mouse must be moved with a button held down before a drag and drop operation will begin.</p>
    /// <p>If you support drag and drop in your application, and want to start a drag and drop operation after the user has moved the cursor a certain distance with a button held down, you should use this property's value as the minimum distance required.</p>
    /// <p>For example, if the mouse position of the click is stored in <code>startPos</code> and the current position (e.g. in the mouse move event) is <code>currentPos</code>, you can find out if a drag should be started with code like this:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">if</span> ((startPos <span class="operator">-</span> currentPos)<span class="operator">.</span>manhattanLength() <span class="operator">&gt;</span><span class="operator">=</span>
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a></span><span class="operator">::</span>startDragDistance())
    /// &#32;     startTheDrag();
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragDistance</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragDistanceChanged</b></span>(int <i>startDragDistance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstylehints.html#startDragTime-prop">startDragTime</a>, <a href="http://doc.qt.io/qt-5/qpoint.html#manhattanLength">QPoint::manhattanLength</a>(), and <a href="http://doc.qt.io/qt-5/dnd.html">Drag and Drop</a>.</p></div>
    #[inline(always)]
    pub fn start_drag_distance_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2startDragDistanceChanged(int)\0",
                ),
            )
        }
    }

    /// <p>This property holds the time, in milliseconds, that a mouse button must be held down before a drag and drop operation will begin.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::startDragTimeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#startDragTime-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time, in milliseconds, that a mouse button must be held down before a drag and drop operation will begin.</p>
    /// <p>If you support drag and drop in your application, and want to start a drag and drop operation after the user has held down a mouse button for a certain amount of time, you should use this property's value as the delay.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragTime</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragTimeChanged</b></span>(int <i>startDragTime</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstylehints.html#startDragDistance-prop">startDragDistance</a> and <a href="http://doc.qt.io/qt-5/dnd.html">Drag and Drop</a>.</p></div>
    #[inline(always)]
    pub fn start_drag_time_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2startDragTimeChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the focus behavior on press of the tab key.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::tabFocusBehaviorChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#tabFocusBehavior-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the focus behavior on press of the tab key.</p>
    /// <p><b>Note: </b>Do not bind this value in QML because the change notifier signal is not implemented yet.</p><p>This property was introduced in  Qt 5.5.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::TabFocusBehavior </td><td class="memItemRight bottomAlign"><span class="name"><b>tabFocusBehavior</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tabFocusBehaviorChanged</b></span>(Qt::TabFocusBehavior <i>tabFocusBehavior</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn tab_focus_behavior_changed(&self) -> ::qt_core::Signal<(::qt_core::TabFocusBehavior,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2tabFocusBehaviorChanged(Qt::TabFocusBehavior)\0",
                ),
            )
        }
    }

    /// <p>This property holds whether UI elements use hover effects.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::useHoverEffectsChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#useHoverEffects-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether UI elements use hover effects.</p>
    /// <p>This property is <code>true</code> if UI elements should use hover effects. This is the standard behavior on desktop platforms with a mouse pointer, whereas on touch platforms the overhead of hover event delivery can be avoided.</p>
    /// <p>This property was introduced in  Qt 5.8.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>useHoverEffects</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUseHoverEffects</b></span>(bool <i>useHoverEffects</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>useHoverEffectsChanged</b></span>(bool <i>useHoverEffects</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn use_hover_effects_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2useHoverEffectsChanged(bool)\0"),
            )
        }
    }

    /// <p>Number of lines to scroll by default for each wheel click.</p>
    ///
    /// Returns a built-in Qt signal `QStyleHints::wheelScrollLinesChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#wheelScrollLines-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Number of lines to scroll by default for each wheel click.</p>
    /// <p>This property was introduced in  Qt 5.9.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>wheelScrollLines</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>wheelScrollLinesChanged</b></span>(int <i>scrollLines</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn wheel_scroll_lines_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2wheelScrollLinesChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the text cursor's flash (blink) time in milliseconds.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::cursorFlashTime() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#cursorFlashTime-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the text cursor's flash (blink) time in milliseconds.</p>
    /// <p>The flash time is the time used to display, invert and restore the caret display. Usually the text cursor is displayed for half the cursor flash time, then hidden for the same amount of time.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>cursorFlashTime</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cursorFlashTimeChanged</b></span>(int <i>cursorFlashTime</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn cursor_flash_time(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_cursorFlashTime(self as *const crate::QStyleHints)
    }

    /// <p>This property holds the gamma value used in font smoothing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QStyleHints::fontSmoothingGamma() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#fontSmoothingGamma-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the gamma value used in font smoothing.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> qreal </td><td class="memItemRight bottomAlign"><span class="name"><b>fontSmoothingGamma</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn font_smoothing_gamma(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_fontSmoothingGamma(
            self as *const crate::QStyleHints,
        )
    }

    /// <p>This property holds the rate, in events per second, in which additional repeated key presses will automatically be generated if a key is being held down.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::keyboardAutoRepeatRate() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#keyboardAutoRepeatRate-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the rate, in events per second, in which additional repeated key presses will automatically be generated if a key is being held down.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardAutoRepeatRate</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn keyboard_auto_repeat_rate(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_keyboardAutoRepeatRate(
            self as *const crate::QStyleHints,
        )
    }

    /// <p>This property holds the time limit, in milliseconds, that distinguishes a key press from two consecutive key presses.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::keyboardInputInterval() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#keyboardInputInterval-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time limit, in milliseconds, that distinguishes a key press from two consecutive key presses.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardInputInterval</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>keyboardInputIntervalChanged</b></span>(int <i>keyboardInputInterval</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn keyboard_input_interval(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_keyboardInputInterval(
            self as *const crate::QStyleHints,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QStyleHints::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStyleHints_metaObject(self as *const crate::QStyleHints);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>This property holds the time limit in milliseconds that distinguishes a double click from two consecutive mouse clicks.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::mouseDoubleClickInterval() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#mouseDoubleClickInterval-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time limit in milliseconds that distinguishes a double click from two consecutive mouse clicks.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mouseDoubleClickInterval</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mouseDoubleClickIntervalChanged</b></span>(int <i>mouseDoubleClickInterval</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn mouse_double_click_interval(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_mouseDoubleClickInterval(
            self as *const crate::QStyleHints,
        )
    }

    /// <p>This property holds the time limit in milliseconds that activates a press and hold.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::mousePressAndHoldInterval() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#mousePressAndHoldInterval-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time limit in milliseconds that activates a press and hold.</p>
    /// <p>This property was introduced in  Qt 5.3.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mousePressAndHoldInterval</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mousePressAndHoldIntervalChanged</b></span>(int <i>mousePressAndHoldInterval</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn mouse_press_and_hold_interval(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_mousePressAndHoldInterval(
            self as *const crate::QStyleHints,
        )
    }

    /// <p>Quick selection mouse threshold in <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::mouseQuickSelectionThreshold() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#mouseQuickSelectionThreshold-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Quick selection mouse threshold in <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a>.</p>
    /// <p>This property defines how much the mouse cursor should be moved along the y axis to trigger a quick selection during a normal <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a> text selection.</p>
    /// <p>If the property value is less than or equal to 0, the quick selection feature is disabled.</p>
    /// <p>This property was introduced in  Qt 5.11.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mouseQuickSelectionThreshold</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mouseQuickSelectionThresholdChanged</b></span>(int <i>threshold</i>)</td></tr>
    /// </tbody></table></div></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn mouse_quick_selection_threshold(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_mouseQuickSelectionThreshold(
            self as *const crate::QStyleHints,
        )
    }

    /// <p>Quick selection mouse threshold in <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::mouseQuickSelectionThresholdChanged(int threshold)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#mouseQuickSelectionThreshold-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Quick selection mouse threshold in <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a>.</p>
    /// <p>This property defines how much the mouse cursor should be moved along the y axis to trigger a quick selection during a normal <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a> text selection.</p>
    /// <p>If the property value is less than or equal to 0, the quick selection feature is disabled.</p>
    /// <p>This property was introduced in  Qt 5.11.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mouseQuickSelectionThreshold</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mouseQuickSelectionThresholdChanged</b></span>(int <i>threshold</i>)</td></tr>
    /// </tbody></table></div></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn mouse_quick_selection_threshold_changed(
        &mut self,
        threshold: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_mouseQuickSelectionThresholdChanged(
            self as *mut crate::QStyleHints,
            threshold,
        )
    }

    /// <p>This property holds the character used to mask the characters typed into text input fields in password mode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QChar QStyleHints::passwordMaskCharacter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#passwordMaskCharacter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the character used to mask the characters typed into text input fields in password mode.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QChar </td><td class="memItemRight bottomAlign"><span class="name"><b>passwordMaskCharacter</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn password_mask_character(&self) -> ::cpp_core::CppBox<::qt_core::QChar> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStyleHints_passwordMaskCharacter(
            self as *const crate::QStyleHints,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the time, in milliseconds, a typed letter is displayed unshrouded in a text input field in password mode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::passwordMaskDelay() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#passwordMaskDelay-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time, in milliseconds, a typed letter is displayed unshrouded in a text input field in password mode.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>passwordMaskDelay</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn password_mask_delay(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_passwordMaskDelay(
            self as *const crate::QStyleHints,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QStyleHints::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_qt_metacall(
            self as *mut crate::QStyleHints,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QStyleHints::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStyleHints_qt_metacast(
            self as *mut crate::QStyleHints,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setCursorFlashTime(int cursorFlashTime)```</span>.
    #[inline(always)]
    pub unsafe fn set_cursor_flash_time(&mut self, cursor_flash_time: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setCursorFlashTime(
            self as *mut crate::QStyleHints,
            cursor_flash_time,
        )
    }

    /// <p>This property holds the event that should set input focus on focus objects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStyleHints::setFocusOnTouchRelease() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#setFocusOnTouchRelease-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the event that should set input focus on focus objects.</p>
    /// <p>This property is <code>true</code> if focus objects (line edits etc) should receive input focus after a touch/mouse release. This is normal behavior on touch platforms. On desktop platforms, the standard is to set focus already on touch/mouse press.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>setFocusOnTouchRelease</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_focus_on_touch_release(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setFocusOnTouchRelease(
            self as *const crate::QStyleHints,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setKeyboardInputInterval(int keyboardInputInterval)```</span>.
    #[inline(always)]
    pub unsafe fn set_keyboard_input_interval(
        &mut self,
        keyboard_input_interval: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setKeyboardInputInterval(
            self as *mut crate::QStyleHints,
            keyboard_input_interval,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setMouseDoubleClickInterval(int mouseDoubleClickInterval)```</span>.
    #[inline(always)]
    pub unsafe fn set_mouse_double_click_interval(
        &mut self,
        mouse_double_click_interval: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setMouseDoubleClickInterval(
            self as *mut crate::QStyleHints,
            mouse_double_click_interval,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setMousePressAndHoldInterval(int mousePressAndHoldInterval)```</span>.
    #[inline(always)]
    pub unsafe fn set_mouse_press_and_hold_interval(
        &mut self,
        mouse_press_and_hold_interval: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setMousePressAndHoldInterval(
            self as *mut crate::QStyleHints,
            mouse_press_and_hold_interval,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setMouseQuickSelectionThreshold(int threshold)```</span>.
    ///
    ///
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_mouse_quick_selection_threshold(&mut self, threshold: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setMouseQuickSelectionThreshold(
            self as *mut crate::QStyleHints,
            threshold,
        )
    }

    /// <p><code>true</code> if the platform normally shows shortcut key sequences in context menus, otherwise <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setShowShortcutsInContextMenus(bool showShortcutsInContextMenus)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#showShortcutsInContextMenus-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><code>true</code> if the platform normally shows shortcut key sequences in context menus, otherwise <code>false</code>.</p>
    /// <p>Since Qt 5.13, the setShowShortcutsInContextMenus() function can be used to override the platform default.</p>
    /// <p>This property was introduced in  Qt 5.10.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>showShortcutsInContextMenus</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShowShortcutsInContextMenus</b></span>(bool <i>showShortcutsInContextMenus</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>showShortcutsInContextMenusChanged</b></span>(<i>bool</i>)</td></tr>
    /// </tbody></table></div></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_show_shortcuts_in_context_menus(
        &mut self,
        show_shortcuts_in_context_menus: bool,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setShowShortcutsInContextMenus(
            self as *mut crate::QStyleHints,
            show_shortcuts_in_context_menus,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setStartDragDistance(int startDragDistance)```</span>.
    #[inline(always)]
    pub unsafe fn set_start_drag_distance(&mut self, start_drag_distance: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setStartDragDistance(
            self as *mut crate::QStyleHints,
            start_drag_distance,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setStartDragTime(int startDragTime)```</span>.
    #[inline(always)]
    pub unsafe fn set_start_drag_time(&mut self, start_drag_time: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setStartDragTime(
            self as *mut crate::QStyleHints,
            start_drag_time,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setTabFocusBehavior(Qt::TabFocusBehavior tabFocusBehavior)```</span>.
    #[inline(always)]
    pub unsafe fn set_tab_focus_behavior(
        &mut self,
        tab_focus_behavior: ::qt_core::TabFocusBehavior,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setTabFocusBehavior(
            self as *mut crate::QStyleHints,
            tab_focus_behavior,
        )
    }

    /// <p>This property holds whether UI elements use hover effects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setUseHoverEffects(bool useHoverEffects)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#useHoverEffects-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether UI elements use hover effects.</p>
    /// <p>This property is <code>true</code> if UI elements should use hover effects. This is the standard behavior on desktop platforms with a mouse pointer, whereas on touch platforms the overhead of hover event delivery can be avoided.</p>
    /// <p>This property was introduced in  Qt 5.8.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>useHoverEffects</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUseHoverEffects</b></span>(bool <i>useHoverEffects</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>useHoverEffectsChanged</b></span>(bool <i>useHoverEffects</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_use_hover_effects(&mut self, use_hover_effects: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setUseHoverEffects(
            self as *mut crate::QStyleHints,
            use_hover_effects,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::setWheelScrollLines(int scrollLines)```</span>.
    #[inline(always)]
    pub unsafe fn set_wheel_scroll_lines(&mut self, scroll_lines: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_setWheelScrollLines(
            self as *mut crate::QStyleHints,
            scroll_lines,
        )
    }

    /// <p>This property holds whether the platform defaults to fullscreen windows.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStyleHints::showIsFullScreen() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#showIsFullScreen-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the platform defaults to fullscreen windows.</p>
    /// <p>This property is <code>true</code> if the platform defaults to windows being fullscreen, otherwise <code>false</code>.</p>
    /// <p><b>Note: </b>The platform may still choose to show certain windows non-fullscreen, such as popups or dialogs. This property only reports the default behavior.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>showIsFullScreen</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#show">QWindow::show</a>() and <a href="http://doc.qt.io/qt-5/qstylehints.html#showIsMaximized-prop">showIsMaximized</a>().</p></div>
    #[inline(always)]
    pub unsafe fn show_is_full_screen(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_showIsFullScreen(self as *const crate::QStyleHints)
    }

    /// <p>This property holds whether the platform defaults to maximized windows.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStyleHints::showIsMaximized() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#showIsMaximized-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether the platform defaults to maximized windows.</p>
    /// <p>This property is <code>true</code> if the platform defaults to windows being maximized, otherwise <code>false</code>.</p>
    /// <p><b>Note: </b>The platform may still choose to show certain windows non-maximized, such as popups or dialogs. This property only reports the default behavior.</p><p>This property was introduced in  Qt 5.6.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>showIsMaximized</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#show">QWindow::show</a>() and <a href="http://doc.qt.io/qt-5/qstylehints.html#showIsFullScreen-prop">showIsFullScreen</a>().</p></div>
    #[inline(always)]
    pub unsafe fn show_is_maximized(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_showIsMaximized(self as *const crate::QStyleHints)
    }

    /// <p><code>true</code> if the platform normally shows shortcut key sequences in context menus, otherwise <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStyleHints::showShortcutsInContextMenus() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#showShortcutsInContextMenus-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><code>true</code> if the platform normally shows shortcut key sequences in context menus, otherwise <code>false</code>.</p>
    /// <p>This property was introduced in  Qt 5.10.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>showShortcutsInContextMenus</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn show_shortcuts_in_context_menus(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_showShortcutsInContextMenus(
            self as *const crate::QStyleHints,
        )
    }

    /// <p><code>true</code> if the platform normally shows shortcut key sequences in context menus, otherwise <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QStyleHints::showShortcutsInContextMenusChanged(bool arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#showShortcutsInContextMenus-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><code>true</code> if the platform normally shows shortcut key sequences in context menus, otherwise <code>false</code>.</p>
    /// <p>Since Qt 5.13, the setShowShortcutsInContextMenus() function can be used to override the platform default.</p>
    /// <p>This property was introduced in  Qt 5.10.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>showShortcutsInContextMenus</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShowShortcutsInContextMenus</b></span>(bool <i>showShortcutsInContextMenus</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>showShortcutsInContextMenusChanged</b></span>(<i>bool</i>)</td></tr>
    /// </tbody></table></div></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn show_shortcuts_in_context_menus_changed(&mut self, arg1: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_showShortcutsInContextMenusChanged(
            self as *mut crate::QStyleHints,
            arg1,
        )
    }

    /// <p>This property holds whether items are activated by single or double click.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStyleHints::singleClickActivation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#singleClickActivation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether items are activated by single or double click.</p>
    /// <p>This property is <code>true</code> if items should be activated by single click, <code>false</code> if they should be activated by double click instead.</p>
    /// <p>This property was introduced in  Qt 5.5.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>singleClickActivation</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn single_click_activation(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_singleClickActivation(
            self as *const crate::QStyleHints,
        )
    }

    /// <p>This property holds the distance, in pixels, that the mouse must be moved with a button held down before a drag and drop operation will begin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::startDragDistance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#startDragDistance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the distance, in pixels, that the mouse must be moved with a button held down before a drag and drop operation will begin.</p>
    /// <p>If you support drag and drop in your application, and want to start a drag and drop operation after the user has moved the cursor a certain distance with a button held down, you should use this property's value as the minimum distance required.</p>
    /// <p>For example, if the mouse position of the click is stored in <code>startPos</code> and the current position (e.g. in the mouse move event) is <code>currentPos</code>, you can find out if a drag should be started with code like this:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">if</span> ((startPos <span class="operator">-</span> currentPos)<span class="operator">.</span>manhattanLength() <span class="operator">&gt;</span><span class="operator">=</span>
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qapplication.html">QApplication</a></span><span class="operator">::</span>startDragDistance())
    /// &#32;     startTheDrag();
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragDistance</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragDistanceChanged</b></span>(int <i>startDragDistance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstylehints.html#startDragTime-prop">startDragTime</a>, <a href="http://doc.qt.io/qt-5/qpoint.html#manhattanLength">QPoint::manhattanLength</a>(), and <a href="http://doc.qt.io/qt-5/dnd.html">Drag and Drop</a>.</p></div>
    #[inline(always)]
    pub unsafe fn start_drag_distance(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_startDragDistance(
            self as *const crate::QStyleHints,
        )
    }

    /// <p>This property holds the time, in milliseconds, that a mouse button must be held down before a drag and drop operation will begin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::startDragTime() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#startDragTime-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the time, in milliseconds, that a mouse button must be held down before a drag and drop operation will begin.</p>
    /// <p>If you support drag and drop in your application, and want to start a drag and drop operation after the user has held down a mouse button for a certain amount of time, you should use this property's value as the delay.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragTime</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragTimeChanged</b></span>(int <i>startDragTime</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstylehints.html#startDragDistance-prop">startDragDistance</a> and <a href="http://doc.qt.io/qt-5/dnd.html">Drag and Drop</a>.</p></div>
    #[inline(always)]
    pub unsafe fn start_drag_time(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_startDragTime(self as *const crate::QStyleHints)
    }

    /// <p>This property holds the limit for the velocity, in pixels per second, that the mouse may be moved, with a button held down, for a drag and drop operation to begin. A value of 0 means there is no such limit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::startDragVelocity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#startDragVelocity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the limit for the velocity, in pixels per second, that the mouse may be moved, with a button held down, for a drag and drop operation to begin. A value of 0 means there is no such limit.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>startDragVelocity</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstylehints.html#startDragDistance-prop">startDragDistance</a> and <a href="http://doc.qt.io/qt-5/dnd.html">Drag and Drop</a>.</p></div>
    #[inline(always)]
    pub unsafe fn start_drag_velocity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_startDragVelocity(
            self as *const crate::QStyleHints,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStyleHints_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This property holds the focus behavior on press of the tab key.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::TabFocusBehavior QStyleHints::tabFocusBehavior() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#tabFocusBehavior-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the focus behavior on press of the tab key.</p>
    /// <p><b>Note: </b>Do not bind this value in QML because the change notifier signal is not implemented yet.</p><p>This property was introduced in  Qt 5.5.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt::TabFocusBehavior </td><td class="memItemRight bottomAlign"><span class="name"><b>tabFocusBehavior</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tabFocusBehaviorChanged</b></span>(Qt::TabFocusBehavior <i>tabFocusBehavior</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn tab_focus_behavior(&self) -> ::qt_core::TabFocusBehavior {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_tabFocusBehavior(self as *const crate::QStyleHints)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QStyleHints::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStyleHints_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QStyleHints::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QStyleHints_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds whether UI elements use hover effects.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStyleHints::useHoverEffects() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#useHoverEffects-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds whether UI elements use hover effects.</p>
    /// <p>This property is <code>true</code> if UI elements should use hover effects. This is the standard behavior on desktop platforms with a mouse pointer, whereas on touch platforms the overhead of hover event delivery can be avoided.</p>
    /// <p>This property was introduced in  Qt 5.8.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>useHoverEffects</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUseHoverEffects</b></span>(bool <i>useHoverEffects</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>useHoverEffectsChanged</b></span>(bool <i>useHoverEffects</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn use_hover_effects(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_useHoverEffects(self as *const crate::QStyleHints)
    }

    /// <p>This property holds the writing direction.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStyleHints::useRtlExtensions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#useRtlExtensions-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the writing direction.</p>
    /// <p>This property is <code>true</code> if right-to-left writing direction is enabled, otherwise <code>false</code>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>useRtlExtensions</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn use_rtl_extensions(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_useRtlExtensions(self as *const crate::QStyleHints)
    }

    /// <p>Number of lines to scroll by default for each wheel click.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QStyleHints::wheelScrollLines() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html#wheelScrollLines-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Number of lines to scroll by default for each wheel click.</p>
    /// <p>This property was introduced in  Qt 5.9.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>wheelScrollLines</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>wheelScrollLinesChanged</b></span>(int <i>scrollLines</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn wheel_scroll_lines(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_wheelScrollLines(self as *const crate::QStyleHints)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextobject.html">QTextObject</a> class is a base class for different kinds of objects that can group parts of a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> together.</p>
///
/// C++ class: <span style='color: green;'>```QTextObject```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextobject.html">QTextObject</a> class is a base class for different kinds of objects that can group parts of a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> together.</p>
/// <p>The common grouping text objects are lists (<a href="http://doc.qt.io/qt-5/qtextlist.html">QTextList</a>), frames (<a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a>), and tables (<a href="http://doc.qt.io/qt-5/qtexttable.html">QTextTable</a>). A text object has an associated <a href="http://doc.qt.io/qt-5/qtextobject.html#format">format</a>() and <a href="http://doc.qt.io/qt-5/qtextobject.html#document">document</a>().</p>
/// <p>There are essentially two kinds of text objects: those that are used with blocks (block formats), and those that are used with characters (character formats). The first kind are derived from <a href="http://doc.qt.io/qt-5/qtextblockgroup.html">QTextBlockGroup</a>, and the second kind from <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a>.</p>
/// <p>You rarely need to use this class directly. When creating custom text objects, you will also need to reimplement <a href="http://doc.qt.io/qt-5/qtextdocument.html#createObject">QTextDocument::createObject</a>() which acts as a factory method for creating text objects.</p></div>
#[repr(C)]
pub struct QTextObject {
    _unused: u8,
}
impl QTextObject {
    /// <p>Returns the document this object belongs to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextDocument* QTextObject::document() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextobject.html#document">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document this object belongs to.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextobject.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn document(&self) -> ::cpp_core::MutPtr<crate::QTextDocument> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextObject_document(self as *const crate::QTextObject);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the text object's format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat QTextObject::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextobject.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text object's format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextobject.html#setFormat">setFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextobject.html#document">document</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextObject_format(self as *const crate::QTextObject);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the index of the object's format in the document's internal list of formats.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextObject::formatIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextobject.html#formatIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the object's format in the document's internal list of formats.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#allFormats">QTextDocument::allFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextObject_formatIndex(self as *const crate::QTextObject)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QTextObject::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextObject_metaObject(self as *const crate::QTextObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the object index of this object. This can be used together with <a href="http://doc.qt.io/qt-5/qtextformat.html#setObjectIndex">QTextFormat::setObjectIndex</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextObject::objectIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextobject.html#objectIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the object index of this object. This can be used together with <a href="http://doc.qt.io/qt-5/qtextformat.html#setObjectIndex">QTextFormat::setObjectIndex</a>().</p></div>
    #[inline(always)]
    pub unsafe fn object_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextObject_objectIndex(self as *const crate::QTextObject)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QTextObject::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextObject_qt_metacall(
            self as *mut crate::QTextObject,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QTextObject::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextObject_qt_metacast(
            self as *mut crate::QTextObject,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextObject_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextObject::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextObject_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextObject::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextObject_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextblockgroup.html">QTextBlockGroup</a> class provides a container for text blocks within a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextBlockGroup```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextblockgroup.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockgroup.html">QTextBlockGroup</a> class provides a container for text blocks within a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>Block groups can be used to organize blocks of text within a document. They maintain an up-to-date list of the text blocks that belong to them, even when text blocks are being edited.</p>
/// <p>Each group has a parent document which is specified when the group is constructed.</p>
/// <p>Text blocks can be inserted into a group with <a href="http://doc.qt.io/qt-5/qtextblockgroup.html#blockInserted">blockInserted</a>(), and removed with <a href="http://doc.qt.io/qt-5/qtextblockgroup.html#blockRemoved">blockRemoved</a>(). If a block's format is changed, <a href="http://doc.qt.io/qt-5/qtextblockgroup.html#blockFormatChanged">blockFormatChanged</a>() is called.</p>
/// <p>The list of blocks in the group is returned by <a href="http://doc.qt.io/qt-5/qtextblockgroup.html#blockList">blockList</a>(). Note that the blocks in the list are not necessarily adjacent elements in the document; for example, the top-level items in a multi-level list will be separated by the items in lower levels of the list.</p></div>
#[repr(C)]
pub struct QTextBlockGroup {
    _unused: u8,
}
impl QTextBlockGroup {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QTextBlockGroup::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockGroup_metaObject(
            self as *const crate::QTextBlockGroup,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QTextBlockGroup::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockGroup_qt_metacall(
            self as *mut crate::QTextBlockGroup,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QTextBlockGroup::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockGroup_qt_metacast(
            self as *mut crate::QTextBlockGroup,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockGroup_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextBlockGroup::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockGroup_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextBlockGroup::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockGroup_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_text_frame {
    //! C++ type: <span style='color: green;'>```QTextFrame```</span>

    /// <p>The iterator class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QTextFrame::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The iterator class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a>.</p>
    /// <p>A frame consists of an arbitrary sequence of <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>s and child <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a>s. This class provides a way to iterate over the child objects of a frame, and read their contents. It does not provide a way to modify the contents of the frame.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>Returns <code>true</code> if the current item is the last item in the text block.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QTextFrame::iterator::atEnd() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#atEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the current item is the last item in the text block.</p></div>
        #[inline(always)]
        pub unsafe fn at_end(&self) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_atEnd(
                self as *const crate::q_text_frame::Iterator,
            )
        }

        /// <p>Assigns <i>other</i> to this iterator and returns a reference to this iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator& QTextFrame::iterator::operator=(const QTextFrame::iterator& o)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this iterator and returns a reference to this iterator.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_frame::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_operator_(
                self as *mut crate::q_text_frame::Iterator,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_frame::Iterator>>::cast_into(
                    o,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current block the iterator points to. If the iterator points to a child frame, the returned block is invalid.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextFrame::iterator::currentBlock() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#currentBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current block the iterator points to. If the iterator points to a child frame, the returned block is invalid.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#currentFrame">currentFrame</a>().</p></div>
        #[inline(always)]
        pub unsafe fn current_block(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_currentBlock(
                self as *const crate::q_text_frame::Iterator,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the current frame pointed to by the iterator, or 0 if the iterator currently points to a block.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame* QTextFrame::iterator::currentFrame() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#currentFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current frame pointed to by the iterator, or 0 if the iterator currently points to a block.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#currentBlock">currentBlock</a>().</p></div>
        #[inline(always)]
        pub unsafe fn current_frame(&self) -> ::cpp_core::MutPtr<crate::QTextFrame> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_currentFrame(
                self as *const crate::q_text_frame::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator& QTextFrame::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_operator__4(
                self as *mut crate::q_text_frame::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator to the old current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextFrame::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator to the old current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_operator__5(
                self as *mut crate::q_text_frame::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator& QTextFrame::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_operator__2(
                self as *mut crate::q_text_frame::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the text block and returns an iterator to the old current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextFrame::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the text block and returns an iterator to the old current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_operator__3(
                self as *mut crate::q_text_frame::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an invalid iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFrame::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an invalid iterator.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Copy constructor. Constructs a copy of the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFrame::iterator::iterator(const QTextFrame::iterator& o)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#iterator-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor. Constructs a copy of the <i>other</i> iterator.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_frame::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_iterator1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_frame::Iterator>>::cast_into(
                    o,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the parent frame of the current frame.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame* QTextFrame::iterator::parentFrame() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#parentFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the parent frame of the current frame.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe-iterator.html#currentFrame">currentFrame</a>() and <a href="http://doc.qt.io/qt-5/qtextframe.html#parentFrame">QTextFrame::parentFrame</a>().</p></div>
        #[inline(always)]
        pub unsafe fn parent_frame(&self) -> ::cpp_core::MutPtr<crate::QTextFrame> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_parentFrame(
                self as *const crate::q_text_frame::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_text_frame::Iterator>>
        for crate::q_text_frame::Iterator
    {
        /// <p>Retuns true if this iterator is the same as the <i>other</i> iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QTextFrame::iterator::operator==(const QTextFrame::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Retuns true if this iterator is the same as the <i>other</i> iterator; otherwise returns <code>false</code>.</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_text_frame::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_operator__(
                    self as *const crate::q_text_frame::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_text_frame::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_text_frame::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator& QTextFrame::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_operator__2(
                self as *mut crate::q_text_frame::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_text_frame::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_text_frame::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator& QTextFrame::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_operator__4(
                self as *mut crate::q_text_frame::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_text_frame::Iterator {
        /// <p>The iterator class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextFrame::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The iterator class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a>.</p>
        /// <p>A frame consists of an arbitrary sequence of <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>s and child <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a>s. This class provides a way to iterate over the child objects of a frame, and read their contents. It does not provide a way to modify the contents of the frame.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_iterator_diterator(
                self as *mut crate::q_text_frame::Iterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a> class represents a frame in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextFrame```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextframe.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextframe.html">QTextFrame</a> class represents a frame in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>Text frames provide structure for the text in a document. They are used as generic containers for other document elements. Frames are usually created by using <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertFrame">QTextCursor::insertFrame</a>().</p>
/// <p>Frames can be used to create hierarchical structures in rich text documents. Each document has a root frame (<a href="http://doc.qt.io/qt-5/qtextdocument.html#rootFrame">QTextDocument::rootFrame</a>()), and each frame beneath the root frame has a parent frame and a (possibly empty) list of child frames. The parent frame can be found with <a href="http://doc.qt.io/qt-5/qtextframe.html#parentFrame">parentFrame</a>(), and the <a href="http://doc.qt.io/qt-5/qtextframe.html#childFrames">childFrames</a>() function provides a list of child frames.</p>
/// <p>Each frame contains at least one text block to enable text cursors to insert new document elements within. As a result, the <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html">QTextFrame::iterator</a> class is used to traverse both the blocks and child frames within a given frame. The first and last child elements in the frame can be found with <a href="http://doc.qt.io/qt-5/qtextframe.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qtextframe.html#end">end</a>().</p>
/// <p>A frame also has a format (specified using <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a>) which can be set with <a href="http://doc.qt.io/qt-5/qtextobject.html#setFormat">setFormat</a>() and read with <a href="http://doc.qt.io/qt-5/qtextobject.html#format">format</a>().</p>
/// <p>Text cursors can be obtained that point to the first and last valid cursor positions within a frame; use the <a href="http://doc.qt.io/qt-5/qtextframe.html#firstCursorPosition">firstCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextframe.html#lastCursorPosition">lastCursorPosition</a>() functions for this. The frame's extent in the document can be found with <a href="http://doc.qt.io/qt-5/qtextframe.html#firstPosition">firstPosition</a>() and <a href="http://doc.qt.io/qt-5/qtextframe.html#lastPosition">lastPosition</a>().</p>
/// <p>You can iterate over a frame's contents using the <a href="http://doc.qt.io/qt-5/qtextframe-iterator.html">QTextFrame::iterator</a> class: this provides read-only access to its internal list of text blocks and child frames.</p></div>
#[repr(C)]
pub struct QTextFrame {
    _unused: u8,
}
impl QTextFrame {
    /// <p>Returns an iterator pointing to the first document element inside the frame. Please see the document <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style-Iterators</a> for more information.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextFrame::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an iterator pointing to the first document element inside the frame. Please see the document <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style-Iterators</a> for more information.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_begin(self as *const crate::QTextFrame);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a (possibly empty) list of the frame's child frames.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*> QTextFrame::childFrames() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#childFrames">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a (possibly empty) list of the frame's child frames.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#parentFrame">parentFrame</a>().</p></div>
    #[inline(always)]
    pub unsafe fn child_frames(&self) -> ::cpp_core::CppBox<crate::QListOfQTextFrame> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_childFrames(self as *const crate::QTextFrame);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns an iterator pointing to the position past the last document element inside the frame. Please see the document <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-Style Iterators</a> for more information.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextFrame::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an iterator pointing to the position past the last document element inside the frame. Please see the document <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-Style Iterators</a> for more information.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#begin">begin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_end(self as *const crate::QTextFrame);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the first cursor position inside the frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextFrame::firstCursorPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#firstCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first cursor position inside the frame.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#lastCursorPosition">lastCursorPosition</a>(), <a href="http://doc.qt.io/qt-5/qtextframe.html#firstPosition">firstPosition</a>(), and <a href="http://doc.qt.io/qt-5/qtextframe.html#lastPosition">lastPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_cursor_position(&self) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_firstCursorPosition(
            self as *const crate::QTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the first document position inside the frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFrame::firstPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#firstPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first document position inside the frame.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#lastPosition">lastPosition</a>(), <a href="http://doc.qt.io/qt-5/qtextframe.html#firstCursorPosition">firstCursorPosition</a>(), and <a href="http://doc.qt.io/qt-5/qtextframe.html#lastCursorPosition">lastCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrame_firstPosition(self as *const crate::QTextFrame)
    }

    /// <p>Returns the frame's format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat QTextFrame::frameFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#frameFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the frame's format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#setFrameFormat">setFrameFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn frame_format(&self) -> ::cpp_core::CppBox<crate::QTextFrameFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_frameFormat(self as *const crate::QTextFrame);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the last cursor position inside the frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextFrame::lastCursorPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#lastCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the last cursor position inside the frame.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#firstCursorPosition">firstCursorPosition</a>(), <a href="http://doc.qt.io/qt-5/qtextframe.html#firstPosition">firstPosition</a>(), and <a href="http://doc.qt.io/qt-5/qtextframe.html#lastPosition">lastPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_cursor_position(&self) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_lastCursorPosition(
            self as *const crate::QTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the last document position inside the frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFrame::lastPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#lastPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the last document position inside the frame.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#firstPosition">firstPosition</a>(), <a href="http://doc.qt.io/qt-5/qtextframe.html#firstCursorPosition">firstCursorPosition</a>(), and <a href="http://doc.qt.io/qt-5/qtextframe.html#lastCursorPosition">lastCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrame_lastPosition(self as *const crate::QTextFrame)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QTextFrame::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_metaObject(self as *const crate::QTextFrame);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Creates a new empty frame for the text <i>document</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFrame::QTextFrame(QTextDocument* doc)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#QTextFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new empty frame for the text <i>document</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        doc: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextDocument>>,
    ) -> ::cpp_core::CppBox<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_QTextFrame(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextDocument>>::cast_into(doc)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the frame's parent frame. If the frame is the root frame of a document, this will return 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QTextFrame::parentFrame() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#parentFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the frame's parent frame. If the frame is the root frame of a document, this will return 0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#childFrames">childFrames</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#rootFrame">QTextDocument::rootFrame</a>().</p></div>
    #[inline(always)]
    pub unsafe fn parent_frame(&self) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_parentFrame(self as *const crate::QTextFrame);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QTextFrame::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrame_qt_metacall(
            self as *mut crate::QTextFrame,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QTextFrame::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_qt_metacast(
            self as *mut crate::QTextFrame,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the frame's <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextFrame::setFrameFormat(const QTextFrameFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#setFrameFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the frame's <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#frameFormat">frameFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_frame_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFrameFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrame_setFrameFormat(
            self as *mut crate::QTextFrame,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFrameFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextFrame::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextFrame::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFrame_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> class is used to associate custom data with blocks of text.</p>
///
/// C++ class: <span style='color: green;'>```QTextBlockUserData```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> class is used to associate custom data with blocks of text.</p>
/// <p><a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> provides an abstract interface for container classes that are used to associate application-specific user data with text blocks in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>Generally, subclasses of this class provide functions to allow data to be stored and retrieved, and instances are attached to blocks of text using <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserData">QTextBlock::setUserData</a>(). This makes it possible to store additional data per text block in a way that can be retrieved safely by the application.</p>
/// <p>Each subclass should provide a reimplementation of the destructor to ensure that any private data is automatically cleaned up when user data objects are deleted.</p></div>
#[repr(C)]
pub struct QTextBlockUserData {
    _unused: u8,
}
impl QTextBlockUserData {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> class is used to associate custom data with blocks of text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlockUserData& QTextBlockUserData::operator=(const QTextBlockUserData& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> class is used to associate custom data with blocks of text.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> provides an abstract interface for container classes that are used to associate application-specific user data with text blocks in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>Generally, subclasses of this class provide functions to allow data to be stored and retrieved, and instances are attached to blocks of text using <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserData">QTextBlock::setUserData</a>(). This makes it possible to store additional data per text block in a way that can be retrieved safely by the application.</p>
    /// <p>Each subclass should provide a reimplementation of the destructor to ensure that any private data is automatically cleaned up when user data objects are deleted.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlockUserData>>,
    ) -> ::cpp_core::MutRef<crate::QTextBlockUserData> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockUserData_operator_(
            self as *mut crate::QTextBlockUserData,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlockUserData>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> class is used to associate custom data with blocks of text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextBlockUserData::QTextBlockUserData()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> class is used to associate custom data with blocks of text.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> provides an abstract interface for container classes that are used to associate application-specific user data with text blocks in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>Generally, subclasses of this class provide functions to allow data to be stored and retrieved, and instances are attached to blocks of text using <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserData">QTextBlock::setUserData</a>(). This makes it possible to store additional data per text block in a way that can be retrieved safely by the application.</p>
    /// <p>Each subclass should provide a reimplementation of the destructor to ensure that any private data is automatically cleaned up when user data objects are deleted.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextBlockUserData> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockUserData_QTextBlockUserData();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> class is used to associate custom data with blocks of text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextBlockUserData::QTextBlockUserData(const QTextBlockUserData& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> class is used to associate custom data with blocks of text.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> provides an abstract interface for container classes that are used to associate application-specific user data with text blocks in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>Generally, subclasses of this class provide functions to allow data to be stored and retrieved, and instances are attached to blocks of text using <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserData">QTextBlock::setUserData</a>(). This makes it possible to store additional data per text block in a way that can be retrieved safely by the application.</p>
    /// <p>Each subclass should provide a reimplementation of the destructor to ensure that any private data is automatically cleaned up when user data objects are deleted.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlockUserData>>,
    ) -> ::cpp_core::CppBox<crate::QTextBlockUserData> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlockUserData_QTextBlockUserData1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlockUserData>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_text_block {
    //! C++ type: <span style='color: green;'>```QTextBlock```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">QTextBlock::iterator</a> class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QTextBlock::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">QTextBlock::iterator</a> class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>.</p>
    /// <p>A block consists of a sequence of text fragments. This class provides a way to iterate over these, and read their contents. It does not provide a way to modify the internal structure or contents of the block.</p>
    /// <p>An iterator can be constructed and used to access the fragments within a text block in the following way:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextblock.html#QTextBlock">QTextBlock</a></span><span class="operator">::</span>iterator it;
    /// &#32;     <span class="keyword">for</span> (it <span class="operator">=</span> currentBlock<span class="operator">.</span>begin(); <span class="operator">!</span>(it<span class="operator">.</span>atEnd()); <span class="operator">+</span><span class="operator">+</span>it) {
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a></span> currentFragment <span class="operator">=</span> it<span class="operator">.</span>fragment();
    /// &#32;   &#32;     <span class="keyword">if</span> (currentFragment<span class="operator">.</span>isValid())
    /// &#32;   &#32;   &#32;     processFragment(currentFragment);
    /// &#32;     }
    ///
    /// </pre></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>Returns <code>true</code> if the current item is the last item in the text block.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QTextBlock::iterator::atEnd() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#atEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the current item is the last item in the text block.</p></div>
        #[inline(always)]
        pub unsafe fn at_end(&self) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_atEnd(
                self as *const crate::q_text_block::Iterator,
            )
        }

        /// <p>The <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">QTextBlock::iterator</a> class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator& QTextBlock::iterator::operator=(const QTextBlock::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">QTextBlock::iterator</a> class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>.</p>
        /// <p>A block consists of a sequence of text fragments. This class provides a way to iterate over these, and read their contents. It does not provide a way to modify the internal structure or contents of the block.</p>
        /// <p>An iterator can be constructed and used to access the fragments within a text block in the following way:</p>
        /// <pre class="cpp">
        ///
        /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextblock.html#QTextBlock">QTextBlock</a></span><span class="operator">::</span>iterator it;
        /// &#32;     <span class="keyword">for</span> (it <span class="operator">=</span> currentBlock<span class="operator">.</span>begin(); <span class="operator">!</span>(it<span class="operator">.</span>atEnd()); <span class="operator">+</span><span class="operator">+</span>it) {
        /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a></span> currentFragment <span class="operator">=</span> it<span class="operator">.</span>fragment();
        /// &#32;   &#32;     <span class="keyword">if</span> (currentFragment<span class="operator">.</span>isValid())
        /// &#32;   &#32;   &#32;     processFragment(currentFragment);
        /// &#32;     }
        ///
        /// </pre></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_block::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_operator_(
                self as *mut crate::q_text_block::Iterator,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_block::Iterator>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator& QTextBlock::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_operator__4(
                self as *mut crate::q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator to the old current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator QTextBlock::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator to the old current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_operator__5(
                self as *mut crate::q_text_block::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the text fragment the iterator currently points to.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFragment QTextBlock::iterator::fragment() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#fragment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text fragment the iterator currently points to.</p></div>
        #[inline(always)]
        pub unsafe fn fragment(&self) -> ::cpp_core::CppBox<crate::QTextFragment> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_fragment(
                self as *const crate::q_text_block::Iterator,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator& QTextBlock::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_operator__2(
                self as *mut crate::q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the text block and returns an iterator to the old current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator QTextBlock::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the text block and returns an iterator to the old current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_operator__3(
                self as *mut crate::q_text_block::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an iterator for this text block.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextBlock::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an iterator for this text block.</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Copy constructor. Constructs a copy of the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextBlock::iterator::iterator(const QTextBlock::iterator& o)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#iterator-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor. Constructs a copy of the <i>other</i> iterator.</p></div>
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_block::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_iterator1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_block::Iterator>>::cast_into(
                    o,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_text_block::Iterator>>
        for crate::q_text_block::Iterator
    {
        /// <p>Retuns true if this iterator is the same as the <i>other</i> iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QTextBlock::iterator::operator==(const QTextBlock::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Retuns true if this iterator is the same as the <i>other</i> iterator; otherwise returns <code>false</code>.</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_text_block::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_operator__(
                    self as *const crate::q_text_block::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_text_block::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_text_block::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator& QTextBlock::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_operator__2(
                self as *mut crate::q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_text_block::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_text_block::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator& QTextBlock::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_operator__4(
                self as *mut crate::q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_text_block::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">QTextBlock::iterator</a> class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextBlock::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblock-iterator.html">QTextBlock::iterator</a> class provides an iterator for reading the contents of a <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>.</p>
        /// <p>A block consists of a sequence of text fragments. This class provides a way to iterate over these, and read their contents. It does not provide a way to modify the internal structure or contents of the block.</p>
        /// <p>An iterator can be constructed and used to access the fragments within a text block in the following way:</p>
        /// <pre class="cpp">
        ///
        /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextblock.html#QTextBlock">QTextBlock</a></span><span class="operator">::</span>iterator it;
        /// &#32;     <span class="keyword">for</span> (it <span class="operator">=</span> currentBlock<span class="operator">.</span>begin(); <span class="operator">!</span>(it<span class="operator">.</span>atEnd()); <span class="operator">+</span><span class="operator">+</span>it) {
        /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a></span> currentFragment <span class="operator">=</span> it<span class="operator">.</span>fragment();
        /// &#32;   &#32;     <span class="keyword">if</span> (currentFragment<span class="operator">.</span>isValid())
        /// &#32;   &#32;   &#32;     processFragment(currentFragment);
        /// &#32;     }
        ///
        /// </pre></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_iterator_diterator(
                self as *mut crate::q_text_block::Iterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> class provides a container for text fragments in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextBlock```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextblock.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> class provides a container for text fragments in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A text block encapsulates a block or paragraph of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>. <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> provides read-only access to the block/paragraph structure of QTextDocuments. It is mainly of use if you want to implement your own layouts for the visual representation of a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, or if you want to iterate over a document and write out the contents in your own custom format.</p>
/// <p>Text blocks are created by their parent documents. If you need to create a new text block, or modify the contents of a document while examining its contents, use the cursor-based interface provided by <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> instead.</p>
/// <p>Each text block is located at a specific <a href="http://doc.qt.io/qt-5/qtextblock.html#position">position</a>() in a <a href="http://doc.qt.io/qt-5/qtextblock.html#document">document</a>(). The contents of the block can be obtained by using the <a href="http://doc.qt.io/qt-5/qtextblock.html#text">text</a>() function. The <a href="http://doc.qt.io/qt-5/qtextblock.html#length">length</a>() function determines the block's size within the document (including formatting characters). The visual properties of the block are determined by its text <a href="http://doc.qt.io/qt-5/qtextblock.html#layout">layout</a>(), its <a href="http://doc.qt.io/qt-5/qtextblock.html#charFormat">charFormat</a>(), and its <a href="http://doc.qt.io/qt-5/qtextblock.html#blockFormat">blockFormat</a>().</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qtextblock.html#next">next</a>() and <a href="http://doc.qt.io/qt-5/qtextblock.html#previous">previous</a>() functions enable iteration over consecutive valid blocks in a document under the condition that the document is not modified by other means during the iteration process. Note that, although blocks are returned in sequence, adjacent blocks may come from different places in the document structure. The validity of a block can be determined by calling <a href="http://doc.qt.io/qt-5/qtextblock.html#isValid">isValid</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> provides comparison operators to make it easier to work with blocks: <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-eq-eq">operator==</a>() compares two block for equality, <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-not-eq">operator!=</a>() compares two blocks for inequality, and <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-lt">operator&lt;</a>() determines whether a block precedes another in the same document.</p>
/// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtextblock-sequence.png" alt=""></p></div>
#[repr(C)]
pub struct QTextBlock {
    _unused: u8,
}
impl QTextBlock {
    /// <p>Returns a text block iterator pointing to the beginning of the text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator QTextBlock::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a text block iterator pointing to the beginning of the text block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_text_block::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_begin(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> that describes block-specific properties.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlockFormat QTextBlock::blockFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#blockFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> that describes block-specific properties.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#charFormat">charFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn block_format(&self) -> ::cpp_core::CppBox<crate::QTextBlockFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_blockFormat(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns an index into the document's internal list of block formats for the text block's format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::blockFormatIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#blockFormatIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an index into the document's internal list of block formats for the text block's format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#allFormats">QTextDocument::allFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn block_format_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_blockFormatIndex(self as *const crate::QTextBlock)
    }

    /// <p>Returns the number of this block, or -1 if the block is invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::blockNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#blockNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of this block, or -1 if the block is invalid.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextcursor.html#blockNumber">QTextCursor::blockNumber</a>().</p></div>
    #[inline(always)]
    pub unsafe fn block_number(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_blockNumber(self as *const crate::QTextBlock)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> that describes the block's character format. The block's character format is used when inserting text into an empty block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat QTextBlock::charFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#charFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> that describes the block's character format. The block's character format is used when inserting text into an empty block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#blockFormat">blockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn char_format(&self) -> ::cpp_core::CppBox<crate::QTextCharFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_charFormat(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns an index into the document's internal list of character formats for the text block's character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::charFormatIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#charFormatIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an index into the document's internal list of character formats for the text block's character format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#allFormats">QTextDocument::allFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn char_format_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_charFormatIndex(self as *const crate::QTextBlock)
    }

    /// <p>Clears the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> that is used to lay out and display the block's contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlock::clearLayout()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#clearLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Clears the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> that is used to lay out and display the block's contents.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#layout">layout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear_layout(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_clearLayout(self as *mut crate::QTextBlock)
    }

    /// <p>Returns <code>true</code> if the given <i>position</i> is located within the text block; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextBlock::contains(int position) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the given <i>position</i> is located within the text block; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, position: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_contains(self as *const crate::QTextBlock, position)
    }

    /// <p>Assigns the <i>other</i> text block to this text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock& QTextBlock::operator=(const QTextBlock& o)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the <i>other</i> text block to this text block.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::cpp_core::MutRef<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_operator_(
            self as *mut crate::QTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(o).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the text document this text block belongs to, or 0 if the text block does not belong to any document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextDocument* QTextBlock::document() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#document">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text document this text block belongs to, or 0 if the text block does not belong to any document.</p></div>
    #[inline(always)]
    pub unsafe fn document(&self) -> ::cpp_core::Ptr<crate::QTextDocument> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_document(self as *const crate::QTextBlock);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a text block iterator pointing to the end of the text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator QTextBlock::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a text block iterator pointing to the end of the text block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#begin">begin</a>(), <a href="http://doc.qt.io/qt-5/qtextblock.html#next">next</a>(), and <a href="http://doc.qt.io/qt-5/qtextblock.html#previous">previous</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_text_block::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_end(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the first line number of this block, or -1 if the block is invalid. Unless the layout supports it, the line number is identical to the block number.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::firstLineNumber() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#firstLineNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first line number of this block, or -1 if the block is invalid. Unless the layout supports it, the line number is identical to the block number.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#blockNumber">QTextBlock::blockNumber</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_line_number(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_firstLineNumber(self as *const crate::QTextBlock)
    }

    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::fragmentIndex() const```</span>.
    #[inline(always)]
    pub unsafe fn fragment_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_fragmentIndex(self as *const crate::QTextBlock)
    }

    /// <p>Returns <code>true</code> if this text block is valid; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextBlock::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text block is valid; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_isValid(self as *const crate::QTextBlock)
    }

    /// <p>Returns <code>true</code> if the block is visible; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextBlock::isVisible() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#isVisible">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the block is visible; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#setVisible">setVisible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_visible(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_isVisible(self as *const crate::QTextBlock)
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> that is used to lay out and display the block's contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout* QTextBlock::layout() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#layout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> that is used to lay out and display the block's contents.</p>
    /// <p>Note that the returned <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a> object can only be modified from the documentChanged implementation of a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> subclass. Any changes applied from the outside cause undefined behavior.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#clearLayout">clearLayout</a>().</p></div>
    #[inline(always)]
    pub unsafe fn layout(&self) -> ::cpp_core::MutPtr<crate::QTextLayout> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_layout(self as *const crate::QTextBlock);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the length of the block in characters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the length of the block in characters.</p>
    /// <p><b>Note: </b>The length returned includes all formatting characters, for example, newline.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#text">text</a>(), <a href="http://doc.qt.io/qt-5/qtextblock.html#charFormat">charFormat</a>(), and <a href="http://doc.qt.io/qt-5/qtextblock.html#blockFormat">blockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_length(self as *const crate::QTextBlock)
    }

    /// <p>Returns the line count. Not all document layouts support this feature.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::lineCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#lineCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the line count. Not all document layouts support this feature.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#setLineCount">setLineCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn line_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_lineCount(self as *const crate::QTextBlock)
    }

    /// <p>Copies the <i>other</i> text block's attributes to this text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextBlock::QTextBlock()```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qtextblock.html#QTextBlock">C++ documentation</a> for <span style='color: green;'>```QTextBlock::QTextBlock(const QTextBlock &other)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies the <i>other</i> text block's attributes to this text block.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_QTextBlock1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copies the <i>other</i> text block's attributes to this text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextBlock::QTextBlock(const QTextBlock& o)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#QTextBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies the <i>other</i> text block's attributes to this text block.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextBlock_QTextBlock2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(o).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the text block in the document after this block, or an empty text block if this is the last one.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextBlock::next() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#next">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text block in the document after this block, or an empty text block if this is the last one.</p>
    /// <p>Note that the next block may be in a different frame or table to this block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#previous">previous</a>(), <a href="http://doc.qt.io/qt-5/qtextblock.html#begin">begin</a>(), and <a href="http://doc.qt.io/qt-5/qtextblock.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn next(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_next(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the index of the block's first character within the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#position">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the block's first character within the document.</p></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_position(self as *const crate::QTextBlock)
    }

    /// <p>Returns the text block in the document before this block, or an empty text block if this is the first one.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextBlock::previous() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#previous">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text block in the document before this block, or an empty text block if this is the first one.</p>
    /// <p>Note that the previous block may be in a different frame or table to this block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#next">next</a>(), <a href="http://doc.qt.io/qt-5/qtextblock.html#begin">begin</a>(), and <a href="http://doc.qt.io/qt-5/qtextblock.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn previous(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_previous(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the blocks revision.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::revision() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#revision">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the blocks revision.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#setRevision">setRevision</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#revision">QTextDocument::revision</a>().</p></div>
    #[inline(always)]
    pub unsafe fn revision(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_revision(self as *const crate::QTextBlock)
    }

    /// <p>Sets the line count to <i>count</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlock::setLineCount(int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#setLineCount">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the line count to <i>count</i>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#lineCount">lineCount</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_line_count(&mut self, count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_setLineCount(self as *mut crate::QTextBlock, count)
    }

    /// <p>Sets a blocks revision to <i>rev</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlock::setRevision(int rev)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#setRevision">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets a blocks revision to <i>rev</i>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#revision">revision</a>() and <a href="http://doc.qt.io/qt-5/qtextdocument.html#revision">QTextDocument::revision</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_revision(&mut self, rev: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_setRevision(self as *mut crate::QTextBlock, rev)
    }

    /// <p>Attaches the given <i>data</i> object to the text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlock::setUserData(QTextBlockUserData* data)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attaches the given <i>data</i> object to the text block.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> can be used to store custom settings. The ownership is passed to the underlying text document, i.e. the provided <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> object will be deleted if the corresponding text block gets deleted. The user data object is not stored in the undo history, so it will not be available after undoing the deletion of a text block.</p>
    /// <p>For example, if you write a programming editor in an IDE, you may want to let your user set breakpoints visually in your code for an integrated debugger. In a programming editor a line of text usually corresponds to one <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>. The <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> interface allows the developer to store data for each <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>, like for example in which lines of the source code the user has a breakpoint set. Of course this could also be stored externally, but by storing it inside the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, it will for example be automatically deleted when the user deletes the associated line. It's really just a way to store custom information in the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> without using custom properties in <a href="http://doc.qt.io/qt-5/qtextformat.html">QTextFormat</a> which would affect the undo/redo stack.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#userData">userData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_user_data(
        &mut self,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextBlockUserData>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_setUserData(
            self as *mut crate::QTextBlock,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextBlockUserData>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Stores the specified <i>state</i> integer value in the text block. This may be useful for example in a syntax highlighter to store a text parsing state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlock::setUserState(int state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Stores the specified <i>state</i> integer value in the text block. This may be useful for example in a syntax highlighter to store a text parsing state.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#userState">userState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_user_state(&mut self, state: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_setUserState(self as *mut crate::QTextBlock, state)
    }

    /// <p>Sets the block's visibility to <i>visible</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextBlock::setVisible(bool visible)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#setVisible">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the block's visibility to <i>visible</i>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#isVisible">isVisible</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_visible(&mut self, visible: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_setVisible(self as *mut crate::QTextBlock, visible)
    }

    /// <p>Returns the block's contents as plain text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextBlock::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the block's contents as plain text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#length">length</a>(), <a href="http://doc.qt.io/qt-5/qtextblock.html#charFormat">charFormat</a>(), and <a href="http://doc.qt.io/qt-5/qtextblock.html#blockFormat">blockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_text(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the resolved text direction.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt::LayoutDirection QTextBlock::textDirection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#textDirection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the resolved text direction.</p>
    /// <p>If the block has no explicit direction set, it will resolve the direction from the blocks content. Returns either <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::LeftToRight</a> or <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::RightToLeft</a>.</p>
    /// <p>This function was introduced in  Qt 4.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextformat.html#layoutDirection">QTextFormat::layoutDirection</a>(), <a href="http://doc.qt.io/qt-5/qstring.html#isRightToLeft">QString::isRightToLeft</a>(), and <a href="http://doc.qt.io/qt-5/qt.html#LayoutDirection-enum">Qt::LayoutDirection</a>.</p></div>
    #[inline(always)]
    pub unsafe fn text_direction(&self) -> ::qt_core::LayoutDirection {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_textDirection(self as *const crate::QTextBlock)
    }

    /// <p>Returns the block's text format options as a list of continuous ranges of <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>. The range's character format is used when inserting text within the range boundaries.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange> QTextBlock::textFormats() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#textFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the block's text format options as a list of continuous ranges of <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>. The range's character format is used when inserting text within the range boundaries.</p>
    /// <p>This function was introduced in  Qt 5.3.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#charFormat">charFormat</a>() and <a href="http://doc.qt.io/qt-5/qtextblock.html#blockFormat">blockFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text_formats(&self) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_textFormats(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>If the block represents a list item, returns the list that the item belongs to; otherwise returns 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextList* QTextBlock::textList() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#textList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the block represents a list item, returns the list that the item belongs to; otherwise returns 0.</p></div>
    #[inline(always)]
    pub unsafe fn text_list(&self) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_textList(self as *const crate::QTextBlock);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to a <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> object if previously set with <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserData">setUserData</a>() or a null pointer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlockUserData* QTextBlock::userData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#userData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to a <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> object if previously set with <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserData">setUserData</a>() or a null pointer.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#setUserData">setUserData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn user_data(&self) -> ::cpp_core::MutPtr<crate::QTextBlockUserData> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_userData(self as *const crate::QTextBlock);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the integer value previously set with <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserState">setUserState</a>() or -1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextBlock::userState() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#userState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the integer value previously set with <a href="http://doc.qt.io/qt-5/qtextblock.html#setUserState">setUserState</a>() or -1.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#setUserState">setUserState</a>().</p></div>
    #[inline(always)]
    pub unsafe fn user_state(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_userState(self as *const crate::QTextBlock)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a> class holds a piece of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> with a single <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextFragment```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextfragment.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a> class holds a piece of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> with a single <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>.</p>
/// <p>A text fragment describes a piece of text that is stored with a single character format. Text in which the character format changes can be represented by sequences of text fragments with different formats.</p>
/// <p>If the user edits the text in a fragment and introduces a different character format, the fragment's text will be split at each point where the format changes, and new fragments will be created. For example, changing the style of some text in the middle of a sentence will cause the fragment to be broken into three separate fragments: the first and third with the same format as before, and the second with the new style. The first fragment will contain the text from the beginning of the sentence, the second will contain the text from the middle, and the third takes the text from the end of the sentence.</p>
/// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtextfragment-split.png" alt=""></p><p>A fragment's text and character format can be obtained with the <a href="http://doc.qt.io/qt-5/qtextfragment.html#text">text</a>() and <a href="http://doc.qt.io/qt-5/qtextfragment.html#charFormat">charFormat</a>() functions. The <a href="http://doc.qt.io/qt-5/qtextfragment.html#length">length</a>() function gives the length of the text in the fragment. <a href="http://doc.qt.io/qt-5/qtextfragment.html#position">position</a>() gives the position in the document of the start of the fragment. To determine whether the fragment contains a particular position within the document, use the <a href="http://doc.qt.io/qt-5/qtextfragment.html#contains">contains</a>() function.</p></div>
#[repr(C)]
pub struct QTextFragment {
    _unused: u8,
}
impl QTextFragment {
    /// <p>Returns the text fragment's character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat QTextFragment::charFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#charFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text fragment's character format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextfragment.html#text">text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn char_format(&self) -> ::cpp_core::CppBox<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFragment_charFormat(
            self as *const crate::QTextFragment,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns an index into the document's internal list of character formats for the text fragment's character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFragment::charFormatIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#charFormatIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an index into the document's internal list of character formats for the text fragment's character format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#allFormats">QTextDocument::allFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn char_format_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFragment_charFormatIndex(
            self as *const crate::QTextFragment,
        )
    }

    /// <p>Returns <code>true</code> if the text fragment contains the text at the given <i>position</i> in the document; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFragment::contains(int position) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the text fragment contains the text at the given <i>position</i> in the document; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, position: ::std::os::raw::c_int) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFragment_contains(
            self as *const crate::QTextFragment,
            position,
        )
    }

    /// <p>Assigns the content (text and format) of the <i>other</i> text fragment to this text fragment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFragment& QTextFragment::operator=(const QTextFragment& o)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the content (text and format) of the <i>other</i> text fragment to this text fragment.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFragment>>,
    ) -> ::cpp_core::MutRef<crate::QTextFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFragment_operator_(
            self as *mut crate::QTextFragment,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFragment>>::cast_into(o)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the glyphs corresponding to <i>len</i> characters of this text fragment starting at position <i>pos</i>. The positions of the glyphs are relative to the position of the <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>'s layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextFragment::glyphRuns(int from = …, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyphs corresponding to <i>len</i> characters of this text fragment starting at position <i>pos</i>. The positions of the glyphs are relative to the position of the <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>'s layout.</p>
    /// <p>If <i>pos</i> is less than zero, it will default to the start of the <a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a>. If <i>len</i> is less than zero, it will default to the length of the fragment.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>, <a href="http://doc.qt.io/qt-5/qtextblock.html#layout">QTextBlock::layout</a>(), <a href="http://doc.qt.io/qt-5/qtextlayout.html#position">QTextLayout::position</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_2a(
        &self,
        from: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFragment_glyphRuns(
            self as *const crate::QTextFragment,
            from,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the glyphs corresponding to <i>len</i> characters of this text fragment starting at position <i>pos</i>. The positions of the glyphs are relative to the position of the <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>'s layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextFragment::glyphRuns(int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyphs corresponding to <i>len</i> characters of this text fragment starting at position <i>pos</i>. The positions of the glyphs are relative to the position of the <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>'s layout.</p>
    /// <p>If <i>pos</i> is less than zero, it will default to the start of the <a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a>. If <i>len</i> is less than zero, it will default to the length of the fragment.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>, <a href="http://doc.qt.io/qt-5/qtextblock.html#layout">QTextBlock::layout</a>(), <a href="http://doc.qt.io/qt-5/qtextlayout.html#position">QTextLayout::position</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_1a(
        &self,
        from: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFragment_glyphRuns1(
            self as *const crate::QTextFragment,
            from,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the glyphs corresponding to <i>len</i> characters of this text fragment starting at position <i>pos</i>. The positions of the glyphs are relative to the position of the <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>'s layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QTextFragment::glyphRuns() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#glyphRuns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the glyphs corresponding to <i>len</i> characters of this text fragment starting at position <i>pos</i>. The positions of the glyphs are relative to the position of the <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a>'s layout.</p>
    /// <p>If <i>pos</i> is less than zero, it will default to the start of the <a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a>. If <i>len</i> is less than zero, it will default to the length of the fragment.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>, <a href="http://doc.qt.io/qt-5/qtextblock.html#layout">QTextBlock::layout</a>(), <a href="http://doc.qt.io/qt-5/qtextlayout.html#position">QTextLayout::position</a>(), and <a href="http://doc.qt.io/qt-5/qpainter.html#drawGlyphRun">QPainter::drawGlyphRun</a>().</p></div>
    #[inline(always)]
    pub unsafe fn glyph_runs_0a(&self) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFragment_glyphRuns2(
            self as *const crate::QTextFragment,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this is a valid text fragment (i.e. has a valid position in a document); otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFragment::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this is a valid text fragment (i.e. has a valid position in a document); otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFragment_isValid(self as *const crate::QTextFragment)
    }

    /// <p>Returns the number of characters in the text fragment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFragment::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of characters in the text fragment.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextfragment.html#text">text</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFragment_length(self as *const crate::QTextFragment)
    }

    /// <p>Creates a new empty text fragment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFragment::QTextFragment()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#QTextFragment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new empty text fragment.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFragment_QTextFragment1();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copies the content (text and format) of the <i>other</i> text fragment to this text fragment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextFragment::QTextFragment(const QTextFragment& o)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#QTextFragment-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies the content (text and format) of the <i>other</i> text fragment to this text fragment.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFragment>>,
    ) -> ::cpp_core::CppBox<crate::QTextFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextFragment_QTextFragment2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFragment>>::cast_into(o)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the position of this text fragment in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextFragment::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#position">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the position of this text fragment in the document.</p></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextFragment_position(self as *const crate::QTextFragment)
    }

    /// <p>Returns the text fragment's as plain text.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextFragment::text() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#text">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text fragment's as plain text.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextfragment.html#length">length</a>() and <a href="http://doc.qt.io/qt-5/qtextfragment.html#charFormat">charFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFragment_text(self as *const crate::QTextFragment);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">QSyntaxHighlighter</a> class allows you to define syntax highlighting rules, and in addition you can use the class to query a document's current formatting or user data.</p>
///
/// C++ class: <span style='color: green;'>```QSyntaxHighlighter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">QSyntaxHighlighter</a> class allows you to define syntax highlighting rules, and in addition you can use the class to query a document's current formatting or user data.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">QSyntaxHighlighter</a> class is a base class for implementing <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> syntax highlighters. A syntax highligher automatically highlights parts of the text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>. Syntax highlighters are often used when the user is entering text in a specific format (for example source code) and help the user to read the text and identify syntax errors.</p>
/// <p>To provide your own syntax highlighting, you must subclass <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">QSyntaxHighlighter</a> and reimplement <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#highlightBlock">highlightBlock</a>().</p>
/// <p>When you create an instance of your <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">QSyntaxHighlighter</a> subclass, pass it the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> that you want the syntax highlighting to be applied to. For example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a></span> <span class="operator">*</span>editor <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtextedit.html">QTextEdit</a></span>;
///   MyHighlighter <span class="operator">*</span>highlighter <span class="operator">=</span> <span class="keyword">new</span> MyHighlighter(editor<span class="operator">-</span><span class="operator">&gt;</span>document());
///
/// </pre>
/// <p>After this your <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#highlightBlock">highlightBlock</a>() function will be called automatically whenever necessary. Use your <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#highlightBlock">highlightBlock</a>() function to apply formatting (e.g. setting the font and color) to the text that is passed to it. <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">QSyntaxHighlighter</a> provides the <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#setFormat">setFormat</a>() function which applies a given <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> on the current text block. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">void</span> MyHighlighter<span class="operator">::</span>highlightBlock(<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>text)
///   {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a></span> myClassFormat;
/// &#32;     myClassFormat<span class="operator">.</span>setFontWeight(<span class="type"><a href="http://doc.qt.io/qt-5/qfont.html">QFont</a></span><span class="operator">::</span>Bold);
/// &#32;     myClassFormat<span class="operator">.</span>setForeground(<span class="type">Qt</span><span class="operator">::</span>darkMagenta);
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span> expression(<span class="string">"\\bMy[A-Za-z]+\\b"</span>);
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpressionmatchiterator.html">QRegularExpressionMatchIterator</a></span> i <span class="operator">=</span> expression<span class="operator">.</span>globalMatch(text);
/// &#32;     <span class="keyword">while</span> (i<span class="operator">.</span>hasNext())
/// &#32;     {
/// &#32;   &#32;   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpressionmatch.html">QRegularExpressionMatch</a></span> match <span class="operator">=</span> i<span class="operator">.</span>next();
/// &#32;   &#32;   setFormat(match<span class="operator">.</span>capturedStart()<span class="operator">,</span> match<span class="operator">.</span>capturedLength()<span class="operator">,</span> myClassFormat);
/// &#32;     }
///   }
///
/// </pre>
/// <a name="qsyntaxhighlighter-multiblock"></a><p>Some syntaxes can have constructs that span several text blocks. For example, a C++ syntax highlighter should be able to cope with <code>/</code><code>*...*</code><code>/</code> multiline comments. To deal with these cases it is necessary to know the end state of the previous text block (e.g. "in comment").</p>
/// <p>Inside your <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#highlightBlock">highlightBlock</a>() implementation you can query the end state of the previous text block using the <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#previousBlockState">previousBlockState</a>() function. After parsing the block you can save the last state using <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#setCurrentBlockState">setCurrentBlockState</a>().</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#currentBlockState">currentBlockState</a>() and <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#previousBlockState">previousBlockState</a>() functions return an int value. If no state is set, the returned value is -1. You can designate any other value to identify any given state using the <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#setCurrentBlockState">setCurrentBlockState</a>() function. Once the state is set the <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> keeps that value until it is set set again or until the corresponding paragraph of text is deleted.</p>
/// <p>For example, if you're writing a simple C++ syntax highlighter, you might designate 1 to signify "in comment":</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a></span> multiLineCommentFormat;
///   multiLineCommentFormat<span class="operator">.</span>setForeground(<span class="type">Qt</span><span class="operator">::</span>red);
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span> startExpression(<span class="string">"/\\*"</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span> endExpression(<span class="string">"\\*/"</span>);
///
///   setCurrentBlockState(<span class="number">0</span>);
///
///   <span class="type">int</span> startIndex <span class="operator">=</span> <span class="number">0</span>;
///   <span class="keyword">if</span> (previousBlockState() <span class="operator">!</span><span class="operator">=</span> <span class="number">1</span>)
/// &#32;     startIndex <span class="operator">=</span> text<span class="operator">.</span>indexOf(startExpression);
///
///   <span class="keyword">while</span> (startIndex <span class="operator">&gt;</span><span class="operator">=</span> <span class="number">0</span>) {
/// &#32;    <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpressionmatch.html">QRegularExpressionMatch</a></span> endMatch;
/// &#32;    <span class="type">int</span> endIndex <span class="operator">=</span> text<span class="operator">.</span>indexOf(endExpression<span class="operator">,</span> startIndex<span class="operator">,</span> <span class="operator">&amp;</span>endMatch);
/// &#32;    <span class="type">int</span> commentLength;
/// &#32;    <span class="keyword">if</span> (endIndex <span class="operator">=</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>) {
/// &#32;   &#32;    setCurrentBlockState(<span class="number">1</span>);
/// &#32;   &#32;    commentLength <span class="operator">=</span> text<span class="operator">.</span>length() <span class="operator">-</span> startIndex;
/// &#32;    } <span class="keyword">else</span> {
/// &#32;   &#32;    commentLength <span class="operator">=</span> endIndex <span class="operator">-</span> startIndex
/// &#32;   &#32;   &#32;   &#32;   &#32;   &#32;    <span class="operator">+</span> endMatch<span class="operator">.</span>capturedLength();
/// &#32;    }
/// &#32;    setFormat(startIndex<span class="operator">,</span> commentLength<span class="operator">,</span> multiLineCommentFormat);
/// &#32;    startIndex <span class="operator">=</span> text<span class="operator">.</span>indexOf(startExpression<span class="operator">,</span>
/// &#32;   &#32;   &#32;   &#32;   &#32;   &#32;   &#32;      startIndex <span class="operator">+</span> commentLength);
///   }
///
/// </pre>
/// <p>In the example above, we first set the current block state to 0. Then, if the previous block ended within a comment, we highlight from the beginning of the current block (<code>startIndex = 0</code>). Otherwise, we search for the given start expression. If the specified end expression cannot be found in the text block, we change the current block state by calling <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#setCurrentBlockState">setCurrentBlockState</a>(), and make sure that the rest of the block is highlighted.</p>
/// <p>In addition you can query the current formatting and user data using the <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#format">format</a>() and <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#currentBlockUserData">currentBlockUserData</a>() functions respectively. You can also attach user data to the current text block using the <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#setCurrentBlockUserData">setCurrentBlockUserData</a>() function. <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html">QTextBlockUserData</a> can be used to store custom settings. In the case of syntax highlighting, it is in particular interesting as cache storage for information that you may figure out while parsing the paragraph's text. For an example, see the <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#setCurrentBlockUserData">setCurrentBlockUserData</a>() documentation.</p></div>
#[repr(C)]
pub struct QSyntaxHighlighter {
    _unused: u8,
}
impl QSyntaxHighlighter {
    /// <p>Reapplies the highlighting to the whole document.</p>
    ///
    /// Returns a built-in Qt slot `QSyntaxHighlighter::rehighlight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#rehighlight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reapplies the highlighting to the whole document.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#rehighlightBlock">rehighlightBlock</a>().</p></div>
    #[inline(always)]
    pub fn slot_rehighlight(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1rehighlight()\0"),
            )
        }
    }

    /// <p>Reapplies the highlighting to the given <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> <i>block</i>.</p>
    ///
    /// Returns a built-in Qt slot `QSyntaxHighlighter::rehighlightBlock` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#rehighlightBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reapplies the highlighting to the given <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> <i>block</i>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#rehighlight">rehighlight</a>().</p></div>
    #[inline(always)]
    pub fn slot_rehighlight_block(&self) -> ::qt_core::Receiver<(*const crate::QTextBlock,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1rehighlightBlock(const QTextBlock&)\0",
                ),
            )
        }
    }

    /// <p>Returns the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> on which this syntax highlighter is installed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextDocument* QSyntaxHighlighter::document() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#document">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> on which this syntax highlighter is installed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#setDocument">setDocument</a>().</p></div>
    #[inline(always)]
    pub unsafe fn document(&self) -> ::cpp_core::MutPtr<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_document(
            self as *const crate::QSyntaxHighlighter,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QSyntaxHighlighter::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_metaObject(
            self as *const crate::QSyntaxHighlighter,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QSyntaxHighlighter::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_qt_metacall(
            self as *mut crate::QSyntaxHighlighter,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QSyntaxHighlighter::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_qt_metacast(
            self as *mut crate::QSyntaxHighlighter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Reapplies the highlighting to the whole document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QSyntaxHighlighter::rehighlight()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#rehighlight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reapplies the highlighting to the whole document.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#rehighlightBlock">rehighlightBlock</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rehighlight(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_rehighlight(
            self as *mut crate::QSyntaxHighlighter,
        )
    }

    /// <p>Reapplies the highlighting to the given <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> <i>block</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QSyntaxHighlighter::rehighlightBlock(const QTextBlock& block)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#rehighlightBlock">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reapplies the highlighting to the given <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> <i>block</i>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#rehighlight">rehighlight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rehighlight_block(
        &mut self,
        block: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_rehighlightBlock(
            self as *mut crate::QSyntaxHighlighter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(block)
                .as_raw_ptr(),
        )
    }

    /// <p>Installs the syntax highlighter on the given <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> <i>doc</i>. A <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">QSyntaxHighlighter</a> can only be used with one document at a time.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSyntaxHighlighter::setDocument(QTextDocument* doc)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#setDocument">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Installs the syntax highlighter on the given <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> <i>doc</i>. A <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html">QSyntaxHighlighter</a> can only be used with one document at a time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#document">document</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_document(
        &mut self,
        doc: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextDocument>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_setDocument(
            self as *mut crate::QSyntaxHighlighter,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextDocument>>::cast_into(doc)
                .as_mut_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QSyntaxHighlighter::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QSyntaxHighlighter::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> class represents a piece of formatted text from a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextDocumentFragment```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> class represents a piece of formatted text from a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> is a fragment of rich text, that can be inserted into a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>. A document fragment can be created from a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, from a <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a>'s selection, or from another document fragment. Document fragments can also be created by the static functions, <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#fromPlainText">fromPlainText</a>() and <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#fromHtml">fromHtml</a>().</p>
/// <p>The contents of a document fragment can be obtained as plain text by using the <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toPlainText">toPlainText</a>() function, or it can be obtained as HTML with <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toHtml">toHtml</a>().</p></div>
#[repr(C)]
pub struct QTextDocumentFragment {
    _unused: u8,
}
impl QTextDocumentFragment {
    /// <p>Assigns the <i>other</i> fragment to this fragment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextDocumentFragment& QTextDocumentFragment::operator=(const QTextDocumentFragment& rhs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the <i>other</i> fragment to this fragment.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        rhs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextDocumentFragment>>,
    ) -> ::cpp_core::MutRef<crate::QTextDocumentFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_operator_(
            self as *mut crate::QTextDocumentFragment,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextDocumentFragment>>::cast_into(rhs)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> based on the arbitrary piece of HTML in the given <i>text</i>. The formatting is preserved as much as possible; for example, "&lt;b&gt;bold&lt;/b&gt;" will become a document fragment with the text "bold" with a bold character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QTextDocumentFragment QTextDocumentFragment::fromHtml(const QString& html)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#fromHtml">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> based on the arbitrary piece of HTML in the given <i>text</i>. The formatting is preserved as much as possible; for example, "&lt;b&gt;bold&lt;/b&gt;" will become a document fragment with the text "bold" with a bold character format.</p></div>
    #[inline(always)]
    pub unsafe fn from_html_1a(
        html: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_fromHtml(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(html)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> based on the arbitrary piece of HTML in the given <i>text</i>. The formatting is preserved as much as possible; for example, "&lt;b&gt;bold&lt;/b&gt;" will become a document fragment with the text "bold" with a bold character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QTextDocumentFragment QTextDocumentFragment::fromHtml(const QString& html, const QTextDocument* resourceProvider)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#fromHtml-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> based on the arbitrary piece of HTML in the given <i>text</i>. The formatting is preserved as much as possible; for example, "&lt;b&gt;bold&lt;/b&gt;" will become a document fragment with the text "bold" with a bold character format.</p>
    /// <p>If the provided HTML contains references to external resources such as imported style sheets, then they will be loaded through the <i>resourceProvider</i>.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn from_html_2a(
        html: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        resource_provider: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QTextDocument>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_fromHtml1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(html)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QTextDocument>>::cast_into(
                resource_provider,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a document fragment that contains the given <i>plainText</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QTextDocumentFragment QTextDocumentFragment::fromPlainText(const QString& plainText)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#fromPlainText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a document fragment that contains the given <i>plainText</i>.</p>
    /// <p>When inserting such a fragment into a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> the current char format of the <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> used for insertion is used as format for the text.</p></div>
    #[inline(always)]
    pub unsafe fn from_plain_text(
        plain_text: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_fromPlainText(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(plain_text)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the fragment is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocumentFragment::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the fragment is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_isEmpty(
            self as *const crate::QTextDocumentFragment,
        )
    }

    /// <p>Constructs an empty <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocumentFragment::QTextDocumentFragment()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#QTextDocumentFragment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextDocumentFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_QTextDocumentFragment();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Converts the given <i>document</i> into a <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a>. Note that the <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> only stores the document contents, not meta information like the document's title.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocumentFragment::QTextDocumentFragment(const QTextDocument* document)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#QTextDocumentFragment-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts the given <i>document</i> into a <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a>. Note that the <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> only stores the document contents, not meta information like the document's title.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_text_document(
        document: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QTextDocument>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_QTextDocumentFragment1(
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QTextDocument>>::cast_into(document)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Creates a <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> from the <i>cursor</i>'s selection. If the cursor doesn't have a selection, the created fragment is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocumentFragment::QTextDocumentFragment(const QTextCursor& range)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#QTextDocumentFragment-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html">QTextDocumentFragment</a> from the <i>cursor</i>'s selection. If the cursor doesn't have a selection, the created fragment is empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qtextcursor.html#selection">QTextCursor::selection</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_q_text_cursor(
        range: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_QTextDocumentFragment2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(range)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy constructor. Creates a copy of the <i>other</i> fragment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocumentFragment::QTextDocumentFragment(const QTextDocumentFragment& rhs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#QTextDocumentFragment-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor. Creates a copy of the <i>other</i> fragment.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        rhs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextDocumentFragment>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentFragment> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_QTextDocumentFragment3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextDocumentFragment>>::cast_into(rhs)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the contents of the document fragment as HTML, using the specified <i>encoding</i> (e.g., "UTF-8", "ISO 8859-1").</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocumentFragment::toHtml(const QByteArray& encoding = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toHtml">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the contents of the document fragment as HTML, using the specified <i>encoding</i> (e.g., "UTF-8", "ISO 8859-1").</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toPlainText">toPlainText</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#toHtml">QTextDocument::toHtml</a>(), and <a href="http://doc.qt.io/qt-5/qtextcodec.html">QTextCodec</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_html_1a(
        &self,
        encoding: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_toHtml(
            self as *const crate::QTextDocumentFragment,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(encoding)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the contents of the document fragment as HTML, using the specified <i>encoding</i> (e.g., "UTF-8", "ISO 8859-1").</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocumentFragment::toHtml() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toHtml">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the contents of the document fragment as HTML, using the specified <i>encoding</i> (e.g., "UTF-8", "ISO 8859-1").</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toPlainText">toPlainText</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#toHtml">QTextDocument::toHtml</a>(), and <a href="http://doc.qt.io/qt-5/qtextcodec.html">QTextCodec</a>.</p></div>
    #[inline(always)]
    pub unsafe fn to_html_0a(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_toHtml1(
            self as *const crate::QTextDocumentFragment,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the document fragment's text as plain text (i.e. with no formatting information).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocumentFragment::toPlainText() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toPlainText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document fragment's text as plain text (i.e. with no formatting information).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#toHtml">toHtml</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_plain_text(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_toPlainText(
            self as *const crate::QTextDocumentFragment,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> class provides a format-independent interface for writing a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> to files or other devices.</p>
///
/// C++ class: <span style='color: green;'>```QTextDocumentWriter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> class provides a format-independent interface for writing a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> to files or other devices.</p>
/// <p>To write a document, construct a <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object with either a file name or a device object, and specify the document format to be written. You can construct a writer and set the format using <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFormat">setFormat</a>() later.</p>
/// <p>Call <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#write">write</a>() to write the document to the device. If the document is successfully written, this function returns <code>true</code>. However, if an error occurs when writing the document, it will return false.</p>
/// <p>Call <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#supportedDocumentFormats">supportedDocumentFormats</a>() for a list of formats that <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> can write.</p>
/// <p>Since the capabilities of the supported output formats vary considerably, the writer simply outputs the appropriate subset of objects for each format. This typically includes the formatted text and images contained in a document.</p></div>
#[repr(C)]
pub struct QTextDocumentWriter {
    _unused: u8,
}
impl QTextDocumentWriter {
    /// <p>Returns the codec that is currently assigned to the writer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCodec* QTextDocumentWriter::codec() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#codec">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the codec that is currently assigned to the writer.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setCodec">setCodec</a>().</p></div>
    #[inline(always)]
    pub unsafe fn codec(&self) -> ::cpp_core::MutPtr<::qt_core::QTextCodec> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_codec(
            self as *const crate::QTextDocumentWriter,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the device currently assigned, or 0 if no device has been assigned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QIODevice* QTextDocumentWriter::device() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#device">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the device currently assigned, or 0 if no device has been assigned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn device(&self) -> ::cpp_core::MutPtr<::qt_core::QIODevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_device(
            self as *const crate::QTextDocumentWriter,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>If the currently assigned device is a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>, or if <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFileName">setFileName</a>() has been called, this function returns the name of the file to be written to. In all other cases, it returns an empty string.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextDocumentWriter::fileName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#fileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>If the currently assigned device is a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a>, or if <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFileName">setFileName</a>() has been called, this function returns the name of the file to be written to. In all other cases, it returns an empty string.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFileName">setFileName</a>() and <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn file_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_fileName(
            self as *const crate::QTextDocumentWriter,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the format used for writing documents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray QTextDocumentWriter::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format used for writing documents.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_format(
            self as *const crate::QTextDocumentWriter,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an empty <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object. Before writing, you must call <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFormat">setFormat</a>() to set a document format, then <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setDevice">setDevice</a>() or <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFileName">setFileName</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocumentWriter::QTextDocumentWriter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#QTextDocumentWriter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object. Before writing, you must call <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFormat">setFormat</a>() to set a document format, then <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setDevice">setDevice</a>() or <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextDocumentWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_QTextDocumentWriter();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object to write to the given <i>device</i> in the document format specified by <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocumentWriter::QTextDocumentWriter(QIODevice* device, const QByteArray& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#QTextDocumentWriter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object to write to the given <i>device</i> in the document format specified by <i>format</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_io_device_q_byte_array(
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_QTextDocumentWriter1(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object that will write to a file with the name <i>fileName</i>, using the document format specified by <i>format</i>. If <i>format</i> is not provided, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will detect the document format by inspecting the extension of <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocumentWriter::QTextDocumentWriter(const QString& fileName, const QByteArray& format = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#QTextDocumentWriter-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object that will write to a file with the name <i>fileName</i>, using the document format specified by <i>format</i>. If <i>format</i> is not provided, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will detect the document format by inspecting the extension of <i>fileName</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_byte_array(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_QTextDocumentWriter2(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs an <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object that will write to a file with the name <i>fileName</i>, using the document format specified by <i>format</i>. If <i>format</i> is not provided, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will detect the document format by inspecting the extension of <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextDocumentWriter::QTextDocumentWriter(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#QTextDocumentWriter-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object that will write to a file with the name <i>fileName</i>, using the document format specified by <i>format</i>. If <i>format</i> is not provided, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will detect the document format by inspecting the extension of <i>fileName</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string(
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::cpp_core::CppBox<crate::QTextDocumentWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_QTextDocumentWriter3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the codec for this stream to <i>codec</i>. The codec is used for encoding any data that is written. By default, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> uses UTF-8.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocumentWriter::setCodec(QTextCodec* codec)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setCodec">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the codec for this stream to <i>codec</i>. The codec is used for encoding any data that is written. By default, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> uses UTF-8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#codec">codec</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_codec(
        &mut self,
        codec: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QTextCodec>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_setCodec(
            self as *mut crate::QTextDocumentWriter,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QTextCodec>>::cast_into(codec)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the writer's device to the <i>device</i> specified. If a device has already been set, the old device is removed but otherwise left unchanged.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocumentWriter::setDevice(QIODevice* device)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the writer's device to the <i>device</i> specified. If a device has already been set, the old device is removed but otherwise left unchanged.</p>
    /// <p>If the device is not already open, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will attempt to open the device in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::WriteOnly</a> mode by calling open().</p>
    /// <p><b>Note: </b>This will not work for certain devices, such as <a href="http://doc.qt.io/qt-5/qprocess.html">QProcess</a>, <a href="http://doc.qt.io/qt-5/qtcpsocket.html">QTcpSocket</a> and <a href="http://doc.qt.io/qt-5/qudpsocket.html">QUdpSocket</a>, where some configuration is required before the device can be opened.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#device">device</a>() and <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFileName">setFileName</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_device(
        &mut self,
        device: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QIODevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_setDevice(
            self as *mut crate::QTextDocumentWriter,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QIODevice>>::cast_into(device)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Sets the name of the file to be written to <i>fileName</i>. Internally, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will create a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a> and open it in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::WriteOnly</a> mode, and use this file when writing the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocumentWriter::setFileName(const QString& fileName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFileName">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the name of the file to be written to <i>fileName</i>. Internally, <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> will create a <a href="http://doc.qt.io/qt-5/qfile.html">QFile</a> and open it in <a href="http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum">QIODevice::WriteOnly</a> mode, and use this file when writing the document.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#fileName">fileName</a>() and <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setDevice">setDevice</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_file_name(
        &mut self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_setFileName(
            self as *mut crate::QTextDocumentWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the format used to write documents to the <i>format</i> specified. <i>format</i> is a case insensitive text string. For example:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextDocumentWriter::setFormat(const QByteArray& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format used to write documents to the <i>format</i> specified. <i>format</i> is a case insensitive text string. For example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#QTextDocumentWriter">QTextDocumentWriter</a></span> writer;
    /// &#32;   &#32;     writer<span class="operator">.</span>setFormat(<span class="string">"odf"</span>); <span class="comment">// same as writer.setFormat("ODF");</span>
    ///
    /// </pre>
    /// <p>You can call <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#supportedDocumentFormats">supportedDocumentFormats</a>() for the full list of formats <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> supports.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_setFormat(
            self as *mut crate::QTextDocumentWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the list of document formats supported by <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QByteArray> QTextDocumentWriter::supportedDocumentFormats()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#supportedDocumentFormats">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of document formats supported by <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a>.</p>
    /// <p>By default, Qt can write the following formats:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Format</th><th>Description</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>plaintext</td><td>Plain text</td></tr>
    /// <tr valign="top" class="even"><td>HTML</td><td>HyperText Markup Language</td></tr>
    /// <tr valign="top" class="odd"><td>ODF</td><td>OpenDocument Format</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn supported_document_formats() -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_supportedDocumentFormats();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Writes the given <i>document</i> to the assigned device or file and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocumentWriter::write(const QTextDocument* document)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#write">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the given <i>document</i> to the assigned device or file and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn write_q_text_document(
        &mut self,
        document: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QTextDocument>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_write(
            self as *mut crate::QTextDocumentWriter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QTextDocument>>::cast_into(document)
                .as_raw_ptr(),
        )
    }

    /// <p>Writes the document fragment specified by <i>fragment</i> to the assigned device or file and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextDocumentWriter::write(const QTextDocumentFragment& fragment)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#write-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Writes the document fragment specified by <i>fragment</i> to the assigned device or file and returns <code>true</code> if successful; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn write_q_text_document_fragment(
        &mut self,
        fragment: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextDocumentFragment>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_write1(
            self as *mut crate::QTextDocumentWriter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextDocumentFragment>>::cast_into(
                fragment,
            )
            .as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtextlist.html">QTextList</a> class provides a decorated list of items in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextList```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtextlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlist.html">QTextList</a> class provides a decorated list of items in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A list contains a sequence of text blocks, each of which is marked with a bullet point or other symbol. Multiple levels of lists can be used, and the automatic numbering feature provides support for ordered numeric and alphabetical lists.</p>
/// <p>Lists are created by using a text cursor to insert an empty list at the current position or by moving existing text into a new list. The <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertList">QTextCursor::insertList</a>() function inserts an empty block into the document at the cursor position, and makes it the first item in a list.</p>
/// <pre class="cpp">
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a></span> listFormat;
/// &#32;     <span class="keyword">if</span> (list) {
/// &#32;   &#32;     listFormat <span class="operator">=</span> list<span class="operator">-</span><span class="operator">&gt;</span>format();
/// &#32;   &#32;     listFormat<span class="operator">.</span>setIndent(listFormat<span class="operator">.</span>indent() <span class="operator">+</span> <span class="number">1</span>);
/// &#32;     }
///
/// &#32;     listFormat<span class="operator">.</span>setStyle(<span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a></span><span class="operator">::</span>ListDisc);
/// &#32;     cursor<span class="operator">.</span>insertList(listFormat);
///
/// </pre>
/// <p>The <a href="http://doc.qt.io/qt-5/qtextcursor.html#createList">QTextCursor::createList</a>() function takes the contents of the cursor's current block and turns it into the first item of a new list.</p>
/// <p>The cursor's current list is found with <a href="http://doc.qt.io/qt-5/qtextcursor.html#currentList">QTextCursor::currentList</a>().</p>
/// <p>The number of items in a list is given by <a href="http://doc.qt.io/qt-5/qtextlist.html#count">count</a>(). Each item can be obtained by its index in the list with the <a href="http://doc.qt.io/qt-5/qtextlist.html#item">item</a>() function. Similarly, the index of a given item can be found with <a href="http://doc.qt.io/qt-5/qtextlist.html#itemNumber">itemNumber</a>(). The text of each item can be found with the <a href="http://doc.qt.io/qt-5/qtextlist.html#itemText">itemText</a>() function.</p>
/// <p>Note that the items in the list may not be adjacent elements in the document. For example, the top-level items in a multi-level list will be separated by the items in lower levels of the list.</p>
/// <p>List items can be deleted by index with the <a href="http://doc.qt.io/qt-5/qtextlist.html#removeItem">removeItem</a>() function. <a href="http://doc.qt.io/qt-5/qtextlist.html#remove">remove</a>() deletes the specified item in the list.</p>
/// <p>The list's format is set with <a href="http://doc.qt.io/qt-5/qtextlist.html#setFormat">setFormat</a>() and read with <a href="http://doc.qt.io/qt-5/qtextlist.html#format">format</a>(). The format describes the decoration of the list itself, and not the individual items.</p></div>
#[repr(C)]
pub struct QTextList {
    _unused: u8,
}
impl QTextList {
    /// <p>Makes the given <i>block</i> part of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextList::add(const QTextBlock& block)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#add">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the given <i>block</i> part of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlist.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qtextlist.html#removeItem">removeItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add(
        &mut self,
        block: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_add(
            self as *mut crate::QTextList,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(block)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextList::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_count(self as *const crate::QTextList)
    }

    /// <p>Returns the list's format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextListFormat QTextList::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list's format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlist.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QTextListFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextList_format(self as *const crate::QTextList);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the list has no items; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextList::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist-obsolete.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list has no items; otherwise returns <code>false</code>.</p>
    /// <p><b>Note:</b> Empty lists are automatically deleted by the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> that owns them.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlist.html#count">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_isEmpty(self as *const crate::QTextList)
    }

    /// <p>Returns the <i>i</i>-th text block in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextList::item(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#item">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <i>i</i>-th text block in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlist.html#count">count</a>() and <a href="http://doc.qt.io/qt-5/qtextlist.html#itemText">itemText</a>().</p></div>
    #[inline(always)]
    pub unsafe fn item(&self, i: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextList_item(self as *const crate::QTextList, i);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the index of the list item that corresponds to the given <i>block</i>. Returns -1 if the block was not present in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextList::itemNumber(const QTextBlock& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#itemNumber">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the list item that corresponds to the given <i>block</i>. Returns -1 if the block was not present in the list.</p></div>
    #[inline(always)]
    pub unsafe fn item_number(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_itemNumber(
            self as *const crate::QTextList,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the text of the list item that corresponds to the given <i>block</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString QTextList::itemText(const QTextBlock& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#itemText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the text of the list item that corresponds to the given <i>block</i>.</p></div>
    #[inline(always)]
    pub unsafe fn item_text(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextList_itemText(
            self as *const crate::QTextList,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QTextList::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextList_metaObject(self as *const crate::QTextList);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextList::QTextList(QTextDocument* doc)```</span>.
    #[inline(always)]
    pub unsafe fn new(
        doc: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextDocument>>,
    ) -> ::cpp_core::CppBox<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextList_QTextList(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextDocument>>::cast_into(doc)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QTextList::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_qt_metacall(
            self as *mut crate::QTextList,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QTextList::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextList_qt_metacast(
            self as *mut crate::QTextList,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the given <i>block</i> from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextList::remove(const QTextBlock& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the given <i>block</i> from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlist.html#add">add</a>() and <a href="http://doc.qt.io/qt-5/qtextlist.html#removeItem">removeItem</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_remove(
            self as *mut crate::QTextList,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the item at item position <i>i</i> from the list. When the last item in the list is removed, the list is automatically deleted by the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> that owns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextList::removeItem(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#removeItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at item position <i>i</i> from the list. When the last item in the list is removed, the list is automatically deleted by the <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> that owns it.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlist.html#add">add</a>() and <a href="http://doc.qt.io/qt-5/qtextlist.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_item(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_removeItem(self as *mut crate::QTextList, i)
    }

    /// <p>Sets the list's format to <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextList::setFormat(const QTextListFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlist.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the list's format to <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextlist.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextListFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_setFormat(
            self as *mut crate::QTextList,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextListFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextList_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextList::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextList_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextList::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextList_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtexttablecell.html">QTextTableCell</a> class represents the properties of a cell in a <a href="http://doc.qt.io/qt-5/qtexttable.html">QTextTable</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextTableCell```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtexttablecell.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttablecell.html">QTextTableCell</a> class represents the properties of a cell in a <a href="http://doc.qt.io/qt-5/qtexttable.html">QTextTable</a>.</p>
/// <p>Table cells are pieces of document structure that belong to a table. The table orders cells into particular rows and columns; cells can also span multiple columns and rows.</p>
/// <p>Cells are usually created when a table is inserted into a document with <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertTable">QTextCursor::insertTable</a>(), but they are also created and destroyed when a table is resized.</p>
/// <p>Cells contain information about their location in a table; you can obtain the <a href="http://doc.qt.io/qt-5/qtexttablecell.html#row">row</a>() and <a href="http://doc.qt.io/qt-5/qtexttablecell.html#column">column</a>() numbers of a cell, and its <a href="http://doc.qt.io/qt-5/qtexttablecell.html#rowSpan">rowSpan</a>() and <a href="http://doc.qt.io/qt-5/qtexttablecell.html#columnSpan">columnSpan</a>().</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qtexttablecell.html#format">format</a>() of a cell describes the default character format of its contents. The <a href="http://doc.qt.io/qt-5/qtexttablecell.html#firstCursorPosition">firstCursorPosition</a>() and <a href="http://doc.qt.io/qt-5/qtexttablecell.html#lastCursorPosition">lastCursorPosition</a>() functions are used to obtain the extent of the cell in the document.</p></div>
#[repr(C)]
pub struct QTextTableCell {
    _unused: u8,
}
impl QTextTableCell {
    /// <p>Returns a frame iterator pointing to the beginning of the table's cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextTableCell::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a frame iterator pointing to the beginning of the table's cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_begin(self as *const crate::QTextTableCell);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of the column in the table that contains this cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTableCell::column() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#column">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of the column in the table that contains this cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#row">row</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_column(self as *const crate::QTextTableCell)
    }

    /// <p>Returns the number of columns this cell spans. The default is 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTableCell::columnSpan() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#columnSpan">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of columns this cell spans. The default is 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#rowSpan">rowSpan</a>().</p></div>
    #[inline(always)]
    pub unsafe fn column_span(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_columnSpan(self as *const crate::QTextTableCell)
    }

    /// <p>Assigns the <i>other</i> table cell to this table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableCell& QTextTableCell::operator=(const QTextTableCell& o)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns the <i>other</i> table cell to this table cell.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextTableCell>>,
    ) -> ::cpp_core::MutRef<crate::QTextTableCell> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_operator_(
            self as *mut crate::QTextTableCell,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextTableCell>>::cast_into(o)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a frame iterator pointing to the end of the table's cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextTableCell::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a frame iterator pointing to the end of the table's cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#begin">begin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_end(self as *const crate::QTextTableCell);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the first valid cursor position in this cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextTableCell::firstCursorPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#firstCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the first valid cursor position in this cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#lastCursorPosition">lastCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_cursor_position(&self) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_firstCursorPosition(
            self as *const crate::QTextTableCell,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```int QTextTableCell::firstPosition() const```</span>.
    #[inline(always)]
    pub unsafe fn first_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_firstPosition(
            self as *const crate::QTextTableCell,
        )
    }

    /// <p>Returns the cell's character format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat QTextTableCell::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the cell's character format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_format(
            self as *const crate::QTextTableCell,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this is a valid table cell; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextTableCell::isValid() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#isValid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this is a valid table cell; otherwise returns false.</p></div>
    #[inline(always)]
    pub unsafe fn is_valid(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_isValid(self as *const crate::QTextTableCell)
    }

    /// <p>Returns the last valid cursor position in this cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextTableCell::lastCursorPosition() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#lastCursorPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the last valid cursor position in this cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#firstCursorPosition">firstCursorPosition</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_cursor_position(&self) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_lastCursorPosition(
            self as *const crate::QTextTableCell,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```int QTextTableCell::lastPosition() const```</span>.
    #[inline(always)]
    pub unsafe fn last_position(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_lastPosition(
            self as *const crate::QTextTableCell,
        )
    }

    /// <p>Constructs an invalid table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextTableCell::QTextTableCell()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#QTextTableCell">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an invalid table cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#isValid">isValid</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextTableCell> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_QTextTableCell();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy constructor. Creates a new <a href="http://doc.qt.io/qt-5/qtexttablecell.html">QTextTableCell</a> object based on the <i>other</i> cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextTableCell::QTextTableCell(const QTextTableCell& o)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#QTextTableCell-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor. Creates a new <a href="http://doc.qt.io/qt-5/qtexttablecell.html">QTextTableCell</a> object based on the <i>other</i> cell.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextTableCell>>,
    ) -> ::cpp_core::CppBox<crate::QTextTableCell> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_QTextTableCell1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextTableCell>>::cast_into(o)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of the row in the table that contains this cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTableCell::row() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#row">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of the row in the table that contains this cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#column">column</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_row(self as *const crate::QTextTableCell)
    }

    /// <p>Returns the number of rows this cell spans. The default is 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTableCell::rowSpan() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#rowSpan">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of rows this cell spans. The default is 1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#columnSpan">columnSpan</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row_span(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_rowSpan(self as *const crate::QTextTableCell)
    }

    /// <p>Sets the cell's character format to <i>format</i>. This can for example be used to change the background color of the entire cell:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTableCell::setFormat(const QTextCharFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the cell's character format to <i>format</i>. This can for example be used to change the background color of the entire cell:</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtexttablecell.html">QTextTableCell</a> cell = table-&gt;cellAt(2, 3); <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> format = cell.<a href="http://doc.qt.io/qt-5/qtexttablecell.html#format">format</a>(); format.setBackground(<a href="http://doc.qt.io/qt-5/qt.html#GlobalColor-enum">Qt::blue</a>); cell.setFormat(format);</p>
    /// <p>Note that the cell's row or column span cannot be changed through this function. You have to use <a href="http://doc.qt.io/qt-5/qtexttable.html#mergeCells">QTextTable::mergeCells</a> and <a href="http://doc.qt.io/qt-5/qtexttable.html#splitCell">QTextTable::splitCell</a> instead.</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCharFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_setFormat(
            self as *mut crate::QTextTableCell,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCharFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the index of the tableCell's format in the document's internal list of formats.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTableCell::tableCellFormatIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#tableCellFormatIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the tableCell's format in the document's internal list of formats.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#allFormats">QTextDocument::allFormats</a>().</p></div>
    #[inline(always)]
    pub unsafe fn table_cell_format_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_tableCellFormatIndex(
            self as *const crate::QTextTableCell,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qtexttable.html">QTextTable</a> class represents a table in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
///
/// C++ class: <span style='color: green;'>```QTextTable```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qtexttable.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttable.html">QTextTable</a> class represents a table in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
/// <p>A table is a group of cells ordered into rows and columns. Each table contains at least one row and one column. Each cell contains a block, and is surrounded by a frame.</p>
/// <p>Tables are usually created and inserted into a document with the <a href="http://doc.qt.io/qt-5/qtextcursor.html#insertTable">QTextCursor::insertTable</a>() function. For example, we can insert a table with three rows and two columns at the current cursor position in an editor using the following lines of code:</p>
/// <pre class="cpp">
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a></span> cursor(editor<span class="operator">-</span><span class="operator">&gt;</span>textCursor());
/// &#32;     cursor<span class="operator">.</span>movePosition(<span class="type"><a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a></span><span class="operator">::</span>Start);
///
/// &#32;     <span class="type">QTextTable</span> <span class="operator">*</span>table <span class="operator">=</span> cursor<span class="operator">.</span>insertTable(rows<span class="operator">,</span> columns<span class="operator">,</span> tableFormat);
///
/// </pre>
/// <p>The table format is either defined when the table is created or changed later with <a href="http://doc.qt.io/qt-5/qtexttable.html#setFormat">setFormat</a>().</p>
/// <p>The table currently being edited by the cursor is found with <a href="http://doc.qt.io/qt-5/qtextcursor.html#currentTable">QTextCursor::currentTable</a>(). This allows its format or dimensions to be changed after it has been inserted into a document.</p>
/// <p>A table's size can be changed with <a href="http://doc.qt.io/qt-5/qtexttable.html#resize">resize</a>(), or by using <a href="http://doc.qt.io/qt-5/qtexttable.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeRows">removeRows</a>(), or <a href="http://doc.qt.io/qt-5/qtexttable.html#removeColumns">removeColumns</a>(). Use <a href="http://doc.qt.io/qt-5/qtexttable.html#cellAt">cellAt</a>() to retrieve table cells.</p>
/// <p>The starting and ending positions of table rows can be found by moving a cursor within a table, and using the <a href="http://doc.qt.io/qt-5/qtexttable.html#rowStart">rowStart</a>() and <a href="http://doc.qt.io/qt-5/qtexttable.html#rowEnd">rowEnd</a>() functions to obtain cursors at the start and end of each row.</p>
/// <p>Rows and columns within a <a href="http://doc.qt.io/qt-5/qtexttable.html">QTextTable</a> can be merged and split using the <a href="http://doc.qt.io/qt-5/qtexttable.html#mergeCells">mergeCells</a>() and <a href="http://doc.qt.io/qt-5/qtexttable.html#splitCell">splitCell</a>() functions. However, only cells that span multiple rows or columns can be split. (Merging or splitting does not increase or decrease the number of rows and columns.)</p>
/// <p>Note that if you have merged multiple columns and rows into one cell, you will not be able to split the merged cell into new cells spanning over more than one row or column. To be able to split cells spanning over several rows and columns you need to do this over several iterations.</p>
/// <div class="table"><table class="generic" width="80%">
///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/texttable-split.png" alt="Original Table"></td><td>Suppose we have a 2x3 table of names and addresses. To merge both columns in the first row we invoke <a href="http://doc.qt.io/qt-5/qtexttable.html#mergeCells">mergeCells</a>() with <i>row</i> = 0, <i>column</i> = 0, <i>numRows</i> = 1 and <i>numColumns</i> = 2.<pre class="cpp">
///
/// &#32;     table<span class="operator">-</span><span class="operator">&gt;</span>mergeCells(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">2</span>);
///
/// </pre>
/// </td></tr>
/// <tr valign="top" class="even"><td><img src="http://doc.qt.io/qt-5/images/texttable-merge.png" alt=""></td><td>This gives us the following table. To split the first row of the table back into two cells, we invoke the <a href="http://doc.qt.io/qt-5/qtexttable.html#splitCell">splitCell</a>() function with <i>numRows</i> and <i>numCols</i> = 1.<pre class="cpp">
///
/// &#32;     table<span class="operator">-</span><span class="operator">&gt;</span>splitCell(<span class="number">0</span><span class="operator">,</span> <span class="number">0</span><span class="operator">,</span> <span class="number">1</span><span class="operator">,</span> <span class="number">1</span>);
///
/// </pre>
/// </td></tr>
/// <tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/texttable-split.png" alt="Split Table"></td><td>This results in the original table.</td></tr>
/// </tbody></table></div></div>
#[repr(C)]
pub struct QTextTable {
    _unused: u8,
}
impl QTextTable {
    /// <p>Appends <i>count</i> columns at the right side of the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::appendColumns(int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#appendColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>count</i> columns at the right side of the table.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#resize">resize</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeRows">removeRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeColumns">removeColumns</a>(), and <a href="http://doc.qt.io/qt-5/qtexttable.html#appendRows">appendRows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_columns(&mut self, count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_appendColumns(self as *mut crate::QTextTable, count)
    }

    /// <p>Appends <i>count</i> rows at the bottom of the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::appendRows(int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#appendRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>count</i> rows at the bottom of the table.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#resize">resize</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeRows">removeRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeColumns">removeColumns</a>(), and <a href="http://doc.qt.io/qt-5/qtexttable.html#appendColumns">appendColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_rows(&mut self, count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_appendRows(self as *mut crate::QTextTable, count)
    }

    /// <p>Returns the table cell at the given <i>row</i> and <i>column</i> in the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableCell QTextTable::cellAt(int row, int col) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#cellAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the table cell at the given <i>row</i> and <i>column</i> in the table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#columns">columns</a>() and <a href="http://doc.qt.io/qt-5/qtexttable.html#rows">rows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cell_at_2_int(
        &self,
        row: ::std::os::raw::c_int,
        col: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextTableCell> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_cellAt(
            self as *const crate::QTextTable,
            row,
            col,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableCell QTextTable::cellAt(int position) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#cellAt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the table cell that contains the character at the given <i>position</i> in the document.</p></div>
    #[inline(always)]
    pub unsafe fn cell_at_int(
        &self,
        position: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextTableCell> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_cellAt1(
            self as *const crate::QTextTable,
            position,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableCell QTextTable::cellAt(const QTextCursor& c) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#cellAt-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the table cell containing the given <i>cursor</i>.</p></div>
    #[inline(always)]
    pub unsafe fn cell_at_q_text_cursor(
        &self,
        c: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::CppBox<crate::QTextTableCell> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_cellAt2(
            self as *const crate::QTextTable,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(c).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of columns in the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTable::columns() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#columns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of columns in the table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#rows">rows</a>().</p></div>
    #[inline(always)]
    pub unsafe fn columns(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_columns(self as *const crate::QTextTable)
    }

    /// <p>Returns the table's format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextTableFormat QTextTable::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the table's format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::cpp_core::CppBox<crate::QTextTableFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextTable_format(self as *const crate::QTextTable);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Inserts a number of <i>columns</i> before the column with the specified <i>index</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::insertColumns(int pos, int num)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#insertColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a number of <i>columns</i> before the column with the specified <i>index</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#resize">resize</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeRows">removeRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeColumns">removeColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#appendRows">appendRows</a>(), and <a href="http://doc.qt.io/qt-5/qtexttable.html#appendColumns">appendColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_columns(
        &mut self,
        pos: ::std::os::raw::c_int,
        num: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_insertColumns(
            self as *mut crate::QTextTable,
            pos,
            num,
        )
    }

    /// <p>Inserts a number of <i>rows</i> before the row with the specified <i>index</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::insertRows(int pos, int num)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#insertRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a number of <i>rows</i> before the row with the specified <i>index</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#resize">resize</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeRows">removeRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeColumns">removeColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#appendRows">appendRows</a>(), and <a href="http://doc.qt.io/qt-5/qtexttable.html#appendColumns">appendColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_rows(&mut self, pos: ::std::os::raw::c_int, num: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_insertRows(self as *mut crate::QTextTable, pos, num)
    }

    /// <p>Merges the cell at the specified <i>row</i> and <i>column</i> with the adjacent cells into one cell. The new cell will span <i>numRows</i> rows and <i>numCols</i> columns. This method does nothing if <i>numRows</i> or <i>numCols</i> is less than the current number of rows or columns spanned by the cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::mergeCells(int row, int col, int numRows, int numCols)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#mergeCells">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Merges the cell at the specified <i>row</i> and <i>column</i> with the adjacent cells into one cell. The new cell will span <i>numRows</i> rows and <i>numCols</i> columns. This method does nothing if <i>numRows</i> or <i>numCols</i> is less than the current number of rows or columns spanned by the cell.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#splitCell">splitCell</a>().</p></div>
    #[inline(always)]
    pub unsafe fn merge_cells_4a(
        &mut self,
        row: ::std::os::raw::c_int,
        col: ::std::os::raw::c_int,
        num_rows: ::std::os::raw::c_int,
        num_cols: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_mergeCells(
            self as *mut crate::QTextTable,
            row,
            col,
            num_rows,
            num_cols,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::mergeCells(const QTextCursor& cursor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#mergeCells-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Merges the cells selected by the provided <i>cursor</i>.</p>
    /// <p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#splitCell">splitCell</a>().</p></div>
    #[inline(always)]
    pub unsafe fn merge_cells_1a(
        &mut self,
        cursor: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_mergeCells1(
            self as *mut crate::QTextTable,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(cursor)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QTextTable::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextTable_metaObject(self as *const crate::QTextTable);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void QTextTable::QTextTable(QTextDocument* doc)```</span>.
    #[inline(always)]
    pub unsafe fn new(
        doc: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QTextDocument>>,
    ) -> ::cpp_core::CppBox<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_QTextTable(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QTextDocument>>::cast_into(doc)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QTextTable::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_qt_metacall(
            self as *mut crate::QTextTable,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QTextTable::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_qt_metacast(
            self as *mut crate::QTextTable,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes a number of <i>columns</i> starting with the column at the specified <i>index</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::removeColumns(int pos, int num)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#removeColumns">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes a number of <i>columns</i> starting with the column at the specified <i>index</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeRows">removeRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#resize">resize</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#appendRows">appendRows</a>(), and <a href="http://doc.qt.io/qt-5/qtexttable.html#appendColumns">appendColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_columns(
        &mut self,
        pos: ::std::os::raw::c_int,
        num: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_removeColumns(
            self as *mut crate::QTextTable,
            pos,
            num,
        )
    }

    /// <p>Removes a number of <i>rows</i> starting with the row at the specified <i>index</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::removeRows(int pos, int num)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#removeRows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes a number of <i>rows</i> starting with the row at the specified <i>index</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#resize">resize</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeColumns">removeColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#appendRows">appendRows</a>(), and <a href="http://doc.qt.io/qt-5/qtexttable.html#appendColumns">appendColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_rows(&mut self, pos: ::std::os::raw::c_int, num: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_removeRows(self as *mut crate::QTextTable, pos, num)
    }

    /// <p>Resizes the table to contain the required number of <i>rows</i> and <i>columns</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::resize(int rows, int cols)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Resizes the table to contain the required number of <i>rows</i> and <i>columns</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#insertRows">insertRows</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#insertColumns">insertColumns</a>(), <a href="http://doc.qt.io/qt-5/qtexttable.html#removeRows">removeRows</a>(), and <a href="http://doc.qt.io/qt-5/qtexttable.html#removeColumns">removeColumns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, rows: ::std::os::raw::c_int, cols: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_resize(self as *mut crate::QTextTable, rows, cols)
    }

    /// <p>Returns a cursor pointing to the end of the row that contains the given <i>cursor</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextTable::rowEnd(const QTextCursor& c) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#rowEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a cursor pointing to the end of the row that contains the given <i>cursor</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#rowStart">rowStart</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row_end(
        &self,
        c: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_rowEnd(
            self as *const crate::QTextTable,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(c).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a cursor pointing to the start of the row that contains the given <i>cursor</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextCursor QTextTable::rowStart(const QTextCursor& c) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#rowStart">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a cursor pointing to the start of the row that contains the given <i>cursor</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#rowEnd">rowEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn row_start(
        &self,
        c: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) -> ::cpp_core::CppBox<crate::QTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_rowStart(
            self as *const crate::QTextTable,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(c).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of rows in the table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QTextTable::rows() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#rows">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of rows in the table.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#columns">columns</a>().</p></div>
    #[inline(always)]
    pub unsafe fn rows(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_rows(self as *const crate::QTextTable)
    }

    /// <p>Sets the table's <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::setFormat(const QTextTableFormat& format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the table's <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(
        &mut self,
        format: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextTableFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_setFormat(
            self as *mut crate::QTextTable,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextTableFormat>>::cast_into(format)
                .as_raw_ptr(),
        )
    }

    /// <p>Splits the specified cell at <i>row</i> and <i>column</i> into an array of multiple cells with dimensions specified by <i>numRows</i> and <i>numCols</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QTextTable::splitCell(int row, int col, int numRows, int numCols)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttable.html#splitCell">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Splits the specified cell at <i>row</i> and <i>column</i> into an array of multiple cells with dimensions specified by <i>numRows</i> and <i>numCols</i>.</p>
    /// <p><b>Note: </b>It is only possible to split cells that span multiple rows or columns, such as rows that have been merged using <a href="http://doc.qt.io/qt-5/qtexttable.html#mergeCells">mergeCells</a>().</p><p>This function was introduced in  Qt 4.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttable.html#mergeCells">mergeCells</a>().</p></div>
    #[inline(always)]
    pub unsafe fn split_cell(
        &mut self,
        row: ::std::os::raw::c_int,
        col: ::std::os::raw::c_int,
        num_rows: ::std::os::raw::c_int,
        num_cols: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_splitCell(
            self as *mut crate::QTextTable,
            row,
            col,
            num_rows,
            num_cols,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextTable::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QTextTable::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QTextTable_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_validator {
    //! C++ type: <span style='color: green;'>```QValidator```</span>

    /// <p>This enum type defines the states in which a validated string can exist.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QValidator::State```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum type defines the states in which a validated string can exist.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct State(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for State {
        fn from(value: ::std::os::raw::c_int) -> Self {
            State(value)
        }
    }

    impl From<State> for ::std::os::raw::c_int {
        fn from(value: State) -> Self {
            value.0
        }
    }

    impl State {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl State {
        /// The string is <i>clearly</i> invalid. (C++ enum variant: <span style='color: green;'>```Invalid = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const Invalid: crate::q_validator::State = crate::q_validator::State(0);
        /// The string is a plausible intermediate value. (C++ enum variant: <span style='color: green;'>```Intermediate = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const Intermediate: crate::q_validator::State = crate::q_validator::State(1);
        /// The string is acceptable as a final result; i.e. it is valid. (C++ enum variant: <span style='color: green;'>```Acceptable = 2```</span>)
        #[allow(non_upper_case_globals)]
        pub const Acceptable: crate::q_validator::State = crate::q_validator::State(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qvalidator.html">QValidator</a> class provides validation of input text.</p>
///
/// C++ class: <span style='color: green;'>```QValidator```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvalidator.html">QValidator</a> class provides validation of input text.</p>
/// <p>The class itself is abstract. Two subclasses, <a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> and <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a>, provide basic numeric-range checking, and <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> provides general checking using a custom regular expression.</p>
/// <p>If the built-in validators aren't sufficient, you can subclass <a href="http://doc.qt.io/qt-5/qvalidator.html">QValidator</a>. The class has two virtual functions: <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">validate</a>() and <a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">fixup</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvalidator.html#validate">validate</a>() must be implemented by every subclass. It returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> or <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> depending on whether its argument is valid (for the subclass's definition of valid).</p>
/// <p>These three states require some explanation. An <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> string is <i>clearly</i> invalid. <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> is less obvious: the concept of validity is difficult to apply when the string is incomplete (still being edited). <a href="http://doc.qt.io/qt-5/qvalidator.html">QValidator</a> defines <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> as the property of a string that is neither clearly invalid nor acceptable as a final result. <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> means that the string is acceptable as a final result. One might say that any string that is a plausible intermediate state during entry of an <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> string is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>.</p>
/// <p>Here are some examples:</p>
/// <ul>
/// <li>For a line edit that accepts integers from 10 to 1000 inclusive, 42 and 123 are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, the empty string and 5 are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>, and "asdf" and 1114 is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>.</li>
/// <li>For an editable combobox that accepts URLs, any well-formed URL is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, "http://example.com/," is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> (it might be a cut and paste action that accidentally took in a comma at the end), the empty string is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> (the user might select and delete all of the text in preparation for entering a new URL) and "http:///./" is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>.</li>
/// <li>For a spin box that accepts lengths, "11cm" and "1in" are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, "11" and the empty string are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>, and "http://example.com" and "hour" are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>.</li>
/// </ul>
/// <p><a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">fixup</a>() is provided for validators that can repair some user errors. The default implementation does nothing. <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a>, for example, will call <a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">fixup</a>() if the user presses Enter (or Return) and the content is not currently valid. This allows the <a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">fixup</a>() function the opportunity of performing some magic to make an <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> string <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>.</p>
/// <p>A validator has a locale, set with <a href="http://doc.qt.io/qt-5/qvalidator.html#setLocale">setLocale</a>(). It is typically used to parse localized data. For example, <a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> and <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> use it to parse localized representations of integers and doubles.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvalidator.html">QValidator</a> is typically used with <a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a>, <a href="http://doc.qt.io/qt-5/qspinbox.html">QSpinBox</a> and <a href="http://doc.qt.io/qt-5/qcombobox.html">QComboBox</a>.</p></div>
#[repr(C)]
pub struct QValidator {
    _unused: u8,
}
impl QValidator {
    /// <p>This signal is emitted when any property that may affect the validity of a string has changed.</p>
    ///
    /// Returns a built-in Qt signal `QValidator::changed` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvalidator.html#changed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when any property that may affect the validity of a string has changed.</p></div>
    #[inline(always)]
    pub fn changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2changed()\0"),
            )
        }
    }

    /// <p>This function attempts to change <i>input</i> to be valid according to this validator's rules. It need not result in a valid string: callers of this function must re-test afterwards; the default does nothing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QValidator::fixup(QString& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function attempts to change <i>input</i> to be valid according to this validator's rules. It need not result in a valid string: callers of this function must re-test afterwards; the default does nothing.</p>
    /// <p>Reimplementations of this function can change <i>input</i> even if they do not produce a valid string. For example, an ISBN validator might want to delete every character except digits and "-", even if the result is still not a valid ISBN; a surname validator might want to remove whitespace from the start and end of the string, even if the resulting string is not in the list of accepted surnames.</p></div>
    #[inline(always)]
    pub unsafe fn fixup(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QValidator_fixup(
            self as *const crate::QValidator,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(arg1)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns the locale for the validator. The locale is by default initialized to the same as QLocale().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLocale QValidator::locale() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the locale for the validator. The locale is by default initialized to the same as QLocale().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvalidator.html#setLocale">setLocale</a>() and <a href="http://doc.qt.io/qt-5/qlocale.html#QLocale">QLocale::QLocale</a>().</p></div>
    #[inline(always)]
    pub unsafe fn locale(&self) -> ::cpp_core::CppBox<::qt_core::QLocale> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QValidator_locale(self as *const crate::QValidator);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QValidator::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QValidator_metaObject(self as *const crate::QValidator);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QValidator::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QValidator_qt_metacall(
            self as *mut crate::QValidator,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QValidator::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QValidator_qt_metacast(
            self as *mut crate::QValidator,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Sets the <i>locale</i> that will be used for the validator. Unless setLocale has been called, the validator will use the default locale set with <a href="http://doc.qt.io/qt-5/qlocale.html#setDefault">QLocale::setDefault</a>(). If a default locale has not been set, it is the operating system's locale.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QValidator::setLocale(const QLocale& locale)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvalidator.html#setLocale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>locale</i> that will be used for the validator. Unless setLocale has been called, the validator will use the default locale set with <a href="http://doc.qt.io/qt-5/qlocale.html#setDefault">QLocale::setDefault</a>(). If a default locale has not been set, it is the operating system's locale.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() and <a href="http://doc.qt.io/qt-5/qlocale.html#setDefault">QLocale::setDefault</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_locale(
        &mut self,
        locale: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLocale>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QValidator_setLocale(
            self as *mut crate::QValidator,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLocale>>::cast_into(locale)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QValidator_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QValidator::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QValidator_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QValidator::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QValidator_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This virtual function returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> if <i>input</i> is invalid according to this validator's rules, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> if it is likely that a little more editing will make the input acceptable (e.g. the user types "4" into a widget which accepts integers between 10 and 99), and <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> if the input is valid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QValidator::State QValidator::validate(QString& arg1, int& arg2) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This virtual function returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> if <i>input</i> is invalid according to this validator's rules, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> if it is likely that a little more editing will make the input acceptable (e.g. the user types "4" into a widget which accepts integers between 10 and 99), and <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> if the input is valid.</p>
    /// <p>The function can change both <i>input</i> and <i>pos</i> (the cursor position) if required.</p></div>
    #[inline(always)]
    pub unsafe fn validate(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::MutRef<::std::os::raw::c_int>>,
    ) -> crate::q_validator::State {
        crate::__ffi::ctr_qt_gui_ffi_QValidator_validate(
            self as *const crate::QValidator,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(arg1)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<::std::os::raw::c_int>>::cast_into(arg2)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> class provides a validator that ensures a string contains a valid integer within a specified range.</p>
///
/// C++ class: <span style='color: green;'>```QIntValidator```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qintvalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> class provides a validator that ensures a string contains a valid integer within a specified range.</p>
/// <p>Example of use:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvalidator.html#QValidator">QValidator</a></span> <span class="operator">*</span>validator <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qintvalidator.html#QIntValidator">QIntValidator</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">999</span><span class="operator">,</span> <span class="keyword">this</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span> <span class="operator">*</span>edit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span>(<span class="keyword">this</span>);
///
///   <span class="comment">// the edit lineedit will only accept integers between 100 and 999</span>
///   edit<span class="operator">-</span><span class="operator">&gt;</span>setValidator(validator);
///
/// </pre>
/// <p>Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> str;
///   <span class="type">int</span> pos <span class="operator">=</span> <span class="number">0</span>;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qintvalidator.html#QIntValidator">QIntValidator</a></span> v(<span class="number">100</span><span class="operator">,</span> <span class="number">900</span><span class="operator">,</span> <span class="keyword">this</span>);
///
///   str <span class="operator">=</span> <span class="string">"1"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Intermediate</span>
///   str <span class="operator">=</span> <span class="string">"012"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Intermediate</span>
///
///   str <span class="operator">=</span> <span class="string">"123"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Acceptable</span>
///   str <span class="operator">=</span> <span class="string">"678"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Acceptable</span>
///
///   str <span class="operator">=</span> <span class="string">"999"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);    <span class="comment">// returns Intermediate</span>
///
///   str <span class="operator">=</span> <span class="string">"1234"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Invalid</span>
///   str <span class="operator">=</span> <span class="string">"-123"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Invalid</span>
///   str <span class="operator">=</span> <span class="string">"abc"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Invalid</span>
///   str <span class="operator">=</span> <span class="string">"12cm"</span>;
///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Invalid</span>
///
/// </pre>
/// <p>Notice that the value <code>999</code> returns Intermediate. Values consisting of a number of digits equal to or less than the max value are considered intermediate. This is intended because the digit that prevents a number from being in range is not necessarily the last digit typed. This also means that an intermediate number can have leading zeros.</p>
/// <p>The minimum and maximum values are set in one call with <a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">setRange</a>(), or individually with <a href="http://doc.qt.io/qt-5/qintvalidator.html#bottom-prop">setBottom</a>() and <a href="http://doc.qt.io/qt-5/qintvalidator.html#top-prop">setTop</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> uses its <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() to interpret the number. For example, in Arabic locales, <a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> will accept Arabic digits.</p>
/// <p><b>Note: </b>The <a href="http://doc.qt.io/qt-5/qlocale.html#NumberOption-enum">QLocale::NumberOptions</a> set on the <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() also affect the way the number is interpreted. For example, since <a href="http://doc.qt.io/qt-5/qlocale.html#NumberOption-enum">QLocale::RejectGroupSeparator</a> is not set by default, the validator will accept group separators. It is thus recommended to use <a href="http://doc.qt.io/qt-5/qlocale.html#toInt">QLocale::toInt</a>() to obtain the numeric value.</p></div>
#[repr(C)]
pub struct QIntValidator {
    _unused: u8,
}
impl QIntValidator {
    /// <p>This property holds the validator's lowest acceptable value</p>
    ///
    /// Returns a built-in Qt signal `QIntValidator::bottomChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's lowest acceptable value</p>
    /// <p>By default, this property's value is derived from the lowest signed integer available (typically -2147483647).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub fn bottom_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2bottomChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the validator's highest acceptable value</p>
    ///
    /// Returns a built-in Qt signal `QIntValidator::topChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's highest acceptable value</p>
    /// <p>By default, this property's value is derived from the highest signed integer available (typically 2147483647).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTop</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>topChanged</b></span>(int <i>top</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub fn top_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2topChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the validator's lowest acceptable value</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QIntValidator::bottom() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's lowest acceptable value</p>
    /// <p>By default, this property's value is derived from the lowest signed integer available (typically -2147483647).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bottom(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_bottom(self as *const crate::QIntValidator)
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">QValidator::fixup</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QIntValidator::fixup(QString& input) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#fixup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">QValidator::fixup</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fixup(
        &self,
        input: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_fixup(
            self as *const crate::QIntValidator,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(input)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QIntValidator::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_metaObject(
            self as *const crate::QIntValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a validator with a <i>parent</i> object that accepts all integers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIntValidator::QIntValidator(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#QIntValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i> object that accepts all integers.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QIntValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_QIntValidator(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a validator with a <i>parent</i>, that accepts integers from <i>minimum</i> to <i>maximum</i> inclusive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIntValidator::QIntValidator(int bottom, int top, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#QIntValidator-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i>, that accepts integers from <i>minimum</i> to <i>maximum</i> inclusive.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        bottom: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QIntValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_QIntValidator1(
            bottom,
            top,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> class provides a validator that ensures a string contains a valid integer within a specified range.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIntValidator::QIntValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> class provides a validator that ensures a string contains a valid integer within a specified range.</p>
    /// <p>Example of use:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvalidator.html#QValidator">QValidator</a></span> <span class="operator">*</span>validator <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qintvalidator.html#QIntValidator">QIntValidator</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">999</span><span class="operator">,</span> <span class="keyword">this</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span> <span class="operator">*</span>edit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span>(<span class="keyword">this</span>);
    ///
    ///   <span class="comment">// the edit lineedit will only accept integers between 100 and 999</span>
    ///   edit<span class="operator">-</span><span class="operator">&gt;</span>setValidator(validator);
    ///
    /// </pre>
    /// <p>Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> str;
    ///   <span class="type">int</span> pos <span class="operator">=</span> <span class="number">0</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qintvalidator.html#QIntValidator">QIntValidator</a></span> v(<span class="number">100</span><span class="operator">,</span> <span class="number">900</span><span class="operator">,</span> <span class="keyword">this</span>);
    ///
    ///   str <span class="operator">=</span> <span class="string">"1"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Intermediate</span>
    ///   str <span class="operator">=</span> <span class="string">"012"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Intermediate</span>
    ///
    ///   str <span class="operator">=</span> <span class="string">"123"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Acceptable</span>
    ///   str <span class="operator">=</span> <span class="string">"678"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Acceptable</span>
    ///
    ///   str <span class="operator">=</span> <span class="string">"999"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);    <span class="comment">// returns Intermediate</span>
    ///
    ///   str <span class="operator">=</span> <span class="string">"1234"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Invalid</span>
    ///   str <span class="operator">=</span> <span class="string">"-123"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Invalid</span>
    ///   str <span class="operator">=</span> <span class="string">"abc"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Invalid</span>
    ///   str <span class="operator">=</span> <span class="string">"12cm"</span>;
    ///   v<span class="operator">.</span>validate(str<span class="operator">,</span> pos);     <span class="comment">// returns Invalid</span>
    ///
    /// </pre>
    /// <p>Notice that the value <code>999</code> returns Intermediate. Values consisting of a number of digits equal to or less than the max value are considered intermediate. This is intended because the digit that prevents a number from being in range is not necessarily the last digit typed. This also means that an intermediate number can have leading zeros.</p>
    /// <p>The minimum and maximum values are set in one call with <a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">setRange</a>(), or individually with <a href="http://doc.qt.io/qt-5/qintvalidator.html#bottom-prop">setBottom</a>() and <a href="http://doc.qt.io/qt-5/qintvalidator.html#top-prop">setTop</a>().</p>
    /// <p><a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> uses its <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() to interpret the number. For example, in Arabic locales, <a href="http://doc.qt.io/qt-5/qintvalidator.html">QIntValidator</a> will accept Arabic digits.</p>
    /// <p><b>Note: </b>The <a href="http://doc.qt.io/qt-5/qlocale.html#NumberOption-enum">QLocale::NumberOptions</a> set on the <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() also affect the way the number is interpreted. For example, since <a href="http://doc.qt.io/qt-5/qlocale.html#NumberOption-enum">QLocale::RejectGroupSeparator</a> is not set by default, the validator will accept group separators. It is thus recommended to use <a href="http://doc.qt.io/qt-5/qlocale.html#toInt">QLocale::toInt</a>() to obtain the numeric value.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QIntValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_QIntValidator2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a validator with a <i>parent</i>, that accepts integers from <i>minimum</i> to <i>maximum</i> inclusive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QIntValidator::QIntValidator(int bottom, int top)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#QIntValidator-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i>, that accepts integers from <i>minimum</i> to <i>maximum</i> inclusive.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        bottom: ::std::os::raw::c_int,
        top: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QIntValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_QIntValidator3(bottom, top);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QIntValidator::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_qt_metacall(
            self as *mut crate::QIntValidator,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QIntValidator::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_qt_metacast(
            self as *mut crate::QIntValidator,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This property holds the validator's lowest acceptable value</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIntValidator::setBottom(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's lowest acceptable value</p>
    /// <p>By default, this property's value is derived from the lowest signed integer available (typically -2147483647).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bottom(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_setBottom(
            self as *mut crate::QIntValidator,
            arg1,
        )
    }

    /// <p>Sets the range of the validator to only accept integers between <i>bottom</i> and <i>top</i> inclusive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QIntValidator::setRange(int bottom, int top)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the range of the validator to only accept integers between <i>bottom</i> and <i>top</i> inclusive.</p></div>
    #[inline(always)]
    pub unsafe fn set_range(&mut self, bottom: ::std::os::raw::c_int, top: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_setRange(
            self as *mut crate::QIntValidator,
            bottom,
            top,
        )
    }

    /// <p>This property holds the validator's highest acceptable value</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QIntValidator::setTop(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's highest acceptable value</p>
    /// <p>By default, this property's value is derived from the highest signed integer available (typically 2147483647).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTop</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_top(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_setTop(self as *mut crate::QIntValidator, arg1)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This property holds the validator's highest acceptable value</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QIntValidator::top() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's highest acceptable value</p>
    /// <p>By default, this property's value is derived from the highest signed integer available (typically 2147483647).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTop</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qintvalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn top(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_top(self as *const crate::QIntValidator)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QIntValidator::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QIntValidator::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QIntValidator_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">QValidator::validate</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QValidator::State QIntValidator::validate(QString& arg1, int& arg2) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#validate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">QValidator::validate</a>().</p>
    /// <p>Returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> if the <i>input</i> is an integer within the valid range, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> if the <i>input</i> is a prefix of an integer in the valid range, and <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> otherwise.</p>
    /// <p>If the valid range consists of just positive integers (e.g., 32 to 100) and <i>input</i> is a negative integer, then Invalid is returned. (On the other hand, if the range consists of negative integers (e.g., -100 to -32) and <i>input</i> is a positive integer, then Intermediate is returned, because the user might be just about to type the minus (especially for right-to-left languages).</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type">int</span> pos <span class="operator">=</span> <span class="number">0</span>;
    ///
    ///   s <span class="operator">=</span> <span class="string">"abc"</span>;
    ///   v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
    ///
    ///   s <span class="operator">=</span> <span class="string">"5"</span>;
    ///   v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Intermediate</span>
    ///
    ///   s <span class="operator">=</span> <span class="string">"50"</span>;
    ///   v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Acceptable</span>
    ///
    /// </pre>
    /// <p>By default, the <i>pos</i> parameter is not used by this validator.</p></div>
    #[inline(always)]
    pub unsafe fn validate(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::MutRef<::std::os::raw::c_int>>,
    ) -> crate::q_validator::State {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_validate(
            self as *const crate::QIntValidator,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(arg1)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<::std::os::raw::c_int>>::cast_into(arg2)
                .as_mut_raw_ptr(),
        )
    }
}

pub mod q_double_validator {
    //! C++ type: <span style='color: green;'>```QDoubleValidator```</span>

    /// <p>This enum defines the allowed notations for entering a double.</p>
    ///
    /// C++ enum: <span style='color: green;'>```QDoubleValidator::Notation```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This enum defines the allowed notations for entering a double.</p>
    ///
    /// <p>This enum was introduced or modified in  Qt 4.3.</p></div>
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Notation(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Notation {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Notation(value)
        }
    }

    impl From<Notation> for ::std::os::raw::c_int {
        fn from(value: Notation) -> Self {
            value.0
        }
    }

    impl Notation {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Notation {
        /// The string is written as a standard number (i.e. 0.015). (C++ enum variant: <span style='color: green;'>```StandardNotation = 0```</span>)
        #[allow(non_upper_case_globals)]
        pub const StandardNotation: crate::q_double_validator::Notation =
            crate::q_double_validator::Notation(0);
        /// The string is written in scientific form. It may have an exponent part(i.e. 1.5E-2). (C++ enum variant: <span style='color: green;'>```ScientificNotation = 1```</span>)
        #[allow(non_upper_case_globals)]
        pub const ScientificNotation: crate::q_double_validator::Notation =
            crate::q_double_validator::Notation(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> class provides range checking of floating-point numbers.</p>
///
/// C++ class: <span style='color: green;'>```QDoubleValidator```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> class provides range checking of floating-point numbers.</p>
/// <p><a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> provides an upper bound, a lower bound, and a limit on the number of digits after the decimal point. It does not provide a <a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">fixup</a>() function.</p>
/// <p>You can set the acceptable range in one call with <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>(), or with <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#bottom-prop">setBottom</a>() and <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#top-prop">setTop</a>(). Set the number of decimal places with <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#decimals-prop">setDecimals</a>(). The <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#validate">validate</a>() function returns the validation state.</p>
/// <p><a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> uses its <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() to interpret the number. For example, in the German locale, "1,234" will be accepted as the fractional number 1.234. In Arabic locales, <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> will accept Arabic digits.</p>
/// <p><b>Note: </b>The <a href="http://doc.qt.io/qt-5/qlocale.html#NumberOption-enum">QLocale::NumberOptions</a> set on the <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() also affect the way the number is interpreted. For example, since <a href="http://doc.qt.io/qt-5/qlocale.html#NumberOption-enum">QLocale::RejectGroupSeparator</a> is not set by default, the validator will accept group separators. It is thus recommended to use <a href="http://doc.qt.io/qt-5/qlocale.html#toDouble">QLocale::toDouble</a>() to obtain the numeric value.</p></div>
#[repr(C)]
pub struct QDoubleValidator {
    _unused: u8,
}
impl QDoubleValidator {
    /// <p>This property holds the validator's minimum acceptable value</p>
    ///
    /// Returns a built-in Qt signal `QDoubleValidator::bottomChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's minimum acceptable value</p>
    /// <p>By default, this property contains a value of -infinity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(<i>double</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(double <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub fn bottom_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2bottomChanged(double)\0"),
            )
        }
    }

    /// <p>This property holds the validator's maximum acceptable value</p>
    ///
    /// Returns a built-in Qt signal `QDoubleValidator::topChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's maximum acceptable value</p>
    /// <p>By default, this property contains a value of infinity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTop</b></span>(<i>double</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>topChanged</b></span>(double <i>top</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub fn top_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2topChanged(double)\0"),
            )
        }
    }

    /// <p>This property holds the validator's maximum number of digits after the decimal point</p>
    ///
    /// Returns a built-in Qt signal `QDoubleValidator::decimalsChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#decimals-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's maximum number of digits after the decimal point</p>
    /// <p>By default, this property contains a value of 1000.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>decimals</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDecimals</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>decimalsChanged</b></span>(int <i>decimals</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub fn decimals_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2decimalsChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the notation of how a string can describe a number</p>
    ///
    /// Returns a built-in Qt signal `QDoubleValidator::notationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#notation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the notation of how a string can describe a number</p>
    /// <p>By default, this property is set to <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">ScientificNotation</a>.</p>
    /// <p>This property was introduced in  Qt 4.3.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QDoubleValidator::Notation </td><td class="memItemRight bottomAlign"><span class="name"><b>notation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNotation</b></span>(<i>QDoubleValidator::Notation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>notationChanged</b></span>(QDoubleValidator::Notation <i>notation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">Notation</a>.</p></div>
    #[inline(always)]
    pub fn notation_changed(&self) -> ::qt_core::Signal<(crate::q_double_validator::Notation,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2notationChanged(QDoubleValidator::Notation)\0",
                ),
            )
        }
    }

    /// <p>This property holds the validator's minimum acceptable value</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QDoubleValidator::bottom() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's minimum acceptable value</p>
    /// <p>By default, this property contains a value of -infinity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(<i>double</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn bottom(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_bottom(self as *const crate::QDoubleValidator)
    }

    /// <p>This property holds the validator's maximum number of digits after the decimal point</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QDoubleValidator::decimals() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#decimals-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's maximum number of digits after the decimal point</p>
    /// <p>By default, this property contains a value of 1000.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>decimals</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDecimals</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn decimals(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_decimals(
            self as *const crate::QDoubleValidator,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QDoubleValidator::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_metaObject(
            self as *const crate::QDoubleValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a validator object with a <i>parent</i> object that accepts any double.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDoubleValidator::QDoubleValidator(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#QDoubleValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator object with a <i>parent</i> object that accepts any double.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QDoubleValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_QDoubleValidator(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a validator object with a <i>parent</i> object. This validator will accept doubles from <i>bottom</i> to <i>top</i> inclusive, with up to <i>decimals</i> digits after the decimal point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDoubleValidator::QDoubleValidator(double bottom, double top, int decimals, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#QDoubleValidator-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator object with a <i>parent</i> object. This validator will accept doubles from <i>bottom</i> to <i>top</i> inclusive, with up to <i>decimals</i> digits after the decimal point.</p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        bottom: ::std::os::raw::c_double,
        top: ::std::os::raw::c_double,
        decimals: ::std::os::raw::c_int,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QDoubleValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_QDoubleValidator1(
            bottom,
            top,
            decimals,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> class provides range checking of floating-point numbers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDoubleValidator::QDoubleValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> class provides range checking of floating-point numbers.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> provides an upper bound, a lower bound, and a limit on the number of digits after the decimal point. It does not provide a <a href="http://doc.qt.io/qt-5/qvalidator.html#fixup">fixup</a>() function.</p>
    /// <p>You can set the acceptable range in one call with <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>(), or with <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#bottom-prop">setBottom</a>() and <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#top-prop">setTop</a>(). Set the number of decimal places with <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#decimals-prop">setDecimals</a>(). The <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#validate">validate</a>() function returns the validation state.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> uses its <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() to interpret the number. For example, in the German locale, "1,234" will be accepted as the fractional number 1.234. In Arabic locales, <a href="http://doc.qt.io/qt-5/qdoublevalidator.html">QDoubleValidator</a> will accept Arabic digits.</p>
    /// <p><b>Note: </b>The <a href="http://doc.qt.io/qt-5/qlocale.html#NumberOption-enum">QLocale::NumberOptions</a> set on the <a href="http://doc.qt.io/qt-5/qvalidator.html#locale">locale</a>() also affect the way the number is interpreted. For example, since <a href="http://doc.qt.io/qt-5/qlocale.html#NumberOption-enum">QLocale::RejectGroupSeparator</a> is not set by default, the validator will accept group separators. It is thus recommended to use <a href="http://doc.qt.io/qt-5/qlocale.html#toDouble">QLocale::toDouble</a>() to obtain the numeric value.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QDoubleValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_QDoubleValidator2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a validator object with a <i>parent</i> object. This validator will accept doubles from <i>bottom</i> to <i>top</i> inclusive, with up to <i>decimals</i> digits after the decimal point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QDoubleValidator::QDoubleValidator(double bottom, double top, int decimals)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#QDoubleValidator-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator object with a <i>parent</i> object. This validator will accept doubles from <i>bottom</i> to <i>top</i> inclusive, with up to <i>decimals</i> digits after the decimal point.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        bottom: ::std::os::raw::c_double,
        top: ::std::os::raw::c_double,
        decimals: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QDoubleValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_QDoubleValidator3(bottom, top, decimals);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the notation of how a string can describe a number</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator::Notation QDoubleValidator::notation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#notation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the notation of how a string can describe a number</p>
    /// <p>By default, this property is set to <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">ScientificNotation</a>.</p>
    /// <p>This property was introduced in  Qt 4.3.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Notation </td><td class="memItemRight bottomAlign"><span class="name"><b>notation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNotation</b></span>(<i>Notation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">Notation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn notation(&self) -> crate::q_double_validator::Notation {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_notation(
            self as *const crate::QDoubleValidator,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QDoubleValidator::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_qt_metacall(
            self as *mut crate::QDoubleValidator,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QDoubleValidator::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_qt_metacast(
            self as *mut crate::QDoubleValidator,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This property holds the validator's minimum acceptable value</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDoubleValidator::setBottom(double arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's minimum acceptable value</p>
    /// <p>By default, this property contains a value of -infinity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(<i>double</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bottom(&mut self, arg1: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_setBottom(
            self as *mut crate::QDoubleValidator,
            arg1,
        )
    }

    /// <p>This property holds the validator's maximum number of digits after the decimal point</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDoubleValidator::setDecimals(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#decimals-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's maximum number of digits after the decimal point</p>
    /// <p>By default, this property contains a value of 1000.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>decimals</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDecimals</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_decimals(&mut self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_setDecimals(
            self as *mut crate::QDoubleValidator,
            arg1,
        )
    }

    /// <p>This property holds the notation of how a string can describe a number</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDoubleValidator::setNotation(QDoubleValidator::Notation arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#notation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the notation of how a string can describe a number</p>
    /// <p>By default, this property is set to <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">ScientificNotation</a>.</p>
    /// <p>This property was introduced in  Qt 4.3.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Notation </td><td class="memItemRight bottomAlign"><span class="name"><b>notation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNotation</b></span>(<i>Notation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">Notation</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_notation(&mut self, arg1: crate::q_double_validator::Notation) {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_setNotation(
            self as *mut crate::QDoubleValidator,
            arg1,
        )
    }

    /// <p>Sets the validator to accept doubles from <i>minimum</i> to <i>maximum</i> inclusive, with at most <i>decimals</i> digits after the decimal point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QDoubleValidator::setRange(double bottom, double top, int decimals = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the validator to accept doubles from <i>minimum</i> to <i>maximum</i> inclusive, with at most <i>decimals</i> digits after the decimal point.</p></div>
    #[inline(always)]
    pub unsafe fn set_range_3a(
        &mut self,
        bottom: ::std::os::raw::c_double,
        top: ::std::os::raw::c_double,
        decimals: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_setRange(
            self as *mut crate::QDoubleValidator,
            bottom,
            top,
            decimals,
        )
    }

    /// <p>Sets the validator to accept doubles from <i>minimum</i> to <i>maximum</i> inclusive, with at most <i>decimals</i> digits after the decimal point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual void QDoubleValidator::setRange(double bottom, double top)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the validator to accept doubles from <i>minimum</i> to <i>maximum</i> inclusive, with at most <i>decimals</i> digits after the decimal point.</p></div>
    #[inline(always)]
    pub unsafe fn set_range_2a(
        &mut self,
        bottom: ::std::os::raw::c_double,
        top: ::std::os::raw::c_double,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_setRange1(
            self as *mut crate::QDoubleValidator,
            bottom,
            top,
        )
    }

    /// <p>This property holds the validator's maximum acceptable value</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QDoubleValidator::setTop(double arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's maximum acceptable value</p>
    /// <p>By default, this property contains a value of infinity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTop</b></span>(<i>double</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_top(&mut self, arg1: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_setTop(
            self as *mut crate::QDoubleValidator,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This property holds the validator's maximum acceptable value</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QDoubleValidator::top() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the validator's maximum acceptable value</p>
    /// <p>By default, this property contains a value of infinity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTop</b></span>(<i>double</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qdoublevalidator.html#setRange">setRange</a>().</p></div>
    #[inline(always)]
    pub unsafe fn top(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_top(self as *const crate::QDoubleValidator)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QDoubleValidator::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QDoubleValidator::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">QValidator::validate</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QValidator::State QDoubleValidator::validate(QString& arg1, int& arg2) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#validate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">QValidator::validate</a>().</p>
    /// <p>Returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> if the string <i>input</i> contains a double that is within the valid range and is in the correct format.</p>
    /// <p>Returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> if <i>input</i> contains a double that is outside the range or is in the wrong format; e.g. with too many digits after the decimal point or is empty.</p>
    /// <p>Returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> if the <i>input</i> is not a double.</p>
    /// <p>Note: If the valid range consists of just positive doubles (e.g. 0.0 to 100.0) and <i>input</i> is a negative double then <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> is returned. If <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#notation-prop">notation</a>() is set to <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">StandardNotation</a>, and the input contains more digits before the decimal point than a double in the valid range may have, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> is returned. If <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#notation-prop">notation</a>() is <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#Notation-enum">ScientificNotation</a>, and the input is not in the valid range, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> is returned. The value may yet become valid by changing the exponent.</p>
    /// <p>By default, the <i>pos</i> parameter is not used by this validator.</p></div>
    #[inline(always)]
    pub unsafe fn validate(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
        arg2: impl ::cpp_core::CastInto<::cpp_core::MutRef<::std::os::raw::c_int>>,
    ) -> crate::q_validator::State {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_validate(
            self as *const crate::QDoubleValidator,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(arg1)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<::std::os::raw::c_int>>::cast_into(arg2)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> class is used to check a string against a regular expression.</p>
///
/// C++ class: <span style='color: green;'>```QRegExpValidator```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> class is used to check a string against a regular expression.</p>
/// <p><a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> uses a regular expression (regexp) to determine whether an input string is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>, or <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>. The regexp can either be supplied when the <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> is constructed, or at a later time.</p>
/// <p>When <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> determines whether a string is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> or not, the regexp is treated as if it begins with the start of string assertion (<b>^</b>) and ends with the end of string assertion (<b>$</b>); the match is against the entire input string, or from the given position if a start position greater than zero is given.</p>
/// <p>If a string is a prefix of an <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> string, it is considered <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>. For example, "" and "A" are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> for the regexp <b>[A-Z][0-9]</b> (whereas "_" would be <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>).</p>
/// <p>For a brief introduction to Qt's regexp engine, see <a href="http://doc.qt.io/qt-5/qregexp.html">QRegExp</a>.</p>
/// <p>Example of use:</p>
/// <pre class="cpp">
///
///   <span class="comment">// regexp: optional '-' followed by between 1 and 3 digits</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qregexp.html">QRegExp</a></span> rx(<span class="string">"-?\\d{1,3}"</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvalidator.html#QValidator">QValidator</a></span> <span class="operator">*</span>validator <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qregexpvalidator.html#QRegExpValidator">QRegExpValidator</a></span>(rx<span class="operator">,</span> <span class="keyword">this</span>);
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span> <span class="operator">*</span>edit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span>(<span class="keyword">this</span>);
///   edit<span class="operator">-</span><span class="operator">&gt;</span>setValidator(validator);
///
/// </pre>
/// <p>Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.</p>
/// <pre class="cpp">
///
///   <span class="comment">// integers 1 to 9999</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qregexp.html">QRegExp</a></span> rx(<span class="string">"[1-9]\\d{0,3}"</span>);
///   <span class="comment">// the validator treats the regexp as "^[1-9]\\d{0,3}$"</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qregexpvalidator.html#QRegExpValidator">QRegExpValidator</a></span> v(rx<span class="operator">,</span> <span class="number">0</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> s;
///   <span class="type">int</span> pos <span class="operator">=</span> <span class="number">0</span>;
///
///   s <span class="operator">=</span> <span class="string">"0"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
///   s <span class="operator">=</span> <span class="string">"12345"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
///   s <span class="operator">=</span> <span class="string">"1"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Acceptable</span>
///
///   rx<span class="operator">.</span>setPattern(<span class="string">"\\S+"</span>);            <span class="comment">// one or more non-whitespace characters</span>
///   v<span class="operator">.</span>setRegExp(rx);
///   s <span class="operator">=</span> <span class="string">"myfile.txt"</span>;  v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
///   s <span class="operator">=</span> <span class="string">"my file.txt"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Invalid</span>
///
///   <span class="comment">// A, B or C followed by exactly five digits followed by W, X, Y or Z</span>
///   rx<span class="operator">.</span>setPattern(<span class="string">"[A-C]\\d{5}[W-Z]"</span>);
///   v<span class="operator">.</span>setRegExp(rx);
///   s <span class="operator">=</span> <span class="string">"a12345Z"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Invalid</span>
///   s <span class="operator">=</span> <span class="string">"A12345Z"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Acceptable</span>
///   s <span class="operator">=</span> <span class="string">"B12"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Intermediate</span>
///
///   <span class="comment">// match most 'readme' files</span>
///   rx<span class="operator">.</span>setPattern(<span class="string">"read\\S?me(\.(txt|asc|1st))?"</span>);
///   rx<span class="operator">.</span>setCaseSensitive(<span class="keyword">false</span>);
///   v<span class="operator">.</span>setRegExp(rx);
///   s <span class="operator">=</span> <span class="string">"readme"</span>;      v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
///   s <span class="operator">=</span> <span class="string">"README.1ST"</span>;  v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
///   s <span class="operator">=</span> <span class="string">"read me.txt"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Invalid</span>
///   s <span class="operator">=</span> <span class="string">"readm"</span>;       v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Intermediate</span>
///
/// </pre></div>
#[repr(C)]
pub struct QRegExpValidator {
    _unused: u8,
}
impl QRegExpValidator {
    /// <p>This property holds the regular expression used for validation</p>
    ///
    /// Returns a built-in Qt signal `QRegExpValidator::regExpChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html#regExp-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the regular expression used for validation</p>
    /// <p>By default, this property contains a regular expression with the pattern <code>.*</code> that matches any string.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> const QRegExp &amp;</td><td class="memItemRight bottomAlign"><span class="name"><b>regExp</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRegExp</b></span>(const QRegExp &amp;<i>rx</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>regExpChanged</b></span>(const QRegExp &amp;<i>regExp</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn reg_exp_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QRegExp,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2regExpChanged(const QRegExp&)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QRegExpValidator::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_metaObject(
            self as *const crate::QRegExpValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a validator with a <i>parent</i> object that accepts any string (including an empty one) as valid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegExpValidator::QRegExpValidator(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html#QRegExpValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i> object that accepts any string (including an empty one) as valid.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QRegExpValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_QRegExpValidator(
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a validator with a <i>parent</i> object that accepts all strings that match the regular expression <i>rx</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegExpValidator::QRegExpValidator(const QRegExp& rx, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html#QRegExpValidator-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i> object that accepts all strings that match the regular expression <i>rx</i>.</p>
    /// <p>The match is made against the entire string; e.g. if the regexp is <b>[A-Fa-f0-9]+</b> it will be treated as <b>^[A-Fa-f0-9]+$</b>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_reg_exp_q_object(
        rx: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QRegExpValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_QRegExpValidator1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(rx).as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                .as_mut_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> class is used to check a string against a regular expression.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegExpValidator::QRegExpValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> class is used to check a string against a regular expression.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> uses a regular expression (regexp) to determine whether an input string is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>, or <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>. The regexp can either be supplied when the <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> is constructed, or at a later time.</p>
    /// <p>When <a href="http://doc.qt.io/qt-5/qregexpvalidator.html">QRegExpValidator</a> determines whether a string is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> or not, the regexp is treated as if it begins with the start of string assertion (<b>^</b>) and ends with the end of string assertion (<b>$</b>); the match is against the entire input string, or from the given position if a start position greater than zero is given.</p>
    /// <p>If a string is a prefix of an <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> string, it is considered <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>. For example, "" and "A" are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> for the regexp <b>[A-Z][0-9]</b> (whereas "_" would be <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>).</p>
    /// <p>For a brief introduction to Qt's regexp engine, see <a href="http://doc.qt.io/qt-5/qregexp.html">QRegExp</a>.</p>
    /// <p>Example of use:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="comment">// regexp: optional '-' followed by between 1 and 3 digits</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregexp.html">QRegExp</a></span> rx(<span class="string">"-?\\d{1,3}"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvalidator.html#QValidator">QValidator</a></span> <span class="operator">*</span>validator <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qregexpvalidator.html#QRegExpValidator">QRegExpValidator</a></span>(rx<span class="operator">,</span> <span class="keyword">this</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span> <span class="operator">*</span>edit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span>(<span class="keyword">this</span>);
    ///   edit<span class="operator">-</span><span class="operator">&gt;</span>setValidator(validator);
    ///
    /// </pre>
    /// <p>Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="comment">// integers 1 to 9999</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregexp.html">QRegExp</a></span> rx(<span class="string">"[1-9]\\d{0,3}"</span>);
    ///   <span class="comment">// the validator treats the regexp as "^[1-9]\\d{0,3}$"</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregexpvalidator.html#QRegExpValidator">QRegExpValidator</a></span> v(rx<span class="operator">,</span> <span class="number">0</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> s;
    ///   <span class="type">int</span> pos <span class="operator">=</span> <span class="number">0</span>;
    ///
    ///   s <span class="operator">=</span> <span class="string">"0"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
    ///   s <span class="operator">=</span> <span class="string">"12345"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
    ///   s <span class="operator">=</span> <span class="string">"1"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Acceptable</span>
    ///
    ///   rx<span class="operator">.</span>setPattern(<span class="string">"\\S+"</span>);            <span class="comment">// one or more non-whitespace characters</span>
    ///   v<span class="operator">.</span>setRegExp(rx);
    ///   s <span class="operator">=</span> <span class="string">"myfile.txt"</span>;  v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
    ///   s <span class="operator">=</span> <span class="string">"my file.txt"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Invalid</span>
    ///
    ///   <span class="comment">// A, B or C followed by exactly five digits followed by W, X, Y or Z</span>
    ///   rx<span class="operator">.</span>setPattern(<span class="string">"[A-C]\\d{5}[W-Z]"</span>);
    ///   v<span class="operator">.</span>setRegExp(rx);
    ///   s <span class="operator">=</span> <span class="string">"a12345Z"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Invalid</span>
    ///   s <span class="operator">=</span> <span class="string">"A12345Z"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Acceptable</span>
    ///   s <span class="operator">=</span> <span class="string">"B12"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Intermediate</span>
    ///
    ///   <span class="comment">// match most 'readme' files</span>
    ///   rx<span class="operator">.</span>setPattern(<span class="string">"read\\S?me(\.(txt|asc|1st))?"</span>);
    ///   rx<span class="operator">.</span>setCaseSensitive(<span class="keyword">false</span>);
    ///   v<span class="operator">.</span>setRegExp(rx);
    ///   s <span class="operator">=</span> <span class="string">"readme"</span>;      v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
    ///   s <span class="operator">=</span> <span class="string">"README.1ST"</span>;  v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
    ///   s <span class="operator">=</span> <span class="string">"read me.txt"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Invalid</span>
    ///   s <span class="operator">=</span> <span class="string">"readm"</span>;       v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Intermediate</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QRegExpValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_QRegExpValidator2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a validator with a <i>parent</i> object that accepts all strings that match the regular expression <i>rx</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegExpValidator::QRegExpValidator(const QRegExp& rx)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html#QRegExpValidator-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i> object that accepts all strings that match the regular expression <i>rx</i>.</p>
    /// <p>The match is made against the entire string; e.g. if the regexp is <b>[A-Fa-f0-9]+</b> it will be treated as <b>^[A-Fa-f0-9]+$</b>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_reg_exp(
        rx: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
    ) -> ::cpp_core::CppBox<crate::QRegExpValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_QRegExpValidator3(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(rx).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QRegExpValidator::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_qt_metacall(
            self as *mut crate::QRegExpValidator,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QRegExpValidator::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_qt_metacast(
            self as *mut crate::QRegExpValidator,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This property holds the regular expression used for validation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRegExp& QRegExpValidator::regExp() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html#regExp-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the regular expression used for validation</p>
    /// <p>By default, this property contains a regular expression with the pattern <code>.*</code> that matches any string.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> const QRegExp &amp;</td><td class="memItemRight bottomAlign"><span class="name"><b>regExp</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRegExp</b></span>(const QRegExp &amp;<i>rx</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn reg_exp(&self) -> ::cpp_core::Ref<::qt_core::QRegExp> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_regExp(
            self as *const crate::QRegExpValidator,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This property holds the regular expression used for validation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QRegExpValidator::setRegExp(const QRegExp& rx)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html#regExp-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the regular expression used for validation</p>
    /// <p>By default, this property contains a regular expression with the pattern <code>.*</code> that matches any string.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> const QRegExp &amp;</td><td class="memItemRight bottomAlign"><span class="name"><b>regExp</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRegExp</b></span>(const QRegExp &amp;<i>rx</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_reg_exp(
        &mut self,
        rx: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_setRegExp(
            self as *mut crate::QRegExpValidator,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(rx).as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QRegExpValidator::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QRegExpValidator::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">QValidator::validate</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QValidator::State QRegExpValidator::validate(QString& input, int& pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html#validate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">QValidator::validate</a>().</p>
    /// <p>Returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> if <i>input</i> is matched by the regular expression for this validator, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> if it has matched partially (i.e. could be a valid match if additional valid characters are added), and <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> if <i>input</i> is not matched.</p>
    /// <p>Additionally, if <i>input</i> is not matched, the <i>pos</i> parameter is set to the length of the <i>input</i> parameter.</p>
    /// <p>For example, if the regular expression is <b>\w\d\d</b> (word-character, digit, digit) then "A57" is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, "E5" is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>, and "+9" is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregexp.html#exactMatch">QRegExp::exactMatch</a>().</p></div>
    #[inline(always)]
    pub unsafe fn validate(
        &self,
        input: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
        pos: impl ::cpp_core::CastInto<::cpp_core::MutRef<::std::os::raw::c_int>>,
    ) -> crate::q_validator::State {
        crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_validate(
            self as *const crate::QRegExpValidator,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(input)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<::std::os::raw::c_int>>::cast_into(pos)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> class is used to check a string against a regular expression.</p>
///
/// C++ class: <span style='color: green;'>```QRegularExpressionValidator```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> class is used to check a string against a regular expression.</p>
/// <p><a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> uses a regular expression (regexp) to determine whether an input string is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>, or <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>. The regexp can either be supplied when the <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> is constructed, or at a later time.</p>
/// <p>If the regexp partially matches against the string, the result is considered <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>. For example, "" and "A" are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> for the regexp <b>[A-Z][0-9]</b> (whereas "_" would be <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>).</p>
/// <p><a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> automatically wraps the regular expression in the <code>\\A</code> and <code>\\z</code> anchors; in other words, it always attempts to do an exact match.</p>
/// <p>Example of use:</p>
/// <pre class="cpp">
///
///   <span class="comment">// regexp: optional '-' followed by between 1 and 3 digits</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span> rx(<span class="string">"-?\\d{1,3}"</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvalidator.html#QValidator">QValidator</a></span> <span class="operator">*</span>validator <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#QRegularExpressionValidator">QRegularExpressionValidator</a></span>(rx<span class="operator">,</span> <span class="keyword">this</span>);
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span> <span class="operator">*</span>edit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span>(<span class="keyword">this</span>);
///   edit<span class="operator">-</span><span class="operator">&gt;</span>setValidator(validator);
///
/// </pre>
/// <p>Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.</p>
/// <pre class="cpp">
///
///   <span class="comment">// integers 1 to 9999</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span> re(<span class="string">"[1-9]\\d{0,3}"</span>);
///   <span class="comment">// the validator treats the regexp as "^[1-9]\\d{0,3}$"</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#QRegularExpressionValidator">QRegularExpressionValidator</a></span> v(re<span class="operator">,</span> <span class="number">0</span>);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> s;
///   <span class="type">int</span> pos <span class="operator">=</span> <span class="number">0</span>;
///
///   s <span class="operator">=</span> <span class="string">"0"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
///   s <span class="operator">=</span> <span class="string">"12345"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
///   s <span class="operator">=</span> <span class="string">"1"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Acceptable</span>
///
///   re<span class="operator">.</span>setPattern(<span class="string">"\\S+"</span>);            <span class="comment">// one or more non-whitespace characters</span>
///   v<span class="operator">.</span>setRegularExpression(re);
///   s <span class="operator">=</span> <span class="string">"myfile.txt"</span>;  v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
///   s <span class="operator">=</span> <span class="string">"my file.txt"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Invalid</span>
///
///   <span class="comment">// A, B or C followed by exactly five digits followed by W, X, Y or Z</span>
///   re<span class="operator">.</span>setPattern(<span class="string">"[A-C]\\d{5}[W-Z]"</span>);
///   v<span class="operator">.</span>setRegularExpression(re);
///   s <span class="operator">=</span> <span class="string">"a12345Z"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Invalid</span>
///   s <span class="operator">=</span> <span class="string">"A12345Z"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Acceptable</span>
///   s <span class="operator">=</span> <span class="string">"B12"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Intermediate</span>
///
///   <span class="comment">// match most 'readme' files</span>
///   re<span class="operator">.</span>setPattern(<span class="string">"read\\S?me(\.(txt|asc|1st))?"</span>);
///   re<span class="operator">.</span>setPatternOptions(<span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span><span class="operator">::</span>CaseInsensitiveOption);
///   v<span class="operator">.</span>setRegularExpression(re);
///   s <span class="operator">=</span> <span class="string">"readme"</span>;      v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
///   s <span class="operator">=</span> <span class="string">"README.1ST"</span>;  v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
///   s <span class="operator">=</span> <span class="string">"read me.txt"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Invalid</span>
///   s <span class="operator">=</span> <span class="string">"readm"</span>;       v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Intermediate</span>
///
/// </pre></div>
#[repr(C)]
pub struct QRegularExpressionValidator {
    _unused: u8,
}
impl QRegularExpressionValidator {
    /// <p>This property holds the regular expression used for validation</p>
    ///
    /// Returns a built-in Qt slot `QRegularExpressionValidator::setRegularExpression` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#regularExpression-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the regular expression used for validation</p>
    /// <p>By default, this property contains a regular expression with an empty pattern (which therefore matches any string).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRegularExpression </td><td class="memItemRight bottomAlign"><span class="name"><b>regularExpression</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRegularExpression</b></span>(const QRegularExpression &amp;<i>re</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>regularExpressionChanged</b></span>(const QRegularExpression &amp;<i>re</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_regular_expression(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QRegularExpression,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setRegularExpression(const QRegularExpression&)\0",
                ),
            )
        }
    }

    /// <p>This property holds the regular expression used for validation</p>
    ///
    /// Returns a built-in Qt signal `QRegularExpressionValidator::regularExpressionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#regularExpression-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the regular expression used for validation</p>
    /// <p>By default, this property contains a regular expression with an empty pattern (which therefore matches any string).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRegularExpression </td><td class="memItemRight bottomAlign"><span class="name"><b>regularExpression</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRegularExpression</b></span>(const QRegularExpression &amp;<i>re</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>regularExpressionChanged</b></span>(const QRegularExpression &amp;<i>re</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn regular_expression_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QRegularExpression,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2regularExpressionChanged(const QRegularExpression&)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* QRegularExpressionValidator::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_metaObject(
            self as *const crate::QRegularExpressionValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Constructs a validator with a <i>parent</i> object that accepts any string (including an empty one) as valid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegularExpressionValidator::QRegularExpressionValidator(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#QRegularExpressionValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i> object that accepts any string (including an empty one) as valid.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_object(
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QRegularExpressionValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_QRegularExpressionValidator(
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                    .as_mut_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a validator with a <i>parent</i> object that accepts all strings that match the regular expression <i>re</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression& re, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#QRegularExpressionValidator-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i> object that accepts all strings that match the regular expression <i>re</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_regular_expression_q_object(
        re: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
        parent: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::qt_core::QObject>>,
    ) -> ::cpp_core::CppBox<crate::QRegularExpressionValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_QRegularExpressionValidator1(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(
                    re,
                )
                .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::MutPtr<::qt_core::QObject>>::cast_into(parent)
                    .as_mut_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> class is used to check a string against a regular expression.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegularExpressionValidator::QRegularExpressionValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> class is used to check a string against a regular expression.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> uses a regular expression (regexp) to determine whether an input string is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>, or <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>. The regexp can either be supplied when the <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> is constructed, or at a later time.</p>
    /// <p>If the regexp partially matches against the string, the result is considered <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>. For example, "" and "A" are <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> for the regexp <b>[A-Z][0-9]</b> (whereas "_" would be <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>).</p>
    /// <p><a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html">QRegularExpressionValidator</a> automatically wraps the regular expression in the <code>\\A</code> and <code>\\z</code> anchors; in other words, it always attempts to do an exact match.</p>
    /// <p>Example of use:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="comment">// regexp: optional '-' followed by between 1 and 3 digits</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span> rx(<span class="string">"-?\\d{1,3}"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvalidator.html#QValidator">QValidator</a></span> <span class="operator">*</span>validator <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#QRegularExpressionValidator">QRegularExpressionValidator</a></span>(rx<span class="operator">,</span> <span class="keyword">this</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span> <span class="operator">*</span>edit <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qlineedit.html">QLineEdit</a></span>(<span class="keyword">this</span>);
    ///   edit<span class="operator">-</span><span class="operator">&gt;</span>setValidator(validator);
    ///
    /// </pre>
    /// <p>Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="comment">// integers 1 to 9999</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span> re(<span class="string">"[1-9]\\d{0,3}"</span>);
    ///   <span class="comment">// the validator treats the regexp as "^[1-9]\\d{0,3}$"</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#QRegularExpressionValidator">QRegularExpressionValidator</a></span> v(re<span class="operator">,</span> <span class="number">0</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> s;
    ///   <span class="type">int</span> pos <span class="operator">=</span> <span class="number">0</span>;
    ///
    ///   s <span class="operator">=</span> <span class="string">"0"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
    ///   s <span class="operator">=</span> <span class="string">"12345"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Invalid</span>
    ///   s <span class="operator">=</span> <span class="string">"1"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);    <span class="comment">// returns Acceptable</span>
    ///
    ///   re<span class="operator">.</span>setPattern(<span class="string">"\\S+"</span>);            <span class="comment">// one or more non-whitespace characters</span>
    ///   v<span class="operator">.</span>setRegularExpression(re);
    ///   s <span class="operator">=</span> <span class="string">"myfile.txt"</span>;  v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
    ///   s <span class="operator">=</span> <span class="string">"my file.txt"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Invalid</span>
    ///
    ///   <span class="comment">// A, B or C followed by exactly five digits followed by W, X, Y or Z</span>
    ///   re<span class="operator">.</span>setPattern(<span class="string">"[A-C]\\d{5}[W-Z]"</span>);
    ///   v<span class="operator">.</span>setRegularExpression(re);
    ///   s <span class="operator">=</span> <span class="string">"a12345Z"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Invalid</span>
    ///   s <span class="operator">=</span> <span class="string">"A12345Z"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Acceptable</span>
    ///   s <span class="operator">=</span> <span class="string">"B12"</span>;     v<span class="operator">.</span>validate(s<span class="operator">,</span> pos);        <span class="comment">// Returns Intermediate</span>
    ///
    ///   <span class="comment">// match most 'readme' files</span>
    ///   re<span class="operator">.</span>setPattern(<span class="string">"read\\S?me(\.(txt|asc|1st))?"</span>);
    ///   re<span class="operator">.</span>setPatternOptions(<span class="type"><a href="http://doc.qt.io/qt-5/qregularexpression.html">QRegularExpression</a></span><span class="operator">::</span>CaseInsensitiveOption);
    ///   v<span class="operator">.</span>setRegularExpression(re);
    ///   s <span class="operator">=</span> <span class="string">"readme"</span>;      v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
    ///   s <span class="operator">=</span> <span class="string">"README.1ST"</span>;  v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Acceptable</span>
    ///   s <span class="operator">=</span> <span class="string">"read me.txt"</span>; v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Invalid</span>
    ///   s <span class="operator">=</span> <span class="string">"readm"</span>;       v<span class="operator">.</span>validate(s<span class="operator">,</span> pos); <span class="comment">// Returns Intermediate</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QRegularExpressionValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_QRegularExpressionValidator2();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a validator with a <i>parent</i> object that accepts all strings that match the regular expression <i>re</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QRegularExpressionValidator::QRegularExpressionValidator(const QRegularExpression& re)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#QRegularExpressionValidator-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a validator with a <i>parent</i> object that accepts all strings that match the regular expression <i>re</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_regular_expression(
        re: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
    ) -> ::cpp_core::CppBox<crate::QRegularExpressionValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_QRegularExpressionValidator3(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(
                    re,
                )
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int QRegularExpressionValidator::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_qt_metacall(
            self as *mut crate::QRegularExpressionValidator,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* QRegularExpressionValidator::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_qt_metacast(
            self as *mut crate::QRegularExpressionValidator,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                .as_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This property holds the regular expression used for validation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegularExpression QRegularExpressionValidator::regularExpression() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#regularExpression-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the regular expression used for validation</p>
    /// <p>By default, this property contains a regular expression with an empty pattern (which therefore matches any string).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRegularExpression </td><td class="memItemRight bottomAlign"><span class="name"><b>regularExpression</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRegularExpression</b></span>(const QRegularExpression &amp;<i>re</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>regularExpressionChanged</b></span>(const QRegularExpression &amp;<i>re</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn regular_expression(&self) -> ::cpp_core::CppBox<::qt_core::QRegularExpression> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_regularExpression(
            self as *const crate::QRegularExpressionValidator,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This property holds the regular expression used for validation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void QRegularExpressionValidator::setRegularExpression(const QRegularExpression& re)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#regularExpression-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the regular expression used for validation</p>
    /// <p>By default, this property contains a regular expression with an empty pattern (which therefore matches any string).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRegularExpression </td><td class="memItemRight bottomAlign"><span class="name"><b>regularExpression</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRegularExpression</b></span>(const QRegularExpression &amp;<i>re</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>regularExpressionChanged</b></span>(const QRegularExpression &amp;<i>re</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_regular_expression(
        &mut self,
        re: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_setRegularExpression(
            self as *mut crate::QRegularExpressionValidator,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(re)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QRegularExpressionValidator::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString QRegularExpressionValidator::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_trUtf8(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">QValidator::validate</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QValidator::State QRegularExpressionValidator::validate(QString& input, int& pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#validate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qvalidator.html#validate">QValidator::validate</a>().</p>
    /// <p>Returns <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a> if <i>input</i> is matched by the regular expression for this validator, <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a> if it has matched partially (i.e. could be a valid match if additional valid characters are added), and <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a> if <i>input</i> is not matched.</p>
    /// <p>In case the <i>input</i> is not matched, the <i>pos</i> parameter is set to the length of the <i>input</i> parameter; otherwise, it is not modified.</p>
    /// <p>For example, if the regular expression is <b>\w\d\d</b> (word-character, digit, digit) then "A57" is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Acceptable</a>, "E5" is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Intermediate</a>, and "+9" is <a href="http://doc.qt.io/qt-5/qvalidator.html#State-enum">Invalid</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregularexpression.html#match">QRegularExpression::match</a>().</p></div>
    #[inline(always)]
    pub unsafe fn validate(
        &self,
        input: impl ::cpp_core::CastInto<::cpp_core::MutRef<::qt_core::QString>>,
        pos: impl ::cpp_core::CastInto<::cpp_core::MutRef<::std::os::raw::c_int>>,
    ) -> crate::q_validator::State {
        crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_validate(
            self as *const crate::QRegularExpressionValidator,
            ::cpp_core::CastInto::<::cpp_core::MutRef<::qt_core::QString>>::cast_into(input)
                .as_mut_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::MutRef<::std::os::raw::c_int>>::cast_into(pos)
                .as_mut_raw_ptr(),
        )
    }
}

pub mod q_list_of_attribute {
    //! C++ type: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator& QList<QInputMethodEvent::Attribute>::iterator::operator=(const QList<QInputMethodEvent::Attribute>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_attribute::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_8(self as *mut crate::q_list_of_attribute::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator& QList<QInputMethodEvent::Attribute>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_attribute::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__12(self as *mut crate::q_list_of_attribute::Iterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__13(self as *mut crate::q_list_of_attribute::Iterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator& QList<QInputMethodEvent::Attribute>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_attribute::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__10(self as *mut crate::q_list_of_attribute::Iterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__11(self as *mut crate::q_list_of_attribute::Iterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__1(
                    self as *const crate::q_list_of_attribute::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(
            &self,
        ) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_(
                    self as *const crate::q_list_of_attribute::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QInputMethodEvent::Attribute>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QInputMethodEvent::Attribute>::iterator::iterator(const QList<QInputMethodEvent::Attribute>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute* QList<QInputMethodEvent::Attribute>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(
            &self,
        ) -> ::cpp_core::MutPtr<crate::q_input_method_event::Attribute> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__(
                    self as *const crate::q_list_of_attribute::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator& QList<QInputMethodEvent::Attribute>::const_iterator::operator=(const QList<QInputMethodEvent::Attribute>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator_6(self as *mut crate::q_list_of_attribute::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator& QList<QInputMethodEvent::Attribute>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__8(self as *mut crate::q_list_of_attribute::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__9(self as *mut crate::q_list_of_attribute::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator& QList<QInputMethodEvent::Attribute>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__6(self as *mut crate::q_list_of_attribute::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__7(self as *mut crate::q_list_of_attribute::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__1(self as *const crate::q_list_of_attribute::ConstIterator, j);
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(
            &self,
        ) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator_(self as *const crate::q_list_of_attribute::ConstIterator);
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QInputMethodEvent::Attribute>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QInputMethodEvent::Attribute>::const_iterator::const_iterator(const QList<QInputMethodEvent::Attribute>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QInputMethodEvent::Attribute>::const_iterator::const_iterator(const QList<QInputMethodEvent::Attribute>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute* QList<QInputMethodEvent::Attribute>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(
            &self,
        ) -> ::cpp_core::Ptr<crate::q_input_method_event::Attribute> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__(self as *const crate::q_list_of_attribute::ConstIterator);
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_attribute::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_input_method_event::Attribute>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_(
                    self as *const crate::q_list_of_attribute::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator==(const QList<QInputMethodEvent::Attribute>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_attribute::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__2(
                    self as *const crate::q_list_of_attribute::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator<(const QList<QInputMethodEvent::Attribute>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(&self, other: &::cpp_core::Ref<crate::q_list_of_attribute::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_1(
                self as *const crate::q_list_of_attribute::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator<=(const QList<QInputMethodEvent::Attribute>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(&self, other: &::cpp_core::Ref<crate::q_list_of_attribute::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__4(
                self as *const crate::q_list_of_attribute::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator>(const QList<QInputMethodEvent::Attribute>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(&self, other: &::cpp_core::Ref<crate::q_list_of_attribute::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_2(
                self as *const crate::q_list_of_attribute::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator>=(const QList<QInputMethodEvent::Attribute>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(&self, other: &::cpp_core::Ref<crate::q_list_of_attribute::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__5(
                self as *const crate::q_list_of_attribute::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator==(const QList<QInputMethodEvent::Attribute>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__6(
                    self as *const crate::q_list_of_attribute::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator<(const QList<QInputMethodEvent::Attribute>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_3(
                self as *const crate::q_list_of_attribute::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator<=(const QList<QInputMethodEvent::Attribute>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__8(
                self as *const crate::q_list_of_attribute::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator>(const QList<QInputMethodEvent::Attribute>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_4(
                self as *const crate::q_list_of_attribute::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::iterator::operator>=(const QList<QInputMethodEvent::Attribute>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__9(
                self as *const crate::q_list_of_attribute::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_attribute::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_attribute::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator& QList<QInputMethodEvent::Attribute>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_attribute::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__10(self as *mut crate::q_list_of_attribute::Iterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_attribute::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_attribute::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator& QList<QInputMethodEvent::Attribute>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_attribute::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__12(self as *mut crate::q_list_of_attribute::Iterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_attribute::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator& QList<QInputMethodEvent::Attribute>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__14(
                    self as *mut crate::q_list_of_attribute::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_attribute::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator& QList<QInputMethodEvent::Attribute>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator__15(
                    self as *mut crate::q_list_of_attribute::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_attribute::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_5(
                    self as *const crate::q_list_of_attribute::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_attribute::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_6(
                    self as *const crate::q_list_of_attribute::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>
        for &crate::q_list_of_attribute::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QInputMethodEvent::Attribute>::iterator::operator-(QList<QInputMethodEvent::Attribute>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_attribute::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_operator_7(
                    self as *const crate::q_list_of_attribute::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_attribute::ConstIterator {
        type Output = ::cpp_core::Ref<crate::q_input_method_event::Attribute>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator_(self as *const crate::q_list_of_attribute::ConstIterator);
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::const_iterator::operator==(const QList<QInputMethodEvent::Attribute>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__2(self as *const crate::q_list_of_attribute::ConstIterator, o.as_raw_ptr())
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::const_iterator::operator<(const QList<QInputMethodEvent::Attribute>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator_1(
                self as *const crate::q_list_of_attribute::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::const_iterator::operator<=(const QList<QInputMethodEvent::Attribute>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__4(self as *const crate::q_list_of_attribute::ConstIterator, other.as_raw_ptr())
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::const_iterator::operator>(const QList<QInputMethodEvent::Attribute>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator_2(
                self as *const crate::q_list_of_attribute::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for crate::q_list_of_attribute::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::const_iterator::operator>=(const QList<QInputMethodEvent::Attribute>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__5(self as *const crate::q_list_of_attribute::ConstIterator, other.as_raw_ptr())
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_attribute::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_attribute::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator& QList<QInputMethodEvent::Attribute>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__6(self as *mut crate::q_list_of_attribute::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_attribute::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_attribute::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator& QList<QInputMethodEvent::Attribute>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__8(self as *mut crate::q_list_of_attribute::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_attribute::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator& QList<QInputMethodEvent::Attribute>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__10(self as *mut crate::q_list_of_attribute::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_attribute::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator& QList<QInputMethodEvent::Attribute>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator__11(self as *mut crate::q_list_of_attribute::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_attribute::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator_3(self as *const crate::q_list_of_attribute::ConstIterator, j)
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_attribute::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator_4(self as *const crate::q_list_of_attribute::ConstIterator, j)
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>>
        for &crate::q_list_of_attribute::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QInputMethodEvent::Attribute>::const_iterator::operator-(QList<QInputMethodEvent::Attribute>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_attribute::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_operator_5(self as *const crate::q_list_of_attribute::ConstIterator, j.as_raw_ptr())
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_attribute::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QInputMethodEvent::Attribute>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_iterator_diterator(
                self as *mut crate::q_list_of_attribute::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_attribute::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QInputMethodEvent::Attribute>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_const_iterator_dconst_iterator(self as *mut crate::q_list_of_attribute::ConstIterator)
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfAttribute {
    _unused: u8,
}
impl QListOfAttribute {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::append(const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_attribute(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_append(self as *mut crate::QListOfAttribute, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::append(const QList<QInputMethodEvent::Attribute>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_attribute(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfAttribute>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_append1(
            self as *mut crate::QListOfAttribute,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfAttribute>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_at(
            self as *const crate::QListOfAttribute,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_back(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_back1(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_begin(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_begin1(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_cbegin(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_cend(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_clear(
            self as *mut crate::QListOfAttribute,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_constBegin(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_constEnd(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_constFirst(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_constLast(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>& QList<QInputMethodEvent::Attribute>::operator=(const QList<QInputMethodEvent::Attribute>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfAttribute>>,
    ) -> ::cpp_core::MutRef<crate::QListOfAttribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_operator_(
            self as *mut crate::QListOfAttribute,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfAttribute>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QInputMethodEvent::Attribute>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_count1(
            self as *const crate::QListOfAttribute,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_detach(
            self as *mut crate::QListOfAttribute,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_detachShared(
            self as *mut crate::QListOfAttribute,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_empty(
            self as *const crate::QListOfAttribute,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_end(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_end1(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::erase(QList<QInputMethodEvent::Attribute>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_erase(self as *mut crate::QListOfAttribute, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::erase(QList<QInputMethodEvent::Attribute>::iterator first, QList<QInputMethodEvent::Attribute>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_erase1(self as *mut crate::QListOfAttribute, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_first(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_first1(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_front(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_front1(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_operator__2(
            self as *const crate::QListOfAttribute,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_operator__3(
            self as *mut crate::QListOfAttribute,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::insert(int i, const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_attribute(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_insert(self as *mut crate::QListOfAttribute, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::insert(QList<QInputMethodEvent::Attribute>::iterator before, const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_attribute(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_insert1(self as *mut crate::QListOfAttribute, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_attribute::Iterator>>::cast_into(before).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_isDetached(
            self as *const crate::QListOfAttribute,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_isEmpty(
            self as *const crate::QListOfAttribute,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QInputMethodEvent::Attribute>::isSharedWith(const QList<QInputMethodEvent::Attribute>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfAttribute>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_isSharedWith(
            self as *const crate::QListOfAttribute,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfAttribute>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_last(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QInputMethodEvent::Attribute& QList<QInputMethodEvent::Attribute>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_last1(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QInputMethodEvent::Attribute>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_length(
            self as *const crate::QListOfAttribute,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute> QList<QInputMethodEvent::Attribute>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfAttribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_mid(
            self as *const crate::QListOfAttribute,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute> QList<QInputMethodEvent::Attribute>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfAttribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_mid1(
            self as *const crate::QListOfAttribute,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_move(
            self as *mut crate::QListOfAttribute,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QInputMethodEvent::Attribute>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfAttribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QInputMethodEvent::Attribute>::QList(const QList<QInputMethodEvent::Attribute>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfAttribute>>,
    ) -> ::cpp_core::CppBox<crate::QListOfAttribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfAttribute>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_pop_back(
            self as *mut crate::QListOfAttribute,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_pop_front(
            self as *mut crate::QListOfAttribute,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::prepend(const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_prepend(self as *mut crate::QListOfAttribute, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::push_back(const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_push_back(self as *mut crate::QListOfAttribute, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::push_front(const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_push_front(self as *mut crate::QListOfAttribute, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_removeAt(
            self as *mut crate::QListOfAttribute,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_removeFirst(
            self as *mut crate::QListOfAttribute,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_removeLast(
            self as *mut crate::QListOfAttribute,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::replace(int i, const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_input_method_event::Attribute>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_replace(self as *mut crate::QListOfAttribute, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_reserve(
            self as *mut crate::QListOfAttribute,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_setSharable(
            self as *mut crate::QListOfAttribute,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QInputMethodEvent::Attribute>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_size(
            self as *const crate::QListOfAttribute,
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::swap(QList<QInputMethodEvent::Attribute>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfAttribute>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_swap(
            self as *mut crate::QListOfAttribute,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfAttribute>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_swap1(
            self as *mut crate::QListOfAttribute,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QInputMethodEvent::Attribute>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_swapItemsAt(
            self as *mut crate::QListOfAttribute,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute QList<QInputMethodEvent::Attribute>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_takeAt(
            self as *mut crate::QListOfAttribute,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute QList<QInputMethodEvent::Attribute>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_takeFirst(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute QList<QInputMethodEvent::Attribute>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_takeLast(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent::Attribute QList<QInputMethodEvent::Attribute>::value(int i, const QInputMethodEvent::Attribute& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_input_method_event::Attribute>,
        >,
    ) -> ::cpp_core::CppBox<crate::q_input_method_event::Attribute> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_value1(self as *const crate::QListOfAttribute, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_input_method_event::Attribute>>::cast_into(default_value).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_touch_point {
    //! C++ type: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator& QList<QTouchEvent::TouchPoint>::iterator::operator=(const QList<QTouchEvent::TouchPoint>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_8(self as *mut crate::q_list_of_touch_point::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator& QList<QTouchEvent::TouchPoint>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__12(
                    self as *mut crate::q_list_of_touch_point::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__13(
                    self as *mut crate::q_list_of_touch_point::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator& QList<QTouchEvent::TouchPoint>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__10(
                    self as *mut crate::q_list_of_touch_point::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__11(
                    self as *mut crate::q_list_of_touch_point::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__1(
                    self as *const crate::q_list_of_touch_point::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_(
                    self as *const crate::q_list_of_touch_point::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTouchEvent::TouchPoint>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTouchEvent::TouchPoint>::iterator::iterator(const QList<QTouchEvent::TouchPoint>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint* QList<QTouchEvent::TouchPoint>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<crate::q_touch_event::TouchPoint> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__(
                    self as *const crate::q_list_of_touch_point::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator& QList<QTouchEvent::TouchPoint>::const_iterator::operator=(const QList<QTouchEvent::TouchPoint>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator_6(
                    self as *mut crate::q_list_of_touch_point::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator& QList<QTouchEvent::TouchPoint>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__8(self as *mut crate::q_list_of_touch_point::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__9(self as *mut crate::q_list_of_touch_point::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator& QList<QTouchEvent::TouchPoint>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__6(self as *mut crate::q_list_of_touch_point::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__7(self as *mut crate::q_list_of_touch_point::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__1(self as *const crate::q_list_of_touch_point::ConstIterator, j);
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator_(
                    self as *const crate::q_list_of_touch_point::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTouchEvent::TouchPoint>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTouchEvent::TouchPoint>::const_iterator::const_iterator(const QList<QTouchEvent::TouchPoint>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTouchEvent::TouchPoint>::const_iterator::const_iterator(const QList<QTouchEvent::TouchPoint>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint* QList<QTouchEvent::TouchPoint>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<crate::q_touch_event::TouchPoint> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__(
                    self as *const crate::q_list_of_touch_point::ConstIterator,
                );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_touch_point::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_touch_event::TouchPoint>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_(
                    self as *const crate::q_list_of_touch_point::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator==(const QList<QTouchEvent::TouchPoint>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__2(
                    self as *const crate::q_list_of_touch_point::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator<(const QList<QTouchEvent::TouchPoint>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_1(
                self as *const crate::q_list_of_touch_point::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator<=(const QList<QTouchEvent::TouchPoint>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__4(
                self as *const crate::q_list_of_touch_point::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator>(const QList<QTouchEvent::TouchPoint>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_2(
                self as *const crate::q_list_of_touch_point::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator>=(const QList<QTouchEvent::TouchPoint>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__5(
                self as *const crate::q_list_of_touch_point::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator==(const QList<QTouchEvent::TouchPoint>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__6(
                    self as *const crate::q_list_of_touch_point::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator<(const QList<QTouchEvent::TouchPoint>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_3(
                self as *const crate::q_list_of_touch_point::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator<=(const QList<QTouchEvent::TouchPoint>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__8(
                self as *const crate::q_list_of_touch_point::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator>(const QList<QTouchEvent::TouchPoint>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_4(
                self as *const crate::q_list_of_touch_point::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::iterator::operator>=(const QList<QTouchEvent::TouchPoint>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__9(
                self as *const crate::q_list_of_touch_point::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_touch_point::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_touch_point::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator& QList<QTouchEvent::TouchPoint>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__10(
                    self as *mut crate::q_list_of_touch_point::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_touch_point::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_touch_point::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator& QList<QTouchEvent::TouchPoint>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__12(
                    self as *mut crate::q_list_of_touch_point::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_touch_point::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator& QList<QTouchEvent::TouchPoint>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__14(
                    self as *mut crate::q_list_of_touch_point::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_touch_point::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator& QList<QTouchEvent::TouchPoint>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator__15(
                    self as *mut crate::q_list_of_touch_point::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_touch_point::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_5(
                    self as *const crate::q_list_of_touch_point::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_touch_point::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_6(
                    self as *const crate::q_list_of_touch_point::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>
        for &crate::q_list_of_touch_point::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTouchEvent::TouchPoint>::iterator::operator-(QList<QTouchEvent::TouchPoint>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_operator_7(
                    self as *const crate::q_list_of_touch_point::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_touch_point::ConstIterator {
        type Output = ::cpp_core::Ref<crate::q_touch_event::TouchPoint>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator_(
                    self as *const crate::q_list_of_touch_point::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::const_iterator::operator==(const QList<QTouchEvent::TouchPoint>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__2(
                    self as *const crate::q_list_of_touch_point::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::const_iterator::operator<(const QList<QTouchEvent::TouchPoint>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator_1(
                self as *const crate::q_list_of_touch_point::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::const_iterator::operator<=(const QList<QTouchEvent::TouchPoint>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__4(
                self as *const crate::q_list_of_touch_point::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::const_iterator::operator>(const QList<QTouchEvent::TouchPoint>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator_2(
                self as *const crate::q_list_of_touch_point::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for crate::q_list_of_touch_point::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::const_iterator::operator>=(const QList<QTouchEvent::TouchPoint>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__5(
                self as *const crate::q_list_of_touch_point::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_touch_point::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_touch_point::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator& QList<QTouchEvent::TouchPoint>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__6(self as *mut crate::q_list_of_touch_point::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_touch_point::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_touch_point::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator& QList<QTouchEvent::TouchPoint>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__8(self as *mut crate::q_list_of_touch_point::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_touch_point::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator& QList<QTouchEvent::TouchPoint>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__10(self as *mut crate::q_list_of_touch_point::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_touch_point::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator& QList<QTouchEvent::TouchPoint>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator__11(self as *mut crate::q_list_of_touch_point::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_touch_point::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator_3(
                    self as *const crate::q_list_of_touch_point::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_touch_point::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator_4(
                    self as *const crate::q_list_of_touch_point::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>>
        for &crate::q_list_of_touch_point::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTouchEvent::TouchPoint>::const_iterator::operator-(QList<QTouchEvent::TouchPoint>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_touch_point::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_operator_5(
                    self as *const crate::q_list_of_touch_point::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_touch_point::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTouchEvent::TouchPoint>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_iterator_diterator(
                self as *mut crate::q_list_of_touch_point::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_touch_point::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTouchEvent::TouchPoint>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_touch_point::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfTouchPoint {
    _unused: u8,
}
impl QListOfTouchPoint {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::append(const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_touch_point(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_append(
            self as *mut crate::QListOfTouchPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::append(const QList<QTouchEvent::TouchPoint>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_touch_point(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_append1(
            self as *mut crate::QListOfTouchPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTouchPoint>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_at(
            self as *const crate::QListOfTouchPoint,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_back(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_back1(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_begin(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_begin1(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_cbegin(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_cend(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_clear(
            self as *mut crate::QListOfTouchPoint,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_constBegin(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_constEnd(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_constFirst(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_constLast(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>& QList<QTouchEvent::TouchPoint>::operator=(const QList<QTouchEvent::TouchPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTouchPoint>>,
    ) -> ::cpp_core::MutRef<crate::QListOfTouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_operator_(
            self as *mut crate::QListOfTouchPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTouchPoint>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTouchEvent::TouchPoint>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_count1(
            self as *const crate::QListOfTouchPoint,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_detach(
            self as *mut crate::QListOfTouchPoint,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_detachShared(
            self as *mut crate::QListOfTouchPoint,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_empty(
            self as *const crate::QListOfTouchPoint,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_end(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_end1(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::erase(QList<QTouchEvent::TouchPoint>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_erase(self as *mut crate::QListOfTouchPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::erase(QList<QTouchEvent::TouchPoint>::iterator first, QList<QTouchEvent::TouchPoint>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_erase1(self as *mut crate::QListOfTouchPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_first(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_first1(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_front(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_front1(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_operator__2(
            self as *const crate::QListOfTouchPoint,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_operator__3(
            self as *mut crate::QListOfTouchPoint,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::insert(int i, const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_touch_point(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_insert(
            self as *mut crate::QListOfTouchPoint,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::insert(QList<QTouchEvent::TouchPoint>::iterator before, const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_touch_point(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_insert1(self as *mut crate::QListOfTouchPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_touch_point::Iterator>>::cast_into(before).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_isDetached(
            self as *const crate::QListOfTouchPoint,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_isEmpty(
            self as *const crate::QListOfTouchPoint,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTouchEvent::TouchPoint>::isSharedWith(const QList<QTouchEvent::TouchPoint>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTouchPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_isSharedWith(
            self as *const crate::QListOfTouchPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTouchPoint>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_last(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchEvent::TouchPoint& QList<QTouchEvent::TouchPoint>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_last1(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTouchEvent::TouchPoint>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_length(
            self as *const crate::QListOfTouchPoint,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint> QList<QTouchEvent::TouchPoint>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfTouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_mid(
            self as *const crate::QListOfTouchPoint,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint> QList<QTouchEvent::TouchPoint>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfTouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_mid1(
            self as *const crate::QListOfTouchPoint,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_move(
            self as *mut crate::QListOfTouchPoint,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTouchEvent::TouchPoint>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfTouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTouchEvent::TouchPoint>::QList(const QList<QTouchEvent::TouchPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTouchPoint>>,
    ) -> ::cpp_core::CppBox<crate::QListOfTouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTouchPoint>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_pop_back(
            self as *mut crate::QListOfTouchPoint,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_pop_front(
            self as *mut crate::QListOfTouchPoint,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::prepend(const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_prepend(
            self as *mut crate::QListOfTouchPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::push_back(const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_push_back(
            self as *mut crate::QListOfTouchPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::push_front(const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_push_front(
            self as *mut crate::QListOfTouchPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_removeAt(
            self as *mut crate::QListOfTouchPoint,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_removeFirst(
            self as *mut crate::QListOfTouchPoint,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_removeLast(
            self as *mut crate::QListOfTouchPoint,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::replace(int i, const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_replace(
            self as *mut crate::QListOfTouchPoint,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_reserve(
            self as *mut crate::QListOfTouchPoint,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_setSharable(
            self as *mut crate::QListOfTouchPoint,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTouchEvent::TouchPoint>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_size(
            self as *const crate::QListOfTouchPoint,
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::swap(QList<QTouchEvent::TouchPoint>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfTouchPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_swap(
            self as *mut crate::QListOfTouchPoint,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfTouchPoint>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_swap1(
            self as *mut crate::QListOfTouchPoint,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTouchEvent::TouchPoint>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_swapItemsAt(
            self as *mut crate::QListOfTouchPoint,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint QList<QTouchEvent::TouchPoint>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_takeAt(
            self as *mut crate::QListOfTouchPoint,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint QList<QTouchEvent::TouchPoint>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_takeFirst(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint QList<QTouchEvent::TouchPoint>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_takeLast(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint QList<QTouchEvent::TouchPoint>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_value(
            self as *const crate::QListOfTouchPoint,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent::TouchPoint QList<QTouchEvent::TouchPoint>::value(int i, const QTouchEvent::TouchPoint& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>,
    ) -> ::cpp_core::CppBox<crate::q_touch_event::TouchPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_value1(
            self as *const crate::QListOfTouchPoint,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QPoint>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQPoint {
    _unused: u8,
}
impl QVectorOfQPoint {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::append(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_point(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_append(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::append(const QVector<QPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_point(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_append2(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPoint>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QVector<QPoint>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_at(
            self as *const crate::QVectorOfQPoint,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint& QVector<QPoint>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_back(self as *mut crate::QVectorOfQPoint);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QVector<QPoint>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_back1(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_capacity(self as *const crate::QVectorOfQPoint)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_clear(self as *mut crate::QVectorOfQPoint)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint* QVector<QPoint>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_constData(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QVector<QPoint>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_constFirst(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QVector<QPoint>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_constLast(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::contains(const QPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_contains(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>& QVector<QPoint>::operator=(const QVector<QPoint>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPoint>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator_(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPoint>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::count(const QPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_count(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_count1(self as *const crate::QVectorOfQPoint)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint* QVector<QPoint>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_data(self as *mut crate::QVectorOfQPoint);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint* QVector<QPoint>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_data1(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_detach(self as *mut crate::QVectorOfQPoint)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_empty(self as *const crate::QVectorOfQPoint)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::endsWith(const QPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_endsWith(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>& QVector<QPoint>::fill(const QPoint& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_fill(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>& QVector<QPoint>::fill(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_fill1(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint& QVector<QPoint>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_first(self as *mut crate::QVectorOfQPoint);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QVector<QPoint>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_first1(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint& QVector<QPoint>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_front(self as *mut crate::QVectorOfQPoint);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QVector<QPoint>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_front1(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint& QVector<QPoint>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator__2(
            self as *mut crate::QVectorOfQPoint,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QVector<QPoint>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator__3(
            self as *const crate::QVectorOfQPoint,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::indexOf(const QPoint& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_indexOf(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::indexOf(const QPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_indexOf1(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::insert(int i, const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_insert(
            self as *mut crate::QVectorOfQPoint,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::insert(int i, int n, const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_insert1(
            self as *mut crate::QVectorOfQPoint,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_isDetached(
            self as *const crate::QVectorOfQPoint,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_isEmpty(self as *const crate::QVectorOfQPoint)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::isSharedWith(const QVector<QPoint>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_isSharedWith(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPoint>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint& QVector<QPoint>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_last(self as *mut crate::QVectorOfQPoint);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint& QVector<QPoint>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_last1(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::lastIndexOf(const QPoint& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_lastIndexOf(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::lastIndexOf(const QPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_lastIndexOf1(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_length(self as *const crate::QVectorOfQPoint)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint> QVector<QPoint>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_mid(
            self as *const crate::QVectorOfQPoint,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint> QVector<QPoint>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_mid1(
            self as *const crate::QVectorOfQPoint,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_move(
            self as *mut crate::QVectorOfQPoint,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPoint>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPoint>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPoint>::QVector(int size, const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPoint>::QVector(const QVector<QPoint>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPoint>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPoint>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_pop_back(self as *mut crate::QVectorOfQPoint)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_pop_front(self as *mut crate::QVectorOfQPoint)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::prepend(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_prepend(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::push_back(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_push_back(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::push_front(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_push_front(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_remove(self as *mut crate::QVectorOfQPoint, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_remove1(
            self as *mut crate::QVectorOfQPoint,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::removeAll(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_removeAll(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_removeAt(self as *mut crate::QVectorOfQPoint, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_removeFirst(self as *mut crate::QVectorOfQPoint)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_removeLast(self as *mut crate::QVectorOfQPoint)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::removeOne(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_removeOne(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::replace(int i, const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_replace(
            self as *mut crate::QVectorOfQPoint,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_reserve(
            self as *mut crate::QVectorOfQPoint,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_resize(
            self as *mut crate::QVectorOfQPoint,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_setSharable(
            self as *mut crate::QVectorOfQPoint,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_shrink_to_fit(
            self as *mut crate::QVectorOfQPoint,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_size(self as *const crate::QVectorOfQPoint)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_squeeze(self as *mut crate::QVectorOfQPoint)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::startsWith(const QPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_startsWith(
            self as *const crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPoint>::swap(QVector<QPoint>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQPoint>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_swap(
            self as *mut crate::QVectorOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQPoint>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QVector<QPoint>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_takeAt(
            self as *mut crate::QVectorOfQPoint,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QVector<QPoint>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_takeFirst(
            self as *mut crate::QVectorOfQPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QVector<QPoint>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_takeLast(
            self as *mut crate::QVectorOfQPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QVector<QPoint>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_value(
            self as *const crate::QVectorOfQPoint,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint QVector<QPoint>::value(int i, const QPoint& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_value1(
            self as *const crate::QVectorOfQPoint,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
///
/// C++ class: <span style='color: green;'>```QPair<double, QColor>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
///
/// </pre>
/// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
/// <pre class="cpp">
///
///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
/// <pre class="cpp">
///
///   <span class="keyword">struct</span> Variable {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
/// &#32;     <span class="type">double</span> value;
///   };
///   Variable v;
///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
#[repr(C)]
pub struct QPairOfDoubleQColor {
    _unused: u8,
}
impl QPairOfDoubleQColor {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor>& QPair<double, QColor>::operator=(const QPair<double, QColor>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::cpp_core::MutRef<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_double_QColor_operator_(
            self as *mut crate::QPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<double, QColor>::QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_double_QColor_QPair();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pair and initializes the <code>first</code> element with <i>value1</i> and the <code>second</code> element with <i>value2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<double, QColor>::QPair(const double& t1, const QColor& t2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pair and initializes the <code>first</code> element with <i>value1</i> and the <code>second</code> element with <i>value2</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">qMakePair</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        t1: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
        t2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_double_QColor_QPair1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(t2).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<double, QColor>::QPair(const QPair<double, QColor>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_double_QColor_QPair2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this pair with <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPair<double, QColor>::swap(QPair<double, QColor>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this pair with <i>other</i>.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>first<span class="operator">,</span> other<span class="operator">.</span>first);
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>second<span class="operator">,</span> other<span class="operator">.</span>second);
    ///
    /// </pre>
    /// <p>Swap overloads are found in namespace <code>std</code> as well as via argument-dependent lookup (ADL) in the namespace of <code>T</code> .</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_double_QColor_swap(
            self as *mut crate::QPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPairOfDoubleQColor>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfSelection {
    _unused: u8,
}
impl QVectorOfSelection {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::append(const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_selection(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_append(
            self as *mut crate::QVectorOfSelection,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >::cast_into(t)
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::append(const QVector<QAbstractTextDocumentLayout::Selection>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_selection(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSelection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_append2(
            self as *mut crate::QVectorOfSelection,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSelection>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_at(
                self as *const crate::QVectorOfSelection,
                i,
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_back(
                self as *mut crate::QVectorOfSelection,
            );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(
        &self,
    ) -> ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_back1(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QAbstractTextDocumentLayout::Selection>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_capacity(
            self as *const crate::QVectorOfSelection,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_clear(
            self as *mut crate::QVectorOfSelection,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection* QVector<QAbstractTextDocumentLayout::Selection>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(
        &self,
    ) -> ::cpp_core::Ptr<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_constData(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(
        &self,
    ) -> ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_constFirst(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(
        &self,
    ) -> ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_constLast(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection>& QVector<QAbstractTextDocumentLayout::Selection>::operator=(const QVector<QAbstractTextDocumentLayout::Selection>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSelection>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_operator_(
                self as *mut crate::QVectorOfSelection,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSelection>>::cast_into(v)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QAbstractTextDocumentLayout::Selection>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_count1(
            self as *const crate::QVectorOfSelection,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection* QVector<QAbstractTextDocumentLayout::Selection>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_data(
                self as *mut crate::QVectorOfSelection,
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection* QVector<QAbstractTextDocumentLayout::Selection>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(
        &self,
    ) -> ::cpp_core::Ptr<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_data1(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_detach(
            self as *mut crate::QVectorOfSelection,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QAbstractTextDocumentLayout::Selection>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_empty(
            self as *const crate::QVectorOfSelection,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection>& QVector<QAbstractTextDocumentLayout::Selection>::fill(const QAbstractTextDocumentLayout::Selection& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_fill(
                self as *mut crate::QVectorOfSelection,
                ::cpp_core::CastInto::<
                    ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
                >::cast_into(t)
                .as_raw_ptr(),
                size,
            );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection>& QVector<QAbstractTextDocumentLayout::Selection>::fill(const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_fill1(
                self as *mut crate::QVectorOfSelection,
                ::cpp_core::CastInto::<
                    ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
                >::cast_into(t)
                .as_raw_ptr(),
            );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_first(
                self as *mut crate::QVectorOfSelection,
            );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(
        &self,
    ) -> ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_first1(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_front(
                self as *mut crate::QVectorOfSelection,
            );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(
        &self,
    ) -> ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_front1(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_operator__2(
                self as *mut crate::QVectorOfSelection,
                i,
            );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_operator__3(
                self as *const crate::QVectorOfSelection,
                i,
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::insert(int i, const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_insert(
            self as *mut crate::QVectorOfSelection,
            i,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >::cast_into(t)
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::insert(int i, int n, const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_insert1(
            self as *mut crate::QVectorOfSelection,
            i,
            n,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >::cast_into(t)
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QAbstractTextDocumentLayout::Selection>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_isDetached(
            self as *const crate::QVectorOfSelection,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QAbstractTextDocumentLayout::Selection>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_isEmpty(
            self as *const crate::QVectorOfSelection,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QAbstractTextDocumentLayout::Selection>::isSharedWith(const QVector<QAbstractTextDocumentLayout::Selection>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSelection>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_isSharedWith(
            self as *const crate::QVectorOfSelection,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSelection>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_last(
                self as *mut crate::QVectorOfSelection,
            );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection& QVector<QAbstractTextDocumentLayout::Selection>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(
        &self,
    ) -> ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_last1(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QAbstractTextDocumentLayout::Selection>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_length(
            self as *const crate::QVectorOfSelection,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection> QVector<QAbstractTextDocumentLayout::Selection>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_mid(
                self as *const crate::QVectorOfSelection,
                pos,
                len,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection> QVector<QAbstractTextDocumentLayout::Selection>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_mid1(
                self as *const crate::QVectorOfSelection,
                pos,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_move(
            self as *mut crate::QVectorOfSelection,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QAbstractTextDocumentLayout::Selection>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QAbstractTextDocumentLayout::Selection>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_QVector1(
                size,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QAbstractTextDocumentLayout::Selection>::QVector(int size, const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_QVector2(
                size,
                ::cpp_core::CastInto::<
                    ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
                >::cast_into(t)
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QAbstractTextDocumentLayout::Selection>::QVector(const QVector<QAbstractTextDocumentLayout::Selection>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSelection>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSelection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSelection>>::cast_into(v)
                    .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_pop_back(
            self as *mut crate::QVectorOfSelection,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_pop_front(
            self as *mut crate::QVectorOfSelection,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::prepend(const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_prepend(
            self as *mut crate::QVectorOfSelection,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >::cast_into(t)
            .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::push_back(const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_push_back(
            self as *mut crate::QVectorOfSelection,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >::cast_into(t)
            .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::push_front(const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_push_front(
            self as *mut crate::QVectorOfSelection,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >::cast_into(t)
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_remove(
            self as *mut crate::QVectorOfSelection,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_remove1(
            self as *mut crate::QVectorOfSelection,
            i,
            n,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_removeAt(
            self as *mut crate::QVectorOfSelection,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_removeFirst(
            self as *mut crate::QVectorOfSelection,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_removeLast(
            self as *mut crate::QVectorOfSelection,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::replace(int i, const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_replace(
            self as *mut crate::QVectorOfSelection,
            i,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
            >::cast_into(t)
            .as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_reserve(
            self as *mut crate::QVectorOfSelection,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_resize(
            self as *mut crate::QVectorOfSelection,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_setSharable(
            self as *mut crate::QVectorOfSelection,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_shrink_to_fit(
            self as *mut crate::QVectorOfSelection,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QAbstractTextDocumentLayout::Selection>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_size(
            self as *const crate::QVectorOfSelection,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_squeeze(
            self as *mut crate::QVectorOfSelection,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QAbstractTextDocumentLayout::Selection>::swap(QVector<QAbstractTextDocumentLayout::Selection>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfSelection>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_swap(
            self as *mut crate::QVectorOfSelection,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfSelection>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection QVector<QAbstractTextDocumentLayout::Selection>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_takeAt(
                self as *mut crate::QVectorOfSelection,
                i,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection QVector<QAbstractTextDocumentLayout::Selection>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_takeFirst(
                self as *mut crate::QVectorOfSelection,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection QVector<QAbstractTextDocumentLayout::Selection>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_takeLast(
                self as *mut crate::QVectorOfSelection,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection QVector<QAbstractTextDocumentLayout::Selection>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_value(
                self as *const crate::QVectorOfSelection,
                i,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection QVector<QAbstractTextDocumentLayout::Selection>::value(int i, const QAbstractTextDocumentLayout::Selection& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
        >,
    ) -> ::cpp_core::CppBox<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_value1(
                self as *const crate::QVectorOfSelection,
                i,
                ::cpp_core::CastInto::<
                    ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
                >::cast_into(default_value)
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_q_size {
    //! C++ type: <span style='color: green;'>```QList<QSize>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QSize>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator& QList<QSize>::iterator::operator=(const QList<QSize>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_8(self as *mut crate::q_list_of_q_size::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator& QList<QSize>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__12(
                self as *mut crate::q_list_of_q_size::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__13(
                self as *mut crate::q_list_of_q_size::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator& QList<QSize>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__10(
                self as *mut crate::q_list_of_q_size::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__11(
                self as *mut crate::q_list_of_q_size::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSize& QList<QSize>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__1(
                self as *const crate::q_list_of_q_size::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSize& QList<QSize>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_(
                self as *const crate::q_list_of_q_size::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QSize>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QSize>::iterator::iterator(const QList<QSize>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSize* QList<QSize>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__(
                self as *const crate::q_list_of_q_size::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QSize>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator& QList<QSize>::const_iterator::operator=(const QList<QSize>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator_6(self as *mut crate::q_list_of_q_size::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator& QList<QSize>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__8(
                self as *mut crate::q_list_of_q_size::ConstIterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__9(
                self as *mut crate::q_list_of_q_size::ConstIterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator& QList<QSize>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__6(
                self as *mut crate::q_list_of_q_size::ConstIterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__7(
                self as *mut crate::q_list_of_q_size::ConstIterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__1(
                self as *const crate::q_list_of_q_size::ConstIterator,
                j,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator_(
                self as *const crate::q_list_of_q_size::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QSize>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QSize>::const_iterator::const_iterator(const QList<QSize>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QSize>::const_iterator::const_iterator(const QList<QSize>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QSize* QList<QSize>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__(
                self as *const crate::q_list_of_q_size::ConstIterator,
            );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_size::Iterator {
        type Output = ::cpp_core::MutRef<::qt_core::QSize>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSize& QList<QSize>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_(
                self as *const crate::q_list_of_q_size::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator==(const QList<QSize>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_size::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__2(
                    self as *const crate::q_list_of_q_size::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator<(const QList<QSize>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(&self, other: &::cpp_core::Ref<crate::q_list_of_q_size::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_1(
                self as *const crate::q_list_of_q_size::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator<=(const QList<QSize>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(&self, other: &::cpp_core::Ref<crate::q_list_of_q_size::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__4(
                self as *const crate::q_list_of_q_size::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator>(const QList<QSize>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(&self, other: &::cpp_core::Ref<crate::q_list_of_q_size::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_2(
                self as *const crate::q_list_of_q_size::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator>=(const QList<QSize>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(&self, other: &::cpp_core::Ref<crate::q_list_of_q_size::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__5(
                self as *const crate::q_list_of_q_size::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator==(const QList<QSize>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__6(
                    self as *const crate::q_list_of_q_size::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator<(const QList<QSize>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_3(
                self as *const crate::q_list_of_q_size::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator<=(const QList<QSize>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__8(
                self as *const crate::q_list_of_q_size::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator>(const QList<QSize>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_4(
                self as *const crate::q_list_of_q_size::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::iterator::operator>=(const QList<QSize>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__9(
                self as *const crate::q_list_of_q_size::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_size::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_size::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator& QList<QSize>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__10(
                self as *mut crate::q_list_of_q_size::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_size::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_size::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator& QList<QSize>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_size::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__12(
                self as *mut crate::q_list_of_q_size::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_size::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator& QList<QSize>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__14(
                    self as *mut crate::q_list_of_q_size::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_size::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator& QList<QSize>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator__15(
                    self as *mut crate::q_list_of_q_size::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_size::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_5(
                    self as *const crate::q_list_of_q_size::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_size::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_6(
                    self as *const crate::q_list_of_q_size::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>
        for &crate::q_list_of_q_size::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::iterator::operator-(QList<QSize>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_size::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_operator_7(
                    self as *const crate::q_list_of_q_size::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_size::ConstIterator {
        type Output = ::cpp_core::Ref<::qt_core::QSize>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator_(
                self as *const crate::q_list_of_q_size::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::const_iterator::operator==(const QList<QSize>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_size::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::const_iterator::operator<(const QList<QSize>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator_1(
                self as *const crate::q_list_of_q_size::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::const_iterator::operator<=(const QList<QSize>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__4(
                self as *const crate::q_list_of_q_size::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::const_iterator::operator>(const QList<QSize>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator_2(
                self as *const crate::q_list_of_q_size::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for crate::q_list_of_q_size::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::const_iterator::operator>=(const QList<QSize>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__5(
                self as *const crate::q_list_of_q_size::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_size::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_size::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator& QList<QSize>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__6(
                self as *mut crate::q_list_of_q_size::ConstIterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_size::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_size::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator& QList<QSize>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__8(
                self as *mut crate::q_list_of_q_size::ConstIterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_size::ConstIterator {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator& QList<QSize>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_size::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_size::ConstIterator {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator& QList<QSize>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_size::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_size::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_size::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_size::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_size::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>>
        for &crate::q_list_of_q_size::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::const_iterator::operator-(QList<QSize>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_size::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_size::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_size::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QSize>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_iterator_diterator(
                self as *mut crate::q_list_of_q_size::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_size::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QSize>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_size::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QSize>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQSize {
    _unused: u8,
}
impl QListOfQSize {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::append(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_size(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_append(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::append(const QList<QSize>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_q_size(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_append1(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_at(self as *const crate::QListOfQSize, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QList<QSize>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_back(self as *mut crate::QListOfQSize);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_back1(self as *const crate::QListOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_begin(self as *mut crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_begin1(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_cbegin(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_cend(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_clear(self as *mut crate::QListOfQSize)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_constBegin(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_constEnd(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_constFirst(self as *const crate::QListOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_constLast(self as *const crate::QListOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::contains(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_contains(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>& QList<QSize>::operator=(const QList<QSize>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQSize>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator_(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQSize>>::cast_into(l).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::count(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_count(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_count1(self as *const crate::QListOfQSize)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_detach(self as *mut crate::QListOfQSize)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_detachShared(self as *mut crate::QListOfQSize)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_empty(self as *const crate::QListOfQSize)
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_end(self as *mut crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_end1(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::endsWith(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_endsWith(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::erase(QList<QSize>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_erase(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>::cast_into(
                pos,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::erase(QList<QSize>::iterator first, QList<QSize>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_erase1(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>::cast_into(
                first,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>::cast_into(
                last,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QList<QSize>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_first(self as *mut crate::QListOfQSize);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_first1(self as *const crate::QListOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QSize> QList<QSize>::fromVector(const QVector<QSize>& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in <i>vector</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vect;
    ///   vect <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">20.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">30.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">40.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">50.0</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> list <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span><span class="operator">::</span>fromVector(vect);
    ///   <span class="comment">// list: [20.0, 30.0, 40.0, 50.0]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#fromSet">fromSet</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#toVector">toVector</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#toList">QVector::toList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_vector(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQSize>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_fromVector(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQSize>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QList<QSize>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_front(self as *mut crate::QListOfQSize);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_front1(self as *const crate::QListOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator__2(
            self as *const crate::QListOfQSize,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QList<QSize>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator__3(
            self as *mut crate::QListOfQSize,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::indexOf(const QSize& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_indexOf(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::indexOf(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_indexOf1(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::insert(int i, const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_q_size(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_insert(
            self as *mut crate::QListOfQSize,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::insert(QList<QSize>::iterator before, const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_q_size(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_insert1(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_size::Iterator>>::cast_into(
                before,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_isDetached(self as *const crate::QListOfQSize)
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_isEmpty(self as *const crate::QListOfQSize)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::isSharedWith(const QList<QSize>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_isSharedWith(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQSize>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QList<QSize>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_last(self as *mut crate::QListOfQSize);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QList<QSize>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_last1(self as *const crate::QListOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::lastIndexOf(const QSize& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_lastIndexOf(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::lastIndexOf(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_lastIndexOf1(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_length(self as *const crate::QListOfQSize)
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize> QList<QSize>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_mid(
            self as *const crate::QListOfQSize,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize> QList<QSize>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_mid1(self as *const crate::QListOfQSize, pos);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_move(self as *mut crate::QListOfQSize, from, to)
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QSize>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QSize>::QList(const QList<QSize>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQSize>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQSize>>::cast_into(l).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_pop_back(self as *mut crate::QListOfQSize)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_pop_front(self as *mut crate::QListOfQSize)
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::prepend(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_prepend(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::push_back(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_push_back(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::push_front(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_push_front(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::removeAll(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_removeAll(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_removeAt(self as *mut crate::QListOfQSize, i)
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_removeFirst(self as *mut crate::QListOfQSize)
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_removeLast(self as *mut crate::QListOfQSize)
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::removeOne(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_removeOne(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::replace(int i, const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_replace(
            self as *mut crate::QListOfQSize,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_reserve(self as *mut crate::QListOfQSize, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_setSharable(
            self as *mut crate::QListOfQSize,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_size(self as *const crate::QListOfQSize)
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::startsWith(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_startsWith(
            self as *const crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::swap(QList<QSize>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_swap(
            self as *mut crate::QListOfQSize,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQSize>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_swap1(self as *mut crate::QListOfQSize, i, j)
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QSize>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_swapItemsAt(self as *mut crate::QListOfQSize, i, j)
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QList<QSize>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_takeAt(self as *mut crate::QListOfQSize, i);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QList<QSize>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_takeFirst(self as *mut crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QList<QSize>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_takeLast(self as *mut crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize> QList<QSize>::toVector() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#toVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Sven"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Kim"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Ola"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vect <span class="operator">=</span> list<span class="operator">.</span>toVector();
    ///   <span class="comment">// vect: ["Sven", "Kim", "Ola"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#toSet">toSet</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">fromVector</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fromList">QVector::fromList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector(&self) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_toVector(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QList<QSize>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_value(self as *const crate::QListOfQSize, i);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QList<QSize>::value(int i, const QSize& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QSize_value1(
            self as *const crate::QListOfQSize,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QRect>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQRect {
    _unused: u8,
}
impl QVectorOfQRect {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::append(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_rect(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_append(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::append(const QVector<QRect>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_rect(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_append2(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRect>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QVector<QRect>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_at(self as *const crate::QVectorOfQRect, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect& QVector<QRect>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_back(self as *mut crate::QVectorOfQRect);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QVector<QRect>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_back1(self as *const crate::QVectorOfQRect);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_capacity(self as *const crate::QVectorOfQRect)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_clear(self as *mut crate::QVectorOfQRect)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QVector<QRect>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_constData(
            self as *const crate::QVectorOfQRect,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QVector<QRect>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_constFirst(
            self as *const crate::QVectorOfQRect,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QVector<QRect>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_constLast(
            self as *const crate::QVectorOfQRect,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::contains(const QRect& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_contains(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect>& QVector<QRect>::operator=(const QVector<QRect>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRect>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator_(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRect>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::count(const QRect& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_count(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_count1(self as *const crate::QVectorOfQRect)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect* QVector<QRect>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_data(self as *mut crate::QVectorOfQRect);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QVector<QRect>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_data1(self as *const crate::QVectorOfQRect);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_detach(self as *mut crate::QVectorOfQRect)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_empty(self as *const crate::QVectorOfQRect)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::endsWith(const QRect& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_endsWith(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect>& QVector<QRect>::fill(const QRect& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_fill(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect>& QVector<QRect>::fill(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_fill1(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect& QVector<QRect>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_first(self as *mut crate::QVectorOfQRect);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QVector<QRect>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_first1(self as *const crate::QVectorOfQRect);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect& QVector<QRect>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_front(self as *mut crate::QVectorOfQRect);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QVector<QRect>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_front1(self as *const crate::QVectorOfQRect);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect& QVector<QRect>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator__2(
            self as *mut crate::QVectorOfQRect,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QVector<QRect>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator__3(
            self as *const crate::QVectorOfQRect,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::indexOf(const QRect& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_indexOf(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::indexOf(const QRect& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_indexOf1(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::insert(int i, const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_insert(
            self as *mut crate::QVectorOfQRect,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::insert(int i, int n, const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_insert1(
            self as *mut crate::QVectorOfQRect,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_isDetached(self as *const crate::QVectorOfQRect)
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_isEmpty(self as *const crate::QVectorOfQRect)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::isSharedWith(const QVector<QRect>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRect>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_isSharedWith(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRect>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect& QVector<QRect>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_last(self as *mut crate::QVectorOfQRect);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect& QVector<QRect>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_last1(self as *const crate::QVectorOfQRect);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::lastIndexOf(const QRect& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_lastIndexOf(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::lastIndexOf(const QRect& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_lastIndexOf1(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_length(self as *const crate::QVectorOfQRect)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect> QVector<QRect>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_mid(
            self as *const crate::QVectorOfQRect,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect> QVector<QRect>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_mid1(
            self as *const crate::QVectorOfQRect,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_move(
            self as *mut crate::QVectorOfQRect,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QRect>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QRect>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(size: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QRect>::QVector(int size, const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QRect>::QVector(const QVector<QRect>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRect>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRect>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_pop_back(self as *mut crate::QVectorOfQRect)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_pop_front(self as *mut crate::QVectorOfQRect)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::prepend(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_prepend(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::push_back(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_push_back(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::push_front(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_push_front(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_remove(self as *mut crate::QVectorOfQRect, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_remove1(self as *mut crate::QVectorOfQRect, i, n)
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::removeAll(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_removeAll(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_removeAt(self as *mut crate::QVectorOfQRect, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_removeFirst(self as *mut crate::QVectorOfQRect)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_removeLast(self as *mut crate::QVectorOfQRect)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::removeOne(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_removeOne(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::replace(int i, const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_replace(
            self as *mut crate::QVectorOfQRect,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_reserve(self as *mut crate::QVectorOfQRect, size)
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_resize(self as *mut crate::QVectorOfQRect, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_setSharable(
            self as *mut crate::QVectorOfQRect,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_shrink_to_fit(self as *mut crate::QVectorOfQRect)
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_size(self as *const crate::QVectorOfQRect)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_squeeze(self as *mut crate::QVectorOfQRect)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::startsWith(const QRect& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_startsWith(
            self as *const crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRect>::swap(QVector<QRect>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_swap(
            self as *mut crate::QVectorOfQRect,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQRect>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QVector<QRect>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_takeAt(
            self as *mut crate::QVectorOfQRect,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QVector<QRect>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_takeFirst(
            self as *mut crate::QVectorOfQRect,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QVector<QRect>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_takeLast(self as *mut crate::QVectorOfQRect);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QVector<QRect>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_value(
            self as *const crate::QVectorOfQRect,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect QVector<QRect>::value(int i, const QRect& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_value1(
            self as *const crate::QVectorOfQRect,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_q_key_sequence {
    //! C++ type: <span style='color: green;'>```QList<QKeySequence>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QKeySequence>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator& QList<QKeySequence>::iterator::operator=(const QList<QKeySequence>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_8(
                    self as *mut crate::q_list_of_q_key_sequence::Iterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator& QList<QKeySequence>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__12(
                self as *mut crate::q_list_of_q_key_sequence::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__13(
                self as *mut crate::q_list_of_q_key_sequence::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator& QList<QKeySequence>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__10(
                self as *mut crate::q_list_of_q_key_sequence::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__11(
                self as *mut crate::q_list_of_q_key_sequence::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QKeySequence& QList<QKeySequence>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::QKeySequence> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__1(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QKeySequence& QList<QKeySequence>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QKeySequence> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QKeySequence>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QKeySequence>::iterator::iterator(const QList<QKeySequence>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QKeySequence* QList<QKeySequence>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<crate::QKeySequence> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QKeySequence>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator& QList<QKeySequence>::const_iterator::operator=(const QList<QKeySequence>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator& QList<QKeySequence>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator& QList<QKeySequence>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::QKeySequence> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__1(
                    self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                    j,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator_(
                    self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QKeySequence>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator>
        {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QKeySequence>::const_iterator::const_iterator(const QList<QKeySequence>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_const_iterator2(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QKeySequence>::const_iterator::const_iterator(const QList<QKeySequence>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_const_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QKeySequence* QList<QKeySequence>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<crate::QKeySequence> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__(
                    self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_key_sequence::Iterator {
        type Output = ::cpp_core::MutRef<crate::QKeySequence>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QKeySequence& QList<QKeySequence>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QKeySequence> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator==(const QList<QKeySequence>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__2(
                    self as *const crate::q_list_of_q_key_sequence::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator<(const QList<QKeySequence>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_1(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator<=(const QList<QKeySequence>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__4(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator>(const QList<QKeySequence>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_2(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator>=(const QList<QKeySequence>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__5(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator==(const QList<QKeySequence>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__6(
                    self as *const crate::q_list_of_q_key_sequence::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator<(const QList<QKeySequence>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_3(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator<=(const QList<QKeySequence>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__8(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator>(const QList<QKeySequence>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_4(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::iterator::operator>=(const QList<QKeySequence>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__9(
                self as *const crate::q_list_of_q_key_sequence::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_key_sequence::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator& QList<QKeySequence>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__10(
                self as *mut crate::q_list_of_q_key_sequence::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_key_sequence::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator& QList<QKeySequence>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__12(
                self as *mut crate::q_list_of_q_key_sequence::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator& QList<QKeySequence>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__14(
                    self as *mut crate::q_list_of_q_key_sequence::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_key_sequence::Iterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator& QList<QKeySequence>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator__15(
                    self as *mut crate::q_list_of_q_key_sequence::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_key_sequence::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_5(
                    self as *const crate::q_list_of_q_key_sequence::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_key_sequence::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_6(
                    self as *const crate::q_list_of_q_key_sequence::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>
        for &crate::q_list_of_q_key_sequence::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::iterator::operator-(QList<QKeySequence>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_operator_7(
                    self as *const crate::q_list_of_q_key_sequence::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_key_sequence::ConstIterator {
        type Output = ::cpp_core::Ref<crate::QKeySequence>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator_(
                    self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::const_iterator::operator==(const QList<QKeySequence>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::const_iterator::operator<(const QList<QKeySequence>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator_1(
                self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::const_iterator::operator<=(const QList<QKeySequence>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__4(
                self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::const_iterator::operator>(const QList<QKeySequence>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator_2(
                self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for crate::q_list_of_q_key_sequence::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::const_iterator::operator>=(const QList<QKeySequence>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__5(
                self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_key_sequence::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator& QList<QKeySequence>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_key_sequence::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator& QList<QKeySequence>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_key_sequence::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator& QList<QKeySequence>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_key_sequence::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator& QList<QKeySequence>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_key_sequence::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_key_sequence::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>>
        for &crate::q_list_of_q_key_sequence::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::const_iterator::operator-(QList<QKeySequence>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_key_sequence::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_key_sequence::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_key_sequence::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QKeySequence>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_iterator_diterator(
                self as *mut crate::q_list_of_q_key_sequence::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_key_sequence::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QKeySequence>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_key_sequence::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QKeySequence>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQKeySequence {
    _unused: u8,
}
impl QListOfQKeySequence {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::append(const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_key_sequence(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_append(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::append(const QList<QKeySequence>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_q_key_sequence(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_append1(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQKeySequence>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_at(
            self as *const crate::QListOfQKeySequence,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence& QList<QKeySequence>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_back(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_back1(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_begin(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_begin1(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_cbegin(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_cend(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_clear(
            self as *mut crate::QListOfQKeySequence,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_constBegin(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_constEnd(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_constFirst(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_constLast(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::contains(const QKeySequence& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_contains(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>& QList<QKeySequence>::operator=(const QList<QKeySequence>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQKeySequence>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator_(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQKeySequence>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::count(const QKeySequence& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_count(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_count1(
            self as *const crate::QListOfQKeySequence,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_detach(
            self as *mut crate::QListOfQKeySequence,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_detachShared(
            self as *mut crate::QListOfQKeySequence,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_empty(
            self as *const crate::QListOfQKeySequence,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_end(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_end1(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::endsWith(const QKeySequence& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_endsWith(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::erase(QList<QKeySequence>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_erase(self as *mut crate::QListOfQKeySequence, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::erase(QList<QKeySequence>::iterator first, QList<QKeySequence>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_erase1(self as *mut crate::QListOfQKeySequence, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence& QList<QKeySequence>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_first(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_first1(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence& QList<QKeySequence>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_front(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_front1(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator__2(
            self as *const crate::QListOfQKeySequence,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence& QList<QKeySequence>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator__3(
            self as *mut crate::QListOfQKeySequence,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::indexOf(const QKeySequence& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_indexOf(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::indexOf(const QKeySequence& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_indexOf1(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::insert(int i, const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_q_key_sequence(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_insert(
            self as *mut crate::QListOfQKeySequence,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::insert(QList<QKeySequence>::iterator before, const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_q_key_sequence(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_insert1(self as *mut crate::QListOfQKeySequence, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_key_sequence::Iterator>>::cast_into(before).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_isDetached(
            self as *const crate::QListOfQKeySequence,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_isEmpty(
            self as *const crate::QListOfQKeySequence,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::isSharedWith(const QList<QKeySequence>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQKeySequence>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_isSharedWith(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQKeySequence>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence& QList<QKeySequence>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_last(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QKeySequence& QList<QKeySequence>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_last1(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::lastIndexOf(const QKeySequence& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_lastIndexOf(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::lastIndexOf(const QKeySequence& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_lastIndexOf1(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_length(
            self as *const crate::QListOfQKeySequence,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence> QList<QKeySequence>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_mid(
            self as *const crate::QListOfQKeySequence,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence> QList<QKeySequence>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_mid1(
            self as *const crate::QListOfQKeySequence,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_move(
            self as *mut crate::QListOfQKeySequence,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QKeySequence>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QKeySequence>::QList(const QList<QKeySequence>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQKeySequence>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQKeySequence>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_pop_back(
            self as *mut crate::QListOfQKeySequence,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_pop_front(
            self as *mut crate::QListOfQKeySequence,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::prepend(const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_prepend(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::push_back(const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_push_back(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::push_front(const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_push_front(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::removeAll(const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_removeAll(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_removeAt(
            self as *mut crate::QListOfQKeySequence,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_removeFirst(
            self as *mut crate::QListOfQKeySequence,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_removeLast(
            self as *mut crate::QListOfQKeySequence,
        )
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::removeOne(const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_removeOne(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::replace(int i, const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_replace(
            self as *mut crate::QListOfQKeySequence,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_reserve(
            self as *mut crate::QListOfQKeySequence,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_setSharable(
            self as *mut crate::QListOfQKeySequence,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_size(
            self as *const crate::QListOfQKeySequence,
        )
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::startsWith(const QKeySequence& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_startsWith(
            self as *const crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::swap(QList<QKeySequence>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQKeySequence>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_swap(
            self as *mut crate::QListOfQKeySequence,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQKeySequence>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_swap1(
            self as *mut crate::QListOfQKeySequence,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QKeySequence>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_swapItemsAt(
            self as *mut crate::QListOfQKeySequence,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence QList<QKeySequence>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_takeAt(
            self as *mut crate::QListOfQKeySequence,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence QList<QKeySequence>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_takeFirst(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence QList<QKeySequence>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_takeLast(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence QList<QKeySequence>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_value(
            self as *const crate::QListOfQKeySequence,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QKeySequence QList<QKeySequence>::value(int i, const QKeySequence& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    ) -> ::cpp_core::CppBox<crate::QKeySequence> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_value1(
            self as *const crate::QListOfQKeySequence,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_q_touch_device {
    //! C++ type: <span style='color: green;'>```QList<const QTouchDevice*>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<const QTouchDevice*>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator& QList<const QTouchDevice*>::iterator::operator=(const QList<const QTouchDevice*>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_8(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator& QList<const QTouchDevice*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__13(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator& QList<const QTouchDevice*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__11(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTouchDevice*& QList<const QTouchDevice*>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<*const crate::QTouchDevice> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__1(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTouchDevice*& QList<const QTouchDevice*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<*const crate::QTouchDevice> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<const QTouchDevice*>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<const QTouchDevice*>::iterator::iterator(const QList<const QTouchDevice*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTouchDevice** QList<const QTouchDevice*>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<*const crate::QTouchDevice> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator& QList<const QTouchDevice*>::const_iterator::operator=(const QList<const QTouchDevice*>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_touch_device::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator& QList<const QTouchDevice*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__8(self as *mut crate::q_list_of_q_touch_device::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__9(self as *mut crate::q_list_of_q_touch_device::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator& QList<const QTouchDevice*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__6(self as *mut crate::q_list_of_q_touch_device::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__7(self as *mut crate::q_list_of_q_touch_device::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<const QTouchDevice*>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator>
        {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<const QTouchDevice*>::const_iterator::const_iterator(const QList<const QTouchDevice*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<const QTouchDevice*>::const_iterator::const_iterator(const QList<const QTouchDevice*>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_touch_device::Iterator {
        type Output = ::cpp_core::MutRef<*const crate::QTouchDevice>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTouchDevice*& QList<const QTouchDevice*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<*const crate::QTouchDevice> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator==(const QList<const QTouchDevice*>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__2(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator<(const QList<const QTouchDevice*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_1(
                self as *const crate::q_list_of_q_touch_device::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator<=(const QList<const QTouchDevice*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__4(
                self as *const crate::q_list_of_q_touch_device::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator>(const QList<const QTouchDevice*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_2(
                self as *const crate::q_list_of_q_touch_device::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator>=(const QList<const QTouchDevice*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__5(
                self as *const crate::q_list_of_q_touch_device::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator==(const QList<const QTouchDevice*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__6(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator<(const QList<const QTouchDevice*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_3(
                self as *const crate::q_list_of_q_touch_device::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator<=(const QList<const QTouchDevice*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__8(
                self as *const crate::q_list_of_q_touch_device::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator>(const QList<const QTouchDevice*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_4(
                self as *const crate::q_list_of_q_touch_device::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::iterator::operator>=(const QList<const QTouchDevice*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__9(
                self as *const crate::q_list_of_q_touch_device::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_touch_device::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_touch_device::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator& QList<const QTouchDevice*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_touch_device::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_touch_device::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator& QList<const QTouchDevice*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator& QList<const QTouchDevice*>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__14(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_touch_device::Iterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator& QList<const QTouchDevice*>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator__15(
                    self as *mut crate::q_list_of_q_touch_device::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_touch_device::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_5(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_touch_device::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_6(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>
        for &crate::q_list_of_q_touch_device::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<const QTouchDevice*>::iterator::operator-(QList<const QTouchDevice*>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_operator_7(
                    self as *const crate::q_list_of_q_touch_device::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::const_iterator::operator==(const QList<const QTouchDevice*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_touch_device::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::const_iterator::operator<(const QList<const QTouchDevice*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator_1(
                self as *const crate::q_list_of_q_touch_device::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::const_iterator::operator<=(const QList<const QTouchDevice*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__4(
                self as *const crate::q_list_of_q_touch_device::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::const_iterator::operator>(const QList<const QTouchDevice*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator_2(
                self as *const crate::q_list_of_q_touch_device::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for crate::q_list_of_q_touch_device::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::const_iterator::operator>=(const QList<const QTouchDevice*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__5(
                self as *const crate::q_list_of_q_touch_device::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_touch_device::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_touch_device::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator& QList<const QTouchDevice*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__6(self as *mut crate::q_list_of_q_touch_device::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_touch_device::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_touch_device::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator& QList<const QTouchDevice*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__8(self as *mut crate::q_list_of_q_touch_device::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_touch_device::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator& QList<const QTouchDevice*>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__10(self as *mut crate::q_list_of_q_touch_device::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_touch_device::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator& QList<const QTouchDevice*>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator__11(self as *mut crate::q_list_of_q_touch_device::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_touch_device::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_touch_device::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_touch_device::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_touch_device::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>>
        for &crate::q_list_of_q_touch_device::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<const QTouchDevice*>::const_iterator::operator-(QList<const QTouchDevice*>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_touch_device::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_touch_device::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_touch_device::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<const QTouchDevice*>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_iterator_diterator(
                self as *mut crate::q_list_of_q_touch_device::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_touch_device::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<const QTouchDevice*>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_touch_device::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<const QTouchDevice*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQTouchDevice {
    _unused: u8,
}
impl QListOfQTouchDevice {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::append(const QList<const QTouchDevice*>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTouchDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_append1(
            self as *mut crate::QListOfQTouchDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTouchDevice>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice*& QList<const QTouchDevice*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&mut self) -> ::cpp_core::MutRef<*const crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_back(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_begin(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_begin1(
            self as *const crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_cbegin(
            self as *const crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_cend(
            self as *const crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_clear(
            self as *mut crate::QListOfQTouchDevice,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_constBegin(
            self as *const crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_constEnd(
            self as *const crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>& QList<const QTouchDevice*>::operator=(const QList<const QTouchDevice*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTouchDevice>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_operator_(
            self as *mut crate::QListOfQTouchDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTouchDevice>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<const QTouchDevice*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_count1(
            self as *const crate::QListOfQTouchDevice,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_detach(
            self as *mut crate::QListOfQTouchDevice,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_detachShared(
            self as *mut crate::QListOfQTouchDevice,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_empty(
            self as *const crate::QListOfQTouchDevice,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_end(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_end1(
            self as *const crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::erase(QList<const QTouchDevice*>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_erase(self as *mut crate::QListOfQTouchDevice, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::erase(QList<const QTouchDevice*>::iterator first, QList<const QTouchDevice*>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_erase1(self as *mut crate::QListOfQTouchDevice, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_touch_device::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice*& QList<const QTouchDevice*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first(&mut self) -> ::cpp_core::MutRef<*const crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_first(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice*& QList<const QTouchDevice*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&mut self) -> ::cpp_core::MutRef<*const crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_front(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice*& QList<const QTouchDevice*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<*const crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_operator__3(
            self as *mut crate::QListOfQTouchDevice,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_isDetached(
            self as *const crate::QListOfQTouchDevice,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_isEmpty(
            self as *const crate::QListOfQTouchDevice,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::isSharedWith(const QList<const QTouchDevice*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTouchDevice>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_isSharedWith(
            self as *const crate::QListOfQTouchDevice,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTouchDevice>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice*& QList<const QTouchDevice*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last(&mut self) -> ::cpp_core::MutRef<*const crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_last(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<const QTouchDevice*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_length(
            self as *const crate::QListOfQTouchDevice,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*> QList<const QTouchDevice*>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_mid(
            self as *const crate::QListOfQTouchDevice,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*> QList<const QTouchDevice*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_mid1(
            self as *const crate::QListOfQTouchDevice,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_move(
            self as *mut crate::QListOfQTouchDevice,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<const QTouchDevice*>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<const QTouchDevice*>::QList(const QList<const QTouchDevice*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTouchDevice>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTouchDevice>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_pop_back(
            self as *mut crate::QListOfQTouchDevice,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_pop_front(
            self as *mut crate::QListOfQTouchDevice,
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_removeAt(
            self as *mut crate::QListOfQTouchDevice,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_removeFirst(
            self as *mut crate::QListOfQTouchDevice,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_removeLast(
            self as *mut crate::QListOfQTouchDevice,
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_reserve(
            self as *mut crate::QListOfQTouchDevice,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_setSharable(
            self as *mut crate::QListOfQTouchDevice,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<const QTouchDevice*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_size(
            self as *const crate::QListOfQTouchDevice,
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::swap(QList<const QTouchDevice*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQTouchDevice>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_swap(
            self as *mut crate::QListOfQTouchDevice,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQTouchDevice>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_swap1(
            self as *mut crate::QListOfQTouchDevice,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<const QTouchDevice*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_swapItemsAt(
            self as *mut crate::QListOfQTouchDevice,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice* QList<const QTouchDevice*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ptr<crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_takeAt(
            self as *mut crate::QListOfQTouchDevice,
            i,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice* QList<const QTouchDevice*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::Ptr<crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_takeFirst(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice* QList<const QTouchDevice*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::Ptr<crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_takeLast(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTouchDevice* QList<const QTouchDevice*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ptr<crate::QTouchDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_value(
            self as *const crate::QListOfQTouchDevice,
            i,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

pub mod q_list_of_q_polygon_f {
    //! C++ type: <span style='color: green;'>```QList<QPolygonF>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QPolygonF>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator& QList<QPolygonF>::iterator::operator=(const QList<QPolygonF>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_8(self as *mut crate::q_list_of_q_polygon_f::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator& QList<QPolygonF>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__12(
                self as *mut crate::q_list_of_q_polygon_f::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__13(
                self as *mut crate::q_list_of_q_polygon_f::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator& QList<QPolygonF>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__10(
                self as *mut crate::q_list_of_q_polygon_f::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__11(
                self as *mut crate::q_list_of_q_polygon_f::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPolygonF& QList<QPolygonF>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::QPolygonF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__1(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPolygonF& QList<QPolygonF>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QPolygonF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QPolygonF>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QPolygonF>::iterator::iterator(const QList<QPolygonF>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPolygonF* QList<QPolygonF>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<crate::QPolygonF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QPolygonF>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator& QList<QPolygonF>::const_iterator::operator=(const QList<QPolygonF>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator& QList<QPolygonF>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator& QList<QPolygonF>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::QPolygonF> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__1(
                    self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                    j,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QPolygonF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator_(
                self as *const crate::q_list_of_q_polygon_f::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QPolygonF>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QPolygonF>::const_iterator::const_iterator(const QList<QPolygonF>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QPolygonF>::const_iterator::const_iterator(const QList<QPolygonF>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_const_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QPolygonF* QList<QPolygonF>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<crate::QPolygonF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__(
                self as *const crate::q_list_of_q_polygon_f::ConstIterator,
            );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_polygon_f::Iterator {
        type Output = ::cpp_core::MutRef<crate::QPolygonF>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QPolygonF& QList<QPolygonF>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QPolygonF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator==(const QList<QPolygonF>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__2(
                    self as *const crate::q_list_of_q_polygon_f::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator<(const QList<QPolygonF>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_1(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator<=(const QList<QPolygonF>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__4(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator>(const QList<QPolygonF>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_2(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator>=(const QList<QPolygonF>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__5(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator==(const QList<QPolygonF>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__6(
                    self as *const crate::q_list_of_q_polygon_f::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator<(const QList<QPolygonF>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_3(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator<=(const QList<QPolygonF>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__8(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator>(const QList<QPolygonF>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_4(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::iterator::operator>=(const QList<QPolygonF>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__9(
                self as *const crate::q_list_of_q_polygon_f::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_polygon_f::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator& QList<QPolygonF>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__10(
                self as *mut crate::q_list_of_q_polygon_f::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_polygon_f::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator& QList<QPolygonF>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__12(
                self as *mut crate::q_list_of_q_polygon_f::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_polygon_f::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator& QList<QPolygonF>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__14(
                    self as *mut crate::q_list_of_q_polygon_f::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_polygon_f::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator& QList<QPolygonF>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator__15(
                    self as *mut crate::q_list_of_q_polygon_f::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_polygon_f::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_5(
                    self as *const crate::q_list_of_q_polygon_f::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_polygon_f::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_6(
                    self as *const crate::q_list_of_q_polygon_f::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>
        for &crate::q_list_of_q_polygon_f::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::iterator::operator-(QList<QPolygonF>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_operator_7(
                    self as *const crate::q_list_of_q_polygon_f::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_polygon_f::ConstIterator {
        type Output = ::cpp_core::Ref<crate::QPolygonF>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QPolygonF> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator_(
                self as *const crate::q_list_of_q_polygon_f::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::const_iterator::operator==(const QList<QPolygonF>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::const_iterator::operator<(const QList<QPolygonF>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator_1(
                self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::const_iterator::operator<=(const QList<QPolygonF>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__4(
                self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::const_iterator::operator>(const QList<QPolygonF>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator_2(
                self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for crate::q_list_of_q_polygon_f::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::const_iterator::operator>=(const QList<QPolygonF>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__5(
                self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_polygon_f::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator& QList<QPolygonF>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_polygon_f::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator& QList<QPolygonF>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_polygon_f::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator& QList<QPolygonF>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_polygon_f::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator& QList<QPolygonF>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_polygon_f::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_polygon_f::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>>
        for &crate::q_list_of_q_polygon_f::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::const_iterator::operator-(QList<QPolygonF>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_polygon_f::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_polygon_f::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_polygon_f::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QPolygonF>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_iterator_diterator(
                self as *mut crate::q_list_of_q_polygon_f::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_polygon_f::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QPolygonF>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_polygon_f::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QPolygonF>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQPolygonF {
    _unused: u8,
}
impl QListOfQPolygonF {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::append(const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_polygon_f(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_append(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::append(const QList<QPolygonF>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_q_polygon_f(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_append1(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQPolygonF>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_at(
            self as *const crate::QListOfQPolygonF,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF& QList<QPolygonF>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::QPolygonF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_back(self as *mut crate::QListOfQPolygonF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_back1(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_begin(
            self as *mut crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_begin1(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_cbegin(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_cend(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_clear(self as *mut crate::QListOfQPolygonF)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_constBegin(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_constEnd(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_constFirst(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_constLast(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::contains(const QPolygonF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_contains(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>& QList<QPolygonF>::operator=(const QList<QPolygonF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQPolygonF>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator_(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQPolygonF>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::count(const QPolygonF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_count(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_count1(self as *const crate::QListOfQPolygonF)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_detach(self as *mut crate::QListOfQPolygonF)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_detachShared(
            self as *mut crate::QListOfQPolygonF,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_empty(self as *const crate::QListOfQPolygonF)
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_end(self as *mut crate::QListOfQPolygonF);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_end1(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::endsWith(const QPolygonF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_endsWith(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::erase(QList<QPolygonF>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_erase(self as *mut crate::QListOfQPolygonF, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::erase(QList<QPolygonF>::iterator first, QList<QPolygonF>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_erase1(self as *mut crate::QListOfQPolygonF, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF& QList<QPolygonF>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_first(
            self as *mut crate::QListOfQPolygonF,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_first1(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF& QList<QPolygonF>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_front(
            self as *mut crate::QListOfQPolygonF,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_front1(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator__2(
            self as *const crate::QListOfQPolygonF,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF& QList<QPolygonF>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator__3(
            self as *mut crate::QListOfQPolygonF,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::indexOf(const QPolygonF& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_indexOf(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::indexOf(const QPolygonF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_indexOf1(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::insert(int i, const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_q_polygon_f(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_insert(
            self as *mut crate::QListOfQPolygonF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::insert(QList<QPolygonF>::iterator before, const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_q_polygon_f(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_insert1(self as *mut crate::QListOfQPolygonF, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_polygon_f::Iterator>>::cast_into(before).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_isDetached(
            self as *const crate::QListOfQPolygonF,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_isEmpty(self as *const crate::QListOfQPolygonF)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::isSharedWith(const QList<QPolygonF>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQPolygonF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_isSharedWith(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQPolygonF>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF& QList<QPolygonF>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::QPolygonF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_last(self as *mut crate::QListOfQPolygonF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPolygonF& QList<QPolygonF>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_last1(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::lastIndexOf(const QPolygonF& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_lastIndexOf(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::lastIndexOf(const QPolygonF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_lastIndexOf1(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_length(self as *const crate::QListOfQPolygonF)
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QList<QPolygonF>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_mid(
            self as *const crate::QListOfQPolygonF,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QList<QPolygonF>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_mid1(
            self as *const crate::QListOfQPolygonF,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_move(
            self as *mut crate::QListOfQPolygonF,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QPolygonF>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QPolygonF>::QList(const QList<QPolygonF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQPolygonF>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_pop_back(self as *mut crate::QListOfQPolygonF)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_pop_front(self as *mut crate::QListOfQPolygonF)
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::prepend(const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_prepend(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::push_back(const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_push_back(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::push_front(const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_push_front(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::removeAll(const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_removeAll(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_removeAt(
            self as *mut crate::QListOfQPolygonF,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_removeFirst(
            self as *mut crate::QListOfQPolygonF,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_removeLast(
            self as *mut crate::QListOfQPolygonF,
        )
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::removeOne(const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_removeOne(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::replace(int i, const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_replace(
            self as *mut crate::QListOfQPolygonF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_reserve(
            self as *mut crate::QListOfQPolygonF,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_setSharable(
            self as *mut crate::QListOfQPolygonF,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_size(self as *const crate::QListOfQPolygonF)
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::startsWith(const QPolygonF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_startsWith(
            self as *const crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::swap(QList<QPolygonF>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQPolygonF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_swap(
            self as *mut crate::QListOfQPolygonF,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQPolygonF>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_swap1(
            self as *mut crate::QListOfQPolygonF,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QPolygonF>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_swapItemsAt(
            self as *mut crate::QListOfQPolygonF,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QList<QPolygonF>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_takeAt(
            self as *mut crate::QListOfQPolygonF,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QList<QPolygonF>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_takeFirst(
            self as *mut crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QList<QPolygonF>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_takeLast(
            self as *mut crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QList<QPolygonF>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_value(
            self as *const crate::QListOfQPolygonF,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPolygonF QList<QPolygonF>::value(int i, const QPolygonF& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPolygonF>>,
    ) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_value1(
            self as *const crate::QListOfQPolygonF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPolygonF>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<double>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfDouble {
    _unused: u8,
}
impl QVectorOfDouble {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::append(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_double(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_append(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::append(const QVector<double>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_double(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_append2(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QVector<double>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_at(
            self as *const crate::QVectorOfDouble,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QVector<double>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_back(self as *mut crate::QVectorOfDouble);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QVector<double>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_back1(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_capacity(self as *const crate::QVectorOfDouble)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_clear(self as *mut crate::QVectorOfDouble)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double* QVector<double>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_constData(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QVector<double>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_constFirst(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QVector<double>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_constLast(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::contains(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_contains(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double>& QVector<double>::operator=(const QVector<double>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator_(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::count(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_count(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_count1(self as *const crate::QVectorOfDouble)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double* QVector<double>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_data(self as *mut crate::QVectorOfDouble);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double* QVector<double>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_data1(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_detach(self as *mut crate::QVectorOfDouble)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_empty(self as *const crate::QVectorOfDouble)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::endsWith(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_endsWith(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double>& QVector<double>::fill(const double& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_fill(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double>& QVector<double>::fill(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_fill1(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QVector<double>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_first(self as *mut crate::QVectorOfDouble);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QVector<double>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_first1(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in <i>list</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QVector<double> QVector<double>::fromList(const QList<double>& list)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fromList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in <i>list</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Sven"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Kim"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Ola"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vect <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>fromList(list);
    ///   <span class="comment">// vect: ["Sven", "Kim", "Ola"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#toList">toList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#toVector">QList::toVector</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_list(
        list: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfDouble>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_fromList(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfDouble>>::cast_into(list)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QVector<double>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_front(self as *mut crate::QVectorOfDouble);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QVector<double>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_front1(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QVector<double>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator__2(
            self as *mut crate::QVectorOfDouble,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QVector<double>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator__3(
            self as *const crate::QVectorOfDouble,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::indexOf(const double& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_indexOf(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::indexOf(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_indexOf1(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::insert(int i, const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_insert(
            self as *mut crate::QVectorOfDouble,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::insert(int i, int n, const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_insert1(
            self as *mut crate::QVectorOfDouble,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_isDetached(
            self as *const crate::QVectorOfDouble,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_isEmpty(self as *const crate::QVectorOfDouble)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::isSharedWith(const QVector<double>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_isSharedWith(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QVector<double>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_last(self as *mut crate::QVectorOfDouble);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QVector<double>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_last1(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::lastIndexOf(const double& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_lastIndexOf(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::lastIndexOf(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_lastIndexOf1(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_length(self as *const crate::QVectorOfDouble)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double> QVector<double>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_mid(
            self as *const crate::QVectorOfDouble,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double> QVector<double>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_mid1(
            self as *const crate::QVectorOfDouble,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_move(
            self as *mut crate::QVectorOfDouble,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<double>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<double>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<double>::QVector(int size, const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<double>::QVector(const QVector<double>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_pop_back(self as *mut crate::QVectorOfDouble)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_pop_front(self as *mut crate::QVectorOfDouble)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::prepend(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_prepend(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::push_back(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_push_back(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::push_front(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_push_front(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_remove(self as *mut crate::QVectorOfDouble, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_remove1(
            self as *mut crate::QVectorOfDouble,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::removeAll(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_removeAll(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_removeAt(self as *mut crate::QVectorOfDouble, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_removeFirst(self as *mut crate::QVectorOfDouble)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_removeLast(self as *mut crate::QVectorOfDouble)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::removeOne(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_removeOne(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::replace(int i, const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_replace(
            self as *mut crate::QVectorOfDouble,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_reserve(
            self as *mut crate::QVectorOfDouble,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_resize(
            self as *mut crate::QVectorOfDouble,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_setSharable(
            self as *mut crate::QVectorOfDouble,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_shrink_to_fit(
            self as *mut crate::QVectorOfDouble,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_size(self as *const crate::QVectorOfDouble)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_squeeze(self as *mut crate::QVectorOfDouble)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::startsWith(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_startsWith(
            self as *const crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<double>::swap(QVector<double>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_swap(
            self as *mut crate::QVectorOfDouble,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfDouble>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QVector<double>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&mut self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_takeAt(self as *mut crate::QVectorOfDouble, i)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QVector<double>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_takeFirst(self as *mut crate::QVectorOfDouble)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QVector<double>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_takeLast(self as *mut crate::QVectorOfDouble)
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double> QVector<double>::toList() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#toList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vect;
    ///   vect <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"red"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"green"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"blue"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"black"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> list <span class="operator">=</span> vect<span class="operator">.</span>toList();
    ///   <span class="comment">// list: ["red", "green", "blue", "black"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#fromList">fromList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">QList::fromVector</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_list(&self) -> ::cpp_core::CppBox<crate::QListOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_toList(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QVector<double>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_value(self as *const crate::QVectorOfDouble, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QVector<double>::value(int i, const double& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_value1(
            self as *const crate::QVectorOfDouble,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        )
    }
}

pub mod q_list_of_double {
    //! C++ type: <span style='color: green;'>```QList<double>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<double>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator& QList<double>::iterator::operator=(const QList<double>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_8(self as *mut crate::q_list_of_double::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator& QList<double>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__12(
                self as *mut crate::q_list_of_double::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__13(
                self as *mut crate::q_list_of_double::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator& QList<double>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__10(
                self as *mut crate::q_list_of_double::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__11(
                self as *mut crate::q_list_of_double::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```double& QList<double>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__1(
                self as *const crate::q_list_of_double::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```double& QList<double>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_(
                self as *const crate::q_list_of_double::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<double>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<double>::iterator::iterator(const QList<double>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```double* QList<double>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<::std::os::raw::c_double> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__(
                self as *const crate::q_list_of_double::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<double>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator& QList<double>::const_iterator::operator=(const QList<double>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator_6(self as *mut crate::q_list_of_double::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator& QList<double>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__8(
                self as *mut crate::q_list_of_double::ConstIterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__9(
                self as *mut crate::q_list_of_double::ConstIterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator& QList<double>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__6(
                self as *mut crate::q_list_of_double::ConstIterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__7(
                self as *mut crate::q_list_of_double::ConstIterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<::std::os::raw::c_double> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__1(
                self as *const crate::q_list_of_double::ConstIterator,
                j,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator_(
                self as *const crate::q_list_of_double::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<double>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<double>::const_iterator::const_iterator(const QList<double>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<double>::const_iterator::const_iterator(const QList<double>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const double* QList<double>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<::std::os::raw::c_double> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__(
                self as *const crate::q_list_of_double::ConstIterator,
            );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_double::Iterator {
        type Output = ::cpp_core::MutRef<::std::os::raw::c_double>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```double& QList<double>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_(
                self as *const crate::q_list_of_double::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_double::Iterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator==(const QList<double>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_double::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__2(
                    self as *const crate::q_list_of_double::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_double::Iterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator<(const QList<double>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(&self, other: &::cpp_core::Ref<crate::q_list_of_double::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_1(
                self as *const crate::q_list_of_double::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_double::Iterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator<=(const QList<double>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(&self, other: &::cpp_core::Ref<crate::q_list_of_double::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__4(
                self as *const crate::q_list_of_double::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_double::Iterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator>(const QList<double>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(&self, other: &::cpp_core::Ref<crate::q_list_of_double::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_2(
                self as *const crate::q_list_of_double::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_double::Iterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator>=(const QList<double>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(&self, other: &::cpp_core::Ref<crate::q_list_of_double::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__5(
                self as *const crate::q_list_of_double::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator==(const QList<double>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__6(
                    self as *const crate::q_list_of_double::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator<(const QList<double>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_3(
                self as *const crate::q_list_of_double::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator<=(const QList<double>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__8(
                self as *const crate::q_list_of_double::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator>(const QList<double>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_4(
                self as *const crate::q_list_of_double::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::iterator::operator>=(const QList<double>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__9(
                self as *const crate::q_list_of_double::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_double::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_double::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator& QList<double>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__10(
                self as *mut crate::q_list_of_double::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_double::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_double::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator& QList<double>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_double::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__12(
                self as *mut crate::q_list_of_double::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_double::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator& QList<double>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__14(
                    self as *mut crate::q_list_of_double::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_double::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator& QList<double>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator__15(
                    self as *mut crate::q_list_of_double::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_double::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_double::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_5(
                    self as *const crate::q_list_of_double::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_double::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_double::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_6(
                    self as *const crate::q_list_of_double::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_double::Iterator>>
        for &crate::q_list_of_double::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<double>::iterator::operator-(QList<double>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_double::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_operator_7(
                    self as *const crate::q_list_of_double::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_double::ConstIterator {
        type Output = ::cpp_core::Ref<::std::os::raw::c_double>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator_(
                self as *const crate::q_list_of_double::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::const_iterator::operator==(const QList<double>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__2(
                    self as *const crate::q_list_of_double::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::const_iterator::operator<(const QList<double>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator_1(
                self as *const crate::q_list_of_double::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::const_iterator::operator<=(const QList<double>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__4(
                self as *const crate::q_list_of_double::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::const_iterator::operator>(const QList<double>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator_2(
                self as *const crate::q_list_of_double::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for crate::q_list_of_double::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<double>::const_iterator::operator>=(const QList<double>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__5(
                self as *const crate::q_list_of_double::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_double::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_double::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator& QList<double>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__6(
                self as *mut crate::q_list_of_double::ConstIterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_double::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_double::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator& QList<double>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_double::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__8(
                self as *mut crate::q_list_of_double::ConstIterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_double::ConstIterator {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator& QList<double>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__10(
                    self as *mut crate::q_list_of_double::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_double::ConstIterator {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator& QList<double>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator__11(
                    self as *mut crate::q_list_of_double::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_double::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator_3(
                    self as *const crate::q_list_of_double::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_double::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator_4(
                    self as *const crate::q_list_of_double::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_double::ConstIterator>>
        for &crate::q_list_of_double::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<double>::const_iterator::operator-(QList<double>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_double::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_operator_5(
                    self as *const crate::q_list_of_double::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_double::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<double>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_iterator_diterator(
                self as *mut crate::q_list_of_double::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_double::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<double>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_double::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<double>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfDouble {
    _unused: u8,
}
impl QListOfDouble {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::append(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_double(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_append(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::append(const QList<double>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_double(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_append1(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfDouble>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_at(self as *const crate::QListOfDouble, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QList<double>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_back(self as *mut crate::QListOfDouble);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_back1(self as *const crate::QListOfDouble);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_begin(self as *mut crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_begin1(self as *const crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_cbegin(self as *const crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_cend(self as *const crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_clear(self as *mut crate::QListOfDouble)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_constBegin(
            self as *const crate::QListOfDouble,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(&self) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_constEnd(self as *const crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_constFirst(
            self as *const crate::QListOfDouble,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_constLast(
            self as *const crate::QListOfDouble,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::contains(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_contains(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>& QList<double>::operator=(const QList<double>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfDouble>>,
    ) -> ::cpp_core::MutRef<crate::QListOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_operator_(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfDouble>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::count(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_count(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_count1(self as *const crate::QListOfDouble)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<double>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_detach(self as *mut crate::QListOfDouble)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<double>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_detachShared(self as *mut crate::QListOfDouble)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_empty(self as *const crate::QListOfDouble)
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_end(self as *mut crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_end1(self as *const crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::endsWith(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_endsWith(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::erase(QList<double>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_erase(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::Iterator>>::cast_into(
                pos,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::erase(QList<double>::iterator first, QList<double>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_erase1(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::Iterator>>::cast_into(
                first,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::Iterator>>::cast_into(
                last,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QList<double>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_first(self as *mut crate::QListOfDouble);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_first1(self as *const crate::QListOfDouble);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<double> QList<double>::fromVector(const QVector<double>& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in <i>vector</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vect;
    ///   vect <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">20.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">30.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">40.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">50.0</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> list <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span><span class="operator">::</span>fromVector(vect);
    ///   <span class="comment">// list: [20.0, 30.0, 40.0, 50.0]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#fromSet">fromSet</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#toVector">toVector</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#toList">QVector::toList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_vector(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
    ) -> ::cpp_core::CppBox<crate::QListOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_fromVector(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QList<double>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_front(self as *mut crate::QListOfDouble);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_front1(self as *const crate::QListOfDouble);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_operator__2(
            self as *const crate::QListOfDouble,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QList<double>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_operator__3(
            self as *mut crate::QListOfDouble,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::indexOf(const double& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_indexOf(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::indexOf(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_indexOf1(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::insert(int i, const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_double(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_insert(
            self as *mut crate::QListOfDouble,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::insert(QList<double>::iterator before, const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_double(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_double::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_insert1(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_double::Iterator>>::cast_into(
                before,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_isDetached(self as *const crate::QListOfDouble)
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_isEmpty(self as *const crate::QListOfDouble)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::isSharedWith(const QList<double>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfDouble>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_isSharedWith(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfDouble>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double& QList<double>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_last(self as *mut crate::QListOfDouble);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double& QList<double>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_last1(self as *const crate::QListOfDouble);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::lastIndexOf(const double& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_lastIndexOf(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::lastIndexOf(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_lastIndexOf1(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_length(self as *const crate::QListOfDouble)
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double> QList<double>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_mid(
            self as *const crate::QListOfDouble,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double> QList<double>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_mid1(
            self as *const crate::QListOfDouble,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_move(self as *mut crate::QListOfDouble, from, to)
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<double>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<double>::QList(const QList<double>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfDouble>>,
    ) -> ::cpp_core::CppBox<crate::QListOfDouble> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_double_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfDouble>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_pop_back(self as *mut crate::QListOfDouble)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_pop_front(self as *mut crate::QListOfDouble)
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::prepend(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_prepend(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::push_back(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_push_back(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::push_front(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_push_front(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::removeAll(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_removeAll(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_removeAt(self as *mut crate::QListOfDouble, i)
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_removeFirst(self as *mut crate::QListOfDouble)
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_removeLast(self as *mut crate::QListOfDouble)
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::removeOne(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_removeOne(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::replace(int i, const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_replace(
            self as *mut crate::QListOfDouble,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_reserve(self as *mut crate::QListOfDouble, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<double>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_setSharable(
            self as *mut crate::QListOfDouble,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_size(self as *const crate::QListOfDouble)
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::startsWith(const double& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_startsWith(
            self as *const crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::swap(QList<double>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_swap(
            self as *mut crate::QListOfDouble,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfDouble>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_swap1(self as *mut crate::QListOfDouble, i, j)
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<double>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_swapItemsAt(
            self as *mut crate::QListOfDouble,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QList<double>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&mut self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_takeAt(self as *mut crate::QListOfDouble, i)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QList<double>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_takeFirst(self as *mut crate::QListOfDouble)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QList<double>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_takeLast(self as *mut crate::QListOfDouble)
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double> QList<double>::toVector() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#toVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Sven"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Kim"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Ola"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vect <span class="operator">=</span> list<span class="operator">.</span>toVector();
    ///   <span class="comment">// vect: ["Sven", "Kim", "Ola"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#toSet">toSet</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">fromVector</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fromList">QVector::fromList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector(&self) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_toVector(self as *const crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QList<double>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_value(self as *const crate::QListOfDouble, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double QList<double>::value(int i, const double& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    ) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_value1(
            self as *const crate::QListOfDouble,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        )
    }
}

pub mod q_list_of_tab {
    //! C++ type: <span style='color: green;'>```QList<QTextOption::Tab>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTextOption::Tab>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator& QList<QTextOption::Tab>::iterator::operator=(const QList<QTextOption::Tab>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_tab::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_8(
                self as *mut crate::q_list_of_tab::Iterator,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator& QList<QTextOption::Tab>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_tab::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__12(
                    self as *mut crate::q_list_of_tab::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__13(
                    self as *mut crate::q_list_of_tab::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator& QList<QTextOption::Tab>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_tab::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__10(
                    self as *mut crate::q_list_of_tab::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__11(
                    self as *mut crate::q_list_of_tab::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QList<QTextOption::Tab>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__1(
                    self as *const crate::q_list_of_tab::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QList<QTextOption::Tab>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_(
                self as *const crate::q_list_of_tab::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextOption::Tab>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextOption::Tab>::iterator::iterator(const QList<QTextOption::Tab>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_iterator1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>::cast_into(
                    o,
                )
                .as_raw_ptr(),
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab* QList<QTextOption::Tab>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<crate::q_text_option::Tab> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__(
                self as *const crate::q_list_of_tab::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator& QList<QTextOption::Tab>::const_iterator::operator=(const QList<QTextOption::Tab>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_tab::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator_6(self as *mut crate::q_list_of_tab::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator& QList<QTextOption::Tab>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_tab::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__8(
                    self as *mut crate::q_list_of_tab::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__9(
                    self as *mut crate::q_list_of_tab::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator& QList<QTextOption::Tab>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_tab::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__6(
                    self as *mut crate::q_list_of_tab::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__7(
                    self as *mut crate::q_list_of_tab::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__1(
                    self as *const crate::q_list_of_tab::ConstIterator,
                    j,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator_(
                    self as *const crate::q_list_of_tab::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextOption::Tab>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextOption::Tab>::const_iterator::const_iterator(const QList<QTextOption::Tab>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextOption::Tab>::const_iterator::const_iterator(const QList<QTextOption::Tab>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab* QList<QTextOption::Tab>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<crate::q_text_option::Tab> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__(
                    self as *const crate::q_list_of_tab::ConstIterator,
                );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_tab::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_text_option::Tab>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QList<QTextOption::Tab>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_(
                self as *const crate::q_list_of_tab::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator==(const QList<QTextOption::Tab>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_tab::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__2(
                    self as *const crate::q_list_of_tab::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator<(const QList<QTextOption::Tab>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_1(
                self as *const crate::q_list_of_tab::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator<=(const QList<QTextOption::Tab>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__4(
                self as *const crate::q_list_of_tab::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator>(const QList<QTextOption::Tab>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_2(
                self as *const crate::q_list_of_tab::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator>=(const QList<QTextOption::Tab>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__5(
                self as *const crate::q_list_of_tab::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator==(const QList<QTextOption::Tab>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__6(
                    self as *const crate::q_list_of_tab::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator<(const QList<QTextOption::Tab>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_3(
                self as *const crate::q_list_of_tab::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator<=(const QList<QTextOption::Tab>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__8(
                self as *const crate::q_list_of_tab::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator>(const QList<QTextOption::Tab>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_4(
                self as *const crate::q_list_of_tab::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::iterator::operator>=(const QList<QTextOption::Tab>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__9(
                self as *const crate::q_list_of_tab::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_tab::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_tab::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator& QList<QTextOption::Tab>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_tab::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__10(
                    self as *mut crate::q_list_of_tab::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_tab::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_tab::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator& QList<QTextOption::Tab>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_tab::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__12(
                    self as *mut crate::q_list_of_tab::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_tab::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator& QList<QTextOption::Tab>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__14(
                    self as *mut crate::q_list_of_tab::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_tab::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator& QList<QTextOption::Tab>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator__15(
                    self as *mut crate::q_list_of_tab::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_tab::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_tab::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_5(
                    self as *const crate::q_list_of_tab::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_tab::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_tab::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_6(
                    self as *const crate::q_list_of_tab::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>
        for &crate::q_list_of_tab::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::iterator::operator-(QList<QTextOption::Tab>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(self, j: ::cpp_core::Ref<crate::q_list_of_tab::Iterator>) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_operator_7(
                    self as *const crate::q_list_of_tab::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_tab::ConstIterator {
        type Output = ::cpp_core::Ref<crate::q_text_option::Tab>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator_(
                    self as *const crate::q_list_of_tab::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::const_iterator::operator==(const QList<QTextOption::Tab>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__2(
                    self as *const crate::q_list_of_tab::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::const_iterator::operator<(const QList<QTextOption::Tab>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator_1(
                self as *const crate::q_list_of_tab::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::const_iterator::operator<=(const QList<QTextOption::Tab>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__4(
                self as *const crate::q_list_of_tab::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::const_iterator::operator>(const QList<QTextOption::Tab>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator_2(
                self as *const crate::q_list_of_tab::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for crate::q_list_of_tab::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::const_iterator::operator>=(const QList<QTextOption::Tab>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(&self, other: &::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__5(
                self as *const crate::q_list_of_tab::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_tab::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_tab::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator& QList<QTextOption::Tab>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_tab::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__6(
                    self as *mut crate::q_list_of_tab::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_tab::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_tab::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator& QList<QTextOption::Tab>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_tab::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__8(
                    self as *mut crate::q_list_of_tab::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_tab::ConstIterator {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator& QList<QTextOption::Tab>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__10(
                    self as *mut crate::q_list_of_tab::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_tab::ConstIterator {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator& QList<QTextOption::Tab>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator__11(
                    self as *mut crate::q_list_of_tab::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_tab::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator_3(
                    self as *const crate::q_list_of_tab::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_tab::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator_4(
                    self as *const crate::q_list_of_tab::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>>
        for &crate::q_list_of_tab::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::const_iterator::operator-(QList<QTextOption::Tab>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_tab::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_operator_5(
                    self as *const crate::q_list_of_tab::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_tab::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextOption::Tab>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_iterator_diterator(
                self as *mut crate::q_list_of_tab::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_tab::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextOption::Tab>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_tab::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QTextOption::Tab>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfTab {
    _unused: u8,
}
impl QListOfTab {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::append(const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_tab(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_append(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::append(const QList<QTextOption::Tab>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_tab(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_append1(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTab>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_at(
            self as *const crate::QListOfTab,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QList<QTextOption::Tab>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_back(self as *mut crate::QListOfTab);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_back1(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_begin(
            self as *mut crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_begin1(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_cbegin(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_cend(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_clear(self as *mut crate::QListOfTab)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_constBegin(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(&self) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_constEnd(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_constFirst(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_constLast(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::contains(const QTextOption::Tab& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_contains(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>& QList<QTextOption::Tab>::operator=(const QList<QTextOption::Tab>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTab>>,
    ) -> ::cpp_core::MutRef<crate::QListOfTab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator_(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTab>>::cast_into(l).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::count(const QTextOption::Tab& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_count(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_count1(self as *const crate::QListOfTab)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_detach(self as *mut crate::QListOfTab)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_detachShared(
            self as *mut crate::QListOfTab,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_empty(self as *const crate::QListOfTab)
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_end(self as *mut crate::QListOfTab);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_end1(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::endsWith(const QTextOption::Tab& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_endsWith(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::erase(QList<QTextOption::Tab>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_erase(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>::cast_into(pos)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::erase(QList<QTextOption::Tab>::iterator first, QList<QTextOption::Tab>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_erase1(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>::cast_into(
                first,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>::cast_into(
                last,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QList<QTextOption::Tab>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_first(
            self as *mut crate::QListOfTab,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_first1(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QList<QTextOption::Tab>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_front(
            self as *mut crate::QListOfTab,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_front1(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator__2(
            self as *const crate::QListOfTab,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QList<QTextOption::Tab>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator__3(
            self as *mut crate::QListOfTab,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::indexOf(const QTextOption::Tab& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_indexOf(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::indexOf(const QTextOption::Tab& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_indexOf1(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::insert(int i, const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_tab(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_insert(
            self as *mut crate::QListOfTab,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::insert(QList<QTextOption::Tab>::iterator before, const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_tab(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_insert1(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_tab::Iterator>>::cast_into(
                before,
            )
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_isDetached(
            self as *const crate::QListOfTab,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_isEmpty(self as *const crate::QListOfTab)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::isSharedWith(const QList<QTextOption::Tab>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTab>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_isSharedWith(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTab>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab& QList<QTextOption::Tab>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_option::Tab> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_last(self as *mut crate::QListOfTab);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextOption::Tab& QList<QTextOption::Tab>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_last1(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::lastIndexOf(const QTextOption::Tab& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_lastIndexOf(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::lastIndexOf(const QTextOption::Tab& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_lastIndexOf1(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_length(self as *const crate::QListOfTab)
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab> QList<QTextOption::Tab>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfTab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_mid(
            self as *const crate::QListOfTab,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab> QList<QTextOption::Tab>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfTab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_mid1(
            self as *const crate::QListOfTab,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_move(
            self as *mut crate::QListOfTab,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextOption::Tab>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfTab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextOption::Tab>::QList(const QList<QTextOption::Tab>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfTab>>,
    ) -> ::cpp_core::CppBox<crate::QListOfTab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfTab>>::cast_into(l).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_pop_back(self as *mut crate::QListOfTab)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_pop_front(self as *mut crate::QListOfTab)
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::prepend(const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_prepend(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::push_back(const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_push_back(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::push_front(const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_push_front(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::removeAll(const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_removeAll(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_removeAt(
            self as *mut crate::QListOfTab,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_removeFirst(
            self as *mut crate::QListOfTab,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_removeLast(
            self as *mut crate::QListOfTab,
        )
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::removeOne(const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_removeOne(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::replace(int i, const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_replace(
            self as *mut crate::QListOfTab,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_reserve(
            self as *mut crate::QListOfTab,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_setSharable(
            self as *mut crate::QListOfTab,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_size(self as *const crate::QListOfTab)
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::startsWith(const QTextOption::Tab& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_startsWith(
            self as *const crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::swap(QList<QTextOption::Tab>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfTab>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_swap(
            self as *mut crate::QListOfTab,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfTab>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_swap1(
            self as *mut crate::QListOfTab,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextOption::Tab>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_swapItemsAt(
            self as *mut crate::QListOfTab,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab QList<QTextOption::Tab>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_takeAt(
            self as *mut crate::QListOfTab,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab QList<QTextOption::Tab>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_takeFirst(
            self as *mut crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab QList<QTextOption::Tab>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_takeLast(
            self as *mut crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab QList<QTextOption::Tab>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_value(
            self as *const crate::QListOfTab,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextOption::Tab QList<QTextOption::Tab>::value(int i, const QTextOption::Tab& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_option::Tab>>,
    ) -> ::cpp_core::CppBox<crate::q_text_option::Tab> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_value1(
            self as *const crate::QListOfTab,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_option::Tab>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QTextLength>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQTextLength {
    _unused: u8,
}
impl QVectorOfQTextLength {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::append(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_text_length(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_append(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::append(const QVector<QTextLength>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_text_length(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_append2(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextLength>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength& QVector<QTextLength>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_at(
            self as *const crate::QVectorOfQTextLength,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength& QVector<QTextLength>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_back(
            self as *mut crate::QVectorOfQTextLength,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength& QVector<QTextLength>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_back1(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_capacity(
            self as *const crate::QVectorOfQTextLength,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_clear(
            self as *mut crate::QVectorOfQTextLength,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength* QVector<QTextLength>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_constData(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength& QVector<QTextLength>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_constFirst(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength& QVector<QTextLength>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_constLast(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::contains(const QTextLength& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_contains(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength>& QVector<QTextLength>::operator=(const QVector<QTextLength>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextLength>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator_(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextLength>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::count(const QTextLength& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_count(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_count1(
            self as *const crate::QVectorOfQTextLength,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength* QVector<QTextLength>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_data(
            self as *mut crate::QVectorOfQTextLength,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength* QVector<QTextLength>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_data1(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_detach(
            self as *mut crate::QVectorOfQTextLength,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_empty(
            self as *const crate::QVectorOfQTextLength,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::endsWith(const QTextLength& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_endsWith(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength>& QVector<QTextLength>::fill(const QTextLength& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_fill(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength>& QVector<QTextLength>::fill(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_fill1(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength& QVector<QTextLength>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_first(
            self as *mut crate::QVectorOfQTextLength,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength& QVector<QTextLength>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_first1(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength& QVector<QTextLength>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_front(
            self as *mut crate::QVectorOfQTextLength,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength& QVector<QTextLength>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_front1(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength& QVector<QTextLength>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator__2(
            self as *mut crate::QVectorOfQTextLength,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength& QVector<QTextLength>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator__3(
            self as *const crate::QVectorOfQTextLength,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::indexOf(const QTextLength& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_indexOf(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::indexOf(const QTextLength& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_indexOf1(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::insert(int i, const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_insert(
            self as *mut crate::QVectorOfQTextLength,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::insert(int i, int n, const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_insert1(
            self as *mut crate::QVectorOfQTextLength,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_isDetached(
            self as *const crate::QVectorOfQTextLength,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_isEmpty(
            self as *const crate::QVectorOfQTextLength,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::isSharedWith(const QVector<QTextLength>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextLength>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_isSharedWith(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextLength>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength& QVector<QTextLength>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_last(
            self as *mut crate::QVectorOfQTextLength,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength& QVector<QTextLength>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_last1(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::lastIndexOf(const QTextLength& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_lastIndexOf(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::lastIndexOf(const QTextLength& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_lastIndexOf1(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_length(
            self as *const crate::QVectorOfQTextLength,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength> QVector<QTextLength>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_mid(
            self as *const crate::QVectorOfQTextLength,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength> QVector<QTextLength>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_mid1(
            self as *const crate::QVectorOfQTextLength,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_move(
            self as *mut crate::QVectorOfQTextLength,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextLength>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextLength>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextLength>::QVector(int size, const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextLength>::QVector(const QVector<QTextLength>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextLength>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextLength>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_pop_back(
            self as *mut crate::QVectorOfQTextLength,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_pop_front(
            self as *mut crate::QVectorOfQTextLength,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::prepend(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_prepend(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::push_back(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_push_back(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::push_front(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_push_front(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_remove(
            self as *mut crate::QVectorOfQTextLength,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_remove1(
            self as *mut crate::QVectorOfQTextLength,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::removeAll(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_removeAll(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_removeAt(
            self as *mut crate::QVectorOfQTextLength,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_removeFirst(
            self as *mut crate::QVectorOfQTextLength,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_removeLast(
            self as *mut crate::QVectorOfQTextLength,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::removeOne(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_removeOne(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::replace(int i, const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_replace(
            self as *mut crate::QVectorOfQTextLength,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_reserve(
            self as *mut crate::QVectorOfQTextLength,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_resize(
            self as *mut crate::QVectorOfQTextLength,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_setSharable(
            self as *mut crate::QVectorOfQTextLength,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_shrink_to_fit(
            self as *mut crate::QVectorOfQTextLength,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_size(
            self as *const crate::QVectorOfQTextLength,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_squeeze(
            self as *mut crate::QVectorOfQTextLength,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::startsWith(const QTextLength& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_startsWith(
            self as *const crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLength>::swap(QVector<QTextLength>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQTextLength>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_swap(
            self as *mut crate::QVectorOfQTextLength,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQTextLength>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength QVector<QTextLength>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_takeAt(
            self as *mut crate::QVectorOfQTextLength,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength QVector<QTextLength>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_takeFirst(
            self as *mut crate::QVectorOfQTextLength,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength QVector<QTextLength>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_takeLast(
            self as *mut crate::QVectorOfQTextLength,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength QVector<QTextLength>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_value(
            self as *const crate::QVectorOfQTextLength,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength QVector<QTextLength>::value(int i, const QTextLength& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextLength>>,
    ) -> ::cpp_core::CppBox<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_value1(
            self as *const crate::QVectorOfQTextLength,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextLength>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_writing_system {
    //! C++ type: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator& QList<QFontDatabase::WritingSystem>::iterator::operator=(const QList<QFontDatabase::WritingSystem>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_8(
                    self as *mut crate::q_list_of_writing_system::Iterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator& QList<QFontDatabase::WritingSystem>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__12(self as *mut crate::q_list_of_writing_system::Iterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__13(self as *mut crate::q_list_of_writing_system::Iterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator& QList<QFontDatabase::WritingSystem>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__10(self as *mut crate::q_list_of_writing_system::Iterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__11(self as *mut crate::q_list_of_writing_system::Iterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::q_font_database::WritingSystem> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__1(
                    self as *const crate::q_list_of_writing_system::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(
            &self,
        ) -> ::cpp_core::MutRef<crate::q_font_database::WritingSystem> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_(
                    self as *const crate::q_list_of_writing_system::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QFontDatabase::WritingSystem>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QFontDatabase::WritingSystem>::iterator::iterator(const QList<QFontDatabase::WritingSystem>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem* QList<QFontDatabase::WritingSystem>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(
            &self,
        ) -> ::cpp_core::MutPtr<crate::q_font_database::WritingSystem> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__(
                    self as *const crate::q_list_of_writing_system::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator& QList<QFontDatabase::WritingSystem>::const_iterator::operator=(const QList<QFontDatabase::WritingSystem>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator_6(self as *mut crate::q_list_of_writing_system::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator& QList<QFontDatabase::WritingSystem>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__8(self as *mut crate::q_list_of_writing_system::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__9(self as *mut crate::q_list_of_writing_system::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator& QList<QFontDatabase::WritingSystem>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__6(self as *mut crate::q_list_of_writing_system::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__7(self as *mut crate::q_list_of_writing_system::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__1(self as *const crate::q_list_of_writing_system::ConstIterator, j);
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator_(self as *const crate::q_list_of_writing_system::ConstIterator);
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QFontDatabase::WritingSystem>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator>
        {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QFontDatabase::WritingSystem>::const_iterator::const_iterator(const QList<QFontDatabase::WritingSystem>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QFontDatabase::WritingSystem>::const_iterator::const_iterator(const QList<QFontDatabase::WritingSystem>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem* QList<QFontDatabase::WritingSystem>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(
            &self,
        ) -> ::cpp_core::Ptr<crate::q_font_database::WritingSystem> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__(self as *const crate::q_list_of_writing_system::ConstIterator);
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_writing_system::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_font_database::WritingSystem>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::q_font_database::WritingSystem> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_(
                    self as *const crate::q_list_of_writing_system::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator==(const QList<QFontDatabase::WritingSystem>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__2(
                    self as *const crate::q_list_of_writing_system::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator<(const QList<QFontDatabase::WritingSystem>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_1(
                self as *const crate::q_list_of_writing_system::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator<=(const QList<QFontDatabase::WritingSystem>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__4(
                self as *const crate::q_list_of_writing_system::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator>(const QList<QFontDatabase::WritingSystem>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_2(
                self as *const crate::q_list_of_writing_system::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator>=(const QList<QFontDatabase::WritingSystem>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__5(
                self as *const crate::q_list_of_writing_system::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator==(const QList<QFontDatabase::WritingSystem>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__6(
                    self as *const crate::q_list_of_writing_system::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator<(const QList<QFontDatabase::WritingSystem>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_3(
                self as *const crate::q_list_of_writing_system::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator<=(const QList<QFontDatabase::WritingSystem>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__8(
                self as *const crate::q_list_of_writing_system::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator>(const QList<QFontDatabase::WritingSystem>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_4(
                self as *const crate::q_list_of_writing_system::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::iterator::operator>=(const QList<QFontDatabase::WritingSystem>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__9(
                self as *const crate::q_list_of_writing_system::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_writing_system::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_writing_system::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator& QList<QFontDatabase::WritingSystem>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__10(self as *mut crate::q_list_of_writing_system::Iterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_writing_system::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_writing_system::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator& QList<QFontDatabase::WritingSystem>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__12(self as *mut crate::q_list_of_writing_system::Iterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator& QList<QFontDatabase::WritingSystem>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__14(
                    self as *mut crate::q_list_of_writing_system::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_writing_system::Iterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator& QList<QFontDatabase::WritingSystem>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator__15(
                    self as *mut crate::q_list_of_writing_system::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_writing_system::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_5(
                    self as *const crate::q_list_of_writing_system::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_writing_system::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_6(
                    self as *const crate::q_list_of_writing_system::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>
        for &crate::q_list_of_writing_system::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::iterator::operator-(QList<QFontDatabase::WritingSystem>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_operator_7(
                    self as *const crate::q_list_of_writing_system::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_writing_system::ConstIterator {
        type Output = ::cpp_core::Ref<crate::q_font_database::WritingSystem>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator_(self as *const crate::q_list_of_writing_system::ConstIterator);
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::const_iterator::operator==(const QList<QFontDatabase::WritingSystem>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__2(self as *const crate::q_list_of_writing_system::ConstIterator, o.as_raw_ptr())
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::const_iterator::operator<(const QList<QFontDatabase::WritingSystem>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator_1(
                self as *const crate::q_list_of_writing_system::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::const_iterator::operator<=(const QList<QFontDatabase::WritingSystem>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__4(self as *const crate::q_list_of_writing_system::ConstIterator, other.as_raw_ptr())
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::const_iterator::operator>(const QList<QFontDatabase::WritingSystem>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator_2(
                self as *const crate::q_list_of_writing_system::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for crate::q_list_of_writing_system::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::const_iterator::operator>=(const QList<QFontDatabase::WritingSystem>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__5(self as *const crate::q_list_of_writing_system::ConstIterator, other.as_raw_ptr())
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_writing_system::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_writing_system::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator& QList<QFontDatabase::WritingSystem>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__6(self as *mut crate::q_list_of_writing_system::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_writing_system::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_writing_system::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator& QList<QFontDatabase::WritingSystem>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__8(self as *mut crate::q_list_of_writing_system::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_writing_system::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator& QList<QFontDatabase::WritingSystem>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__10(self as *mut crate::q_list_of_writing_system::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_writing_system::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator& QList<QFontDatabase::WritingSystem>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator__11(self as *mut crate::q_list_of_writing_system::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_writing_system::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator_3(self as *const crate::q_list_of_writing_system::ConstIterator, j)
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_writing_system::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator_4(self as *const crate::q_list_of_writing_system::ConstIterator, j)
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>>
        for &crate::q_list_of_writing_system::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::const_iterator::operator-(QList<QFontDatabase::WritingSystem>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_writing_system::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_operator_5(self as *const crate::q_list_of_writing_system::ConstIterator, j.as_raw_ptr())
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_writing_system::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QFontDatabase::WritingSystem>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_iterator_diterator(
                self as *mut crate::q_list_of_writing_system::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_writing_system::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QFontDatabase::WritingSystem>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_const_iterator_dconst_iterator(self as *mut crate::q_list_of_writing_system::ConstIterator)
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfWritingSystem {
    _unused: u8,
}
impl QListOfWritingSystem {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::append(const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_writing_system(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_append(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::append(const QList<QFontDatabase::WritingSystem>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_writing_system(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfWritingSystem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_append1(
            self as *mut crate::QListOfWritingSystem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfWritingSystem>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_at(
            self as *const crate::QListOfWritingSystem,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_back(
            self as *mut crate::QListOfWritingSystem,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_back1(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_begin(
            self as *mut crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_begin1(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_cbegin(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_cend(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_clear(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_constBegin(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_constEnd(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_constFirst(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_constLast(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::contains(const QFontDatabase::WritingSystem& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_contains(self as *const crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>& QList<QFontDatabase::WritingSystem>::operator=(const QList<QFontDatabase::WritingSystem>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfWritingSystem>>,
    ) -> ::cpp_core::MutRef<crate::QListOfWritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator_(
            self as *mut crate::QListOfWritingSystem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfWritingSystem>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::count(const QFontDatabase::WritingSystem& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_count(self as *const crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_count1(
            self as *const crate::QListOfWritingSystem,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_detach(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_detachShared(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_empty(
            self as *const crate::QListOfWritingSystem,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_end(
            self as *mut crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_end1(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::endsWith(const QFontDatabase::WritingSystem& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_endsWith(self as *const crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::erase(QList<QFontDatabase::WritingSystem>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_erase(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::erase(QList<QFontDatabase::WritingSystem>::iterator first, QList<QFontDatabase::WritingSystem>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_erase1(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_first(
            self as *mut crate::QListOfWritingSystem,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_first1(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_front(
            self as *mut crate::QListOfWritingSystem,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_front1(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator__2(
            self as *const crate::QListOfWritingSystem,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator__3(
            self as *mut crate::QListOfWritingSystem,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::indexOf(const QFontDatabase::WritingSystem& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_indexOf(self as *const crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr(), from)
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::indexOf(const QFontDatabase::WritingSystem& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_indexOf1(self as *const crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::insert(int i, const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_writing_system(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_insert(self as *mut crate::QListOfWritingSystem, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::insert(QList<QFontDatabase::WritingSystem>::iterator before, const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_writing_system(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_insert1(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_writing_system::Iterator>>::cast_into(before).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_isDetached(
            self as *const crate::QListOfWritingSystem,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_isEmpty(
            self as *const crate::QListOfWritingSystem,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::isSharedWith(const QList<QFontDatabase::WritingSystem>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfWritingSystem>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_isSharedWith(
            self as *const crate::QListOfWritingSystem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfWritingSystem>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_last(
            self as *mut crate::QListOfWritingSystem,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QFontDatabase::WritingSystem& QList<QFontDatabase::WritingSystem>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::q_font_database::WritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_last1(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::lastIndexOf(const QFontDatabase::WritingSystem& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_lastIndexOf(self as *const crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr(), from)
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::lastIndexOf(const QFontDatabase::WritingSystem& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_lastIndexOf1(self as *const crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_length(
            self as *const crate::QListOfWritingSystem,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem> QList<QFontDatabase::WritingSystem>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfWritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_mid(
            self as *const crate::QListOfWritingSystem,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem> QList<QFontDatabase::WritingSystem>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfWritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_mid1(
            self as *const crate::QListOfWritingSystem,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_move(
            self as *mut crate::QListOfWritingSystem,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QFontDatabase::WritingSystem>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfWritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QFontDatabase::WritingSystem>::QList(const QList<QFontDatabase::WritingSystem>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfWritingSystem>>,
    ) -> ::cpp_core::CppBox<crate::QListOfWritingSystem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfWritingSystem>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_pop_back(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_pop_front(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::prepend(const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_prepend(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::push_back(const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_push_back(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::push_front(const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_push_front(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::removeAll(const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_removeAll(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_removeAt(
            self as *mut crate::QListOfWritingSystem,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_removeFirst(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_removeLast(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::removeOne(const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_removeOne(self as *mut crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::replace(int i, const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_replace(self as *mut crate::QListOfWritingSystem, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_reserve(
            self as *mut crate::QListOfWritingSystem,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_setSharable(
            self as *mut crate::QListOfWritingSystem,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_size(
            self as *const crate::QListOfWritingSystem,
        )
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::startsWith(const QFontDatabase::WritingSystem& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_startsWith(self as *const crate::QListOfWritingSystem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::swap(QList<QFontDatabase::WritingSystem>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfWritingSystem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_swap(
            self as *mut crate::QListOfWritingSystem,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfWritingSystem>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_swap1(
            self as *mut crate::QListOfWritingSystem,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QFontDatabase::WritingSystem>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_swapItemsAt(
            self as *mut crate::QListOfWritingSystem,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem QList<QFontDatabase::WritingSystem>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> crate::q_font_database::WritingSystem {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_takeAt(
            self as *mut crate::QListOfWritingSystem,
            i,
        )
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem QList<QFontDatabase::WritingSystem>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> crate::q_font_database::WritingSystem {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_takeFirst(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem QList<QFontDatabase::WritingSystem>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> crate::q_font_database::WritingSystem {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_takeLast(
            self as *mut crate::QListOfWritingSystem,
        )
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem QList<QFontDatabase::WritingSystem>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> crate::q_font_database::WritingSystem {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_value(
            self as *const crate::QListOfWritingSystem,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFontDatabase::WritingSystem QList<QFontDatabase::WritingSystem>::value(int i, const QFontDatabase::WritingSystem& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_font_database::WritingSystem>>,
    ) -> crate::q_font_database::WritingSystem {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_value1(self as *const crate::QListOfWritingSystem, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_font_database::WritingSystem>>::cast_into(default_value).as_raw_ptr())
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<quint32>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfU32 {
    _unused: u8,
}
impl QVectorOfU32 {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::append(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_u32(&mut self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_append(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::append(const QVector<quint32>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_u32(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_append2(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(l).as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32& QVector<quint32>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_at(self as *const crate::QVectorOfU32, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32& QVector<quint32>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_back(self as *mut crate::QVectorOfU32);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32& QVector<quint32>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_back1(self as *const crate::QVectorOfU32);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_capacity(self as *const crate::QVectorOfU32)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_clear(self as *mut crate::QVectorOfU32)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32* QVector<quint32>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<u32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_constData(
            self as *const crate::QVectorOfU32,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32& QVector<quint32>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<u32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_constFirst(
            self as *const crate::QVectorOfU32,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32& QVector<quint32>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<u32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_constLast(
            self as *const crate::QVectorOfU32,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::contains(const quint32& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_contains(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32>& QVector<quint32>::operator=(const QVector<quint32>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator_(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(v).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::count(const quint32& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_count(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_count1(self as *const crate::QVectorOfU32)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32* QVector<quint32>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_data(self as *mut crate::QVectorOfU32);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32* QVector<quint32>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_data1(self as *const crate::QVectorOfU32);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_detach(self as *mut crate::QVectorOfU32)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_empty(self as *const crate::QVectorOfU32)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::endsWith(const quint32& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_endsWith(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32>& QVector<quint32>::fill(const quint32& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_fill(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32>& QVector<quint32>::fill(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_fill1(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32& QVector<quint32>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_first(self as *mut crate::QVectorOfU32);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32& QVector<quint32>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_first1(self as *const crate::QVectorOfU32);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32& QVector<quint32>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_front(self as *mut crate::QVectorOfU32);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32& QVector<quint32>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_front1(self as *const crate::QVectorOfU32);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32& QVector<quint32>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&mut self, i: ::std::os::raw::c_int) -> ::cpp_core::MutRef<u32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator__2(
            self as *mut crate::QVectorOfU32,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32& QVector<quint32>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<u32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator__3(
            self as *const crate::QVectorOfU32,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::indexOf(const quint32& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_indexOf(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::indexOf(const quint32& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_indexOf1(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::insert(int i, const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_insert(
            self as *mut crate::QVectorOfU32,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::insert(int i, int n, const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_insert1(
            self as *mut crate::QVectorOfU32,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_isDetached(self as *const crate::QVectorOfU32)
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_isEmpty(self as *const crate::QVectorOfU32)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::isSharedWith(const QVector<quint32>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_isSharedWith(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32& QVector<quint32>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_last(self as *mut crate::QVectorOfU32);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32& QVector<quint32>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_last1(self as *const crate::QVectorOfU32);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::lastIndexOf(const quint32& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_lastIndexOf(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::lastIndexOf(const quint32& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_lastIndexOf1(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_length(self as *const crate::QVectorOfU32)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32> QVector<quint32>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_mid(
            self as *const crate::QVectorOfU32,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32> QVector<quint32>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_mid1(
            self as *const crate::QVectorOfU32,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_move(
            self as *mut crate::QVectorOfU32,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<quint32>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<quint32>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(size: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<quint32>::QVector(int size, const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<quint32>::QVector(const QVector<quint32>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(v).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_pop_back(self as *mut crate::QVectorOfU32)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_pop_front(self as *mut crate::QVectorOfU32)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::prepend(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&mut self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_prepend(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::push_back(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&mut self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_push_back(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::push_front(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&mut self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_push_front(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_remove(self as *mut crate::QVectorOfU32, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_remove1(self as *mut crate::QVectorOfU32, i, n)
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::removeAll(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_removeAll(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_removeAt(self as *mut crate::QVectorOfU32, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_removeFirst(self as *mut crate::QVectorOfU32)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_removeLast(self as *mut crate::QVectorOfU32)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::removeOne(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_removeOne(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::replace(int i, const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_replace(
            self as *mut crate::QVectorOfU32,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_reserve(self as *mut crate::QVectorOfU32, size)
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_resize(self as *mut crate::QVectorOfU32, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_setSharable(
            self as *mut crate::QVectorOfU32,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_shrink_to_fit(self as *mut crate::QVectorOfU32)
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_size(self as *const crate::QVectorOfU32)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_squeeze(self as *mut crate::QVectorOfU32)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::startsWith(const quint32& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_startsWith(
            self as *const crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<quint32>::swap(QVector<quint32>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfU32>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_swap(
            self as *mut crate::QVectorOfU32,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfU32>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32 QVector<quint32>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&mut self, i: ::std::os::raw::c_int) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_takeAt(self as *mut crate::QVectorOfU32, i)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32 QVector<quint32>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_takeFirst(self as *mut crate::QVectorOfU32)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32 QVector<quint32>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_takeLast(self as *mut crate::QVectorOfU32)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32 QVector<quint32>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_value(self as *const crate::QVectorOfU32, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32 QVector<quint32>::value(int i, const quint32& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<u32>>,
    ) -> u32 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_value1(
            self as *const crate::QVectorOfU32,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<u32>>::cast_into(default_value).as_raw_ptr(),
        )
    }
}

pub mod q_list_of_format_range {
    //! C++ type: <span style='color: green;'>```QList<QTextLayout::FormatRange>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator& QList<QTextLayout::FormatRange>::iterator::operator=(const QList<QTextLayout::FormatRange>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_format_range::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_8(self as *mut crate::q_list_of_format_range::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator& QList<QTextLayout::FormatRange>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_format_range::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__12(
                    self as *mut crate::q_list_of_format_range::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__13(
                    self as *mut crate::q_list_of_format_range::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator& QList<QTextLayout::FormatRange>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_format_range::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__10(
                    self as *mut crate::q_list_of_format_range::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__11(
                    self as *mut crate::q_list_of_format_range::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__1(
                    self as *const crate::q_list_of_format_range::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_(
                    self as *const crate::q_list_of_format_range::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextLayout::FormatRange>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextLayout::FormatRange>::iterator::iterator(const QList<QTextLayout::FormatRange>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange* QList<QTextLayout::FormatRange>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<crate::q_text_layout::FormatRange> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__(
                    self as *const crate::q_list_of_format_range::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator& QList<QTextLayout::FormatRange>::const_iterator::operator=(const QList<QTextLayout::FormatRange>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator_6(self as *mut crate::q_list_of_format_range::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator& QList<QTextLayout::FormatRange>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__8(self as *mut crate::q_list_of_format_range::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__9(self as *mut crate::q_list_of_format_range::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator& QList<QTextLayout::FormatRange>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__6(self as *mut crate::q_list_of_format_range::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__7(self as *mut crate::q_list_of_format_range::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__1(self as *const crate::q_list_of_format_range::ConstIterator, j);
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator_(
                    self as *const crate::q_list_of_format_range::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextLayout::FormatRange>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextLayout::FormatRange>::const_iterator::const_iterator(const QList<QTextLayout::FormatRange>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextLayout::FormatRange>::const_iterator::const_iterator(const QList<QTextLayout::FormatRange>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange* QList<QTextLayout::FormatRange>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<crate::q_text_layout::FormatRange> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__(self as *const crate::q_list_of_format_range::ConstIterator);
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_format_range::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_text_layout::FormatRange>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_(
                    self as *const crate::q_list_of_format_range::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator==(const QList<QTextLayout::FormatRange>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_format_range::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__2(
                    self as *const crate::q_list_of_format_range::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator<(const QList<QTextLayout::FormatRange>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_1(
                self as *const crate::q_list_of_format_range::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator<=(const QList<QTextLayout::FormatRange>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__4(
                self as *const crate::q_list_of_format_range::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator>(const QList<QTextLayout::FormatRange>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_2(
                self as *const crate::q_list_of_format_range::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator>=(const QList<QTextLayout::FormatRange>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__5(
                self as *const crate::q_list_of_format_range::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator==(const QList<QTextLayout::FormatRange>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__6(
                    self as *const crate::q_list_of_format_range::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator<(const QList<QTextLayout::FormatRange>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_3(
                self as *const crate::q_list_of_format_range::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator<=(const QList<QTextLayout::FormatRange>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__8(
                self as *const crate::q_list_of_format_range::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator>(const QList<QTextLayout::FormatRange>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_4(
                self as *const crate::q_list_of_format_range::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::iterator::operator>=(const QList<QTextLayout::FormatRange>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__9(
                self as *const crate::q_list_of_format_range::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_format_range::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_format_range::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator& QList<QTextLayout::FormatRange>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_format_range::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__10(
                    self as *mut crate::q_list_of_format_range::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_format_range::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_format_range::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator& QList<QTextLayout::FormatRange>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_format_range::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__12(
                    self as *mut crate::q_list_of_format_range::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_format_range::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator& QList<QTextLayout::FormatRange>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__14(
                    self as *mut crate::q_list_of_format_range::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_format_range::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator& QList<QTextLayout::FormatRange>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator__15(
                    self as *mut crate::q_list_of_format_range::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_format_range::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_5(
                    self as *const crate::q_list_of_format_range::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_format_range::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_6(
                    self as *const crate::q_list_of_format_range::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>
        for &crate::q_list_of_format_range::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::iterator::operator-(QList<QTextLayout::FormatRange>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_format_range::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_operator_7(
                    self as *const crate::q_list_of_format_range::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_format_range::ConstIterator {
        type Output = ::cpp_core::Ref<crate::q_text_layout::FormatRange>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator_(
                    self as *const crate::q_list_of_format_range::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::const_iterator::operator==(const QList<QTextLayout::FormatRange>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__2(self as *const crate::q_list_of_format_range::ConstIterator, o.as_raw_ptr())
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::const_iterator::operator<(const QList<QTextLayout::FormatRange>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator_1(
                self as *const crate::q_list_of_format_range::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::const_iterator::operator<=(const QList<QTextLayout::FormatRange>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__4(
                self as *const crate::q_list_of_format_range::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::const_iterator::operator>(const QList<QTextLayout::FormatRange>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator_2(
                self as *const crate::q_list_of_format_range::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for crate::q_list_of_format_range::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::const_iterator::operator>=(const QList<QTextLayout::FormatRange>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__5(
                self as *const crate::q_list_of_format_range::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_format_range::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_format_range::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator& QList<QTextLayout::FormatRange>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__6(self as *mut crate::q_list_of_format_range::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_format_range::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_format_range::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator& QList<QTextLayout::FormatRange>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__8(self as *mut crate::q_list_of_format_range::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_format_range::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator& QList<QTextLayout::FormatRange>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__10(self as *mut crate::q_list_of_format_range::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_format_range::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator& QList<QTextLayout::FormatRange>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator__11(self as *mut crate::q_list_of_format_range::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_format_range::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator_3(
                    self as *const crate::q_list_of_format_range::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_format_range::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator_4(
                    self as *const crate::q_list_of_format_range::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>>
        for &crate::q_list_of_format_range::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::const_iterator::operator-(QList<QTextLayout::FormatRange>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_format_range::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_operator_5(
                    self as *const crate::q_list_of_format_range::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_format_range::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextLayout::FormatRange>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_iterator_diterator(
                self as *mut crate::q_list_of_format_range::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_format_range::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextLayout::FormatRange>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_const_iterator_dconst_iterator(self as *mut crate::q_list_of_format_range::ConstIterator)
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QTextLayout::FormatRange>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfFormatRange {
    _unused: u8,
}
impl QListOfFormatRange {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::append(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_format_range(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_append(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::append(const QList<QTextLayout::FormatRange>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_format_range(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfFormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_append1(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfFormatRange>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_at(
            self as *const crate::QListOfFormatRange,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_back(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_back1(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_begin(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_begin1(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_cbegin(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_cend(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_clear(
            self as *mut crate::QListOfFormatRange,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_constBegin(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_constEnd(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_constFirst(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_constLast(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::contains(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_contains(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>& QList<QTextLayout::FormatRange>::operator=(const QList<QTextLayout::FormatRange>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfFormatRange>>,
    ) -> ::cpp_core::MutRef<crate::QListOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator_(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfFormatRange>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::count(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_count(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_count1(
            self as *const crate::QListOfFormatRange,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_detach(
            self as *mut crate::QListOfFormatRange,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_detachShared(
            self as *mut crate::QListOfFormatRange,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_empty(
            self as *const crate::QListOfFormatRange,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_end(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_end1(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::endsWith(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_endsWith(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::erase(QList<QTextLayout::FormatRange>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_erase(self as *mut crate::QListOfFormatRange, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::erase(QList<QTextLayout::FormatRange>::iterator first, QList<QTextLayout::FormatRange>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_erase1(self as *mut crate::QListOfFormatRange, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_first(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_first1(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QList<QTextLayout::FormatRange> QList<QTextLayout::FormatRange>::fromVector(const QVector<QTextLayout::FormatRange>& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in <i>vector</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vect;
    ///   vect <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">20.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">30.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">40.0</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">50.0</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> list <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span><span class="operator">::</span>fromVector(vect);
    ///   <span class="comment">// list: [20.0, 30.0, 40.0, 50.0]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#fromSet">fromSet</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#toVector">toVector</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#toList">QVector::toList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_vector(
        vector: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFormatRange>>,
    ) -> ::cpp_core::CppBox<crate::QListOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_fromVector(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFormatRange>>::cast_into(vector)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_front(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_front1(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator__2(
            self as *const crate::QListOfFormatRange,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator__3(
            self as *mut crate::QListOfFormatRange,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::indexOf(const QTextLayout::FormatRange& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_indexOf(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::indexOf(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_indexOf1(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::insert(int i, const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_format_range(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_insert(
            self as *mut crate::QListOfFormatRange,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::insert(QList<QTextLayout::FormatRange>::iterator before, const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_format_range(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_insert1(self as *mut crate::QListOfFormatRange, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_format_range::Iterator>>::cast_into(before).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_isDetached(
            self as *const crate::QListOfFormatRange,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_isEmpty(
            self as *const crate::QListOfFormatRange,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::isSharedWith(const QList<QTextLayout::FormatRange>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfFormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_isSharedWith(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfFormatRange>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_last(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QList<QTextLayout::FormatRange>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_last1(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::lastIndexOf(const QTextLayout::FormatRange& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_lastIndexOf(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::lastIndexOf(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_lastIndexOf1(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_length(
            self as *const crate::QListOfFormatRange,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange> QList<QTextLayout::FormatRange>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_mid(
            self as *const crate::QListOfFormatRange,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange> QList<QTextLayout::FormatRange>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_mid1(
            self as *const crate::QListOfFormatRange,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_move(
            self as *mut crate::QListOfFormatRange,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextLayout::FormatRange>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextLayout::FormatRange>::QList(const QList<QTextLayout::FormatRange>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfFormatRange>>,
    ) -> ::cpp_core::CppBox<crate::QListOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfFormatRange>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_pop_back(
            self as *mut crate::QListOfFormatRange,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_pop_front(
            self as *mut crate::QListOfFormatRange,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::prepend(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_prepend(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::push_back(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_push_back(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::push_front(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_push_front(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::removeAll(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_removeAll(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_removeAt(
            self as *mut crate::QListOfFormatRange,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_removeFirst(
            self as *mut crate::QListOfFormatRange,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_removeLast(
            self as *mut crate::QListOfFormatRange,
        )
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::removeOne(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_removeOne(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::replace(int i, const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_replace(
            self as *mut crate::QListOfFormatRange,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_reserve(
            self as *mut crate::QListOfFormatRange,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_setSharable(
            self as *mut crate::QListOfFormatRange,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_size(
            self as *const crate::QListOfFormatRange,
        )
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::startsWith(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_startsWith(
            self as *const crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::swap(QList<QTextLayout::FormatRange>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfFormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_swap(
            self as *mut crate::QListOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfFormatRange>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_swap1(
            self as *mut crate::QListOfFormatRange,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextLayout::FormatRange>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_swapItemsAt(
            self as *mut crate::QListOfFormatRange,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QList<QTextLayout::FormatRange>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_takeAt(
            self as *mut crate::QListOfFormatRange,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QList<QTextLayout::FormatRange>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_takeFirst(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QList<QTextLayout::FormatRange>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_takeLast(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange> QList<QTextLayout::FormatRange>::toVector() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#toVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Sven"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Kim"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Ola"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vect <span class="operator">=</span> list<span class="operator">.</span>toVector();
    ///   <span class="comment">// vect: ["Sven", "Kim", "Ola"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#toSet">toSet</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">fromVector</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fromList">QVector::fromList</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_vector(&self) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_toVector(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QList<QTextLayout::FormatRange>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_value(
            self as *const crate::QListOfFormatRange,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QList<QTextLayout::FormatRange>::value(int i, const QTextLayout::FormatRange& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_value1(
            self as *const crate::QListOfFormatRange,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QTextLayout::FormatRange>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfFormatRange {
    _unused: u8,
}
impl QVectorOfFormatRange {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::append(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_format_range(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_append(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::append(const QVector<QTextLayout::FormatRange>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_format_range(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_append2(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFormatRange>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_at(
            self as *const crate::QVectorOfFormatRange,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_back(
            self as *mut crate::QVectorOfFormatRange,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_back1(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_capacity(
            self as *const crate::QVectorOfFormatRange,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_clear(
            self as *mut crate::QVectorOfFormatRange,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange* QVector<QTextLayout::FormatRange>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_constData(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_constFirst(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_constLast(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::contains(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_contains(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange>& QVector<QTextLayout::FormatRange>::operator=(const QVector<QTextLayout::FormatRange>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFormatRange>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator_(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFormatRange>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::count(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_count(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_count1(
            self as *const crate::QVectorOfFormatRange,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange* QVector<QTextLayout::FormatRange>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_data(
            self as *mut crate::QVectorOfFormatRange,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange* QVector<QTextLayout::FormatRange>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_data1(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_detach(
            self as *mut crate::QVectorOfFormatRange,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_empty(
            self as *const crate::QVectorOfFormatRange,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::endsWith(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_endsWith(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange>& QVector<QTextLayout::FormatRange>::fill(const QTextLayout::FormatRange& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_fill(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange>& QVector<QTextLayout::FormatRange>::fill(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_fill1(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_first(
            self as *mut crate::QVectorOfFormatRange,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_first1(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in <i>list</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QVector<QTextLayout::FormatRange> QVector<QTextLayout::FormatRange>::fromList(const QList<QTextLayout::FormatRange>& list)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fromList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in <i>list</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Sven"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Kim"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Ola"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vect <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>fromList(list);
    ///   <span class="comment">// vect: ["Sven", "Kim", "Ola"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#toList">toList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#toVector">QList::toVector</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_list(
        list: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfFormatRange>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_fromList(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfFormatRange>>::cast_into(list)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_front(
            self as *mut crate::QVectorOfFormatRange,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_front1(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator__2(
            self as *mut crate::QVectorOfFormatRange,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator__3(
            self as *const crate::QVectorOfFormatRange,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::indexOf(const QTextLayout::FormatRange& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_indexOf(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::indexOf(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_indexOf1(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::insert(int i, const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_insert(
            self as *mut crate::QVectorOfFormatRange,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::insert(int i, int n, const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_insert1(
            self as *mut crate::QVectorOfFormatRange,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_isDetached(
            self as *const crate::QVectorOfFormatRange,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_isEmpty(
            self as *const crate::QVectorOfFormatRange,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::isSharedWith(const QVector<QTextLayout::FormatRange>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_isSharedWith(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFormatRange>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_last(
            self as *mut crate::QVectorOfFormatRange,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange& QVector<QTextLayout::FormatRange>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_last1(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::lastIndexOf(const QTextLayout::FormatRange& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_lastIndexOf(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::lastIndexOf(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_lastIndexOf1(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_length(
            self as *const crate::QVectorOfFormatRange,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange> QVector<QTextLayout::FormatRange>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_mid(
            self as *const crate::QVectorOfFormatRange,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange> QVector<QTextLayout::FormatRange>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_mid1(
            self as *const crate::QVectorOfFormatRange,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_move(
            self as *mut crate::QVectorOfFormatRange,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextLayout::FormatRange>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextLayout::FormatRange>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextLayout::FormatRange>::QVector(int size, const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextLayout::FormatRange>::QVector(const QVector<QTextLayout::FormatRange>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFormatRange>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFormatRange>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_pop_back(
            self as *mut crate::QVectorOfFormatRange,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_pop_front(
            self as *mut crate::QVectorOfFormatRange,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::prepend(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_prepend(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::push_back(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_push_back(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::push_front(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_push_front(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_remove(
            self as *mut crate::QVectorOfFormatRange,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_remove1(
            self as *mut crate::QVectorOfFormatRange,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::removeAll(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_removeAll(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_removeAt(
            self as *mut crate::QVectorOfFormatRange,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_removeFirst(
            self as *mut crate::QVectorOfFormatRange,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_removeLast(
            self as *mut crate::QVectorOfFormatRange,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::removeOne(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_removeOne(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::replace(int i, const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_replace(
            self as *mut crate::QVectorOfFormatRange,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_reserve(
            self as *mut crate::QVectorOfFormatRange,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_resize(
            self as *mut crate::QVectorOfFormatRange,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_setSharable(
            self as *mut crate::QVectorOfFormatRange,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_shrink_to_fit(
            self as *mut crate::QVectorOfFormatRange,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_size(
            self as *const crate::QVectorOfFormatRange,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_squeeze(
            self as *mut crate::QVectorOfFormatRange,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::startsWith(const QTextLayout::FormatRange& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_startsWith(
            self as *const crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextLayout::FormatRange>::swap(QVector<QTextLayout::FormatRange>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfFormatRange>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_swap(
            self as *mut crate::QVectorOfFormatRange,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfFormatRange>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QVector<QTextLayout::FormatRange>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_takeAt(
            self as *mut crate::QVectorOfFormatRange,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QVector<QTextLayout::FormatRange>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_takeFirst(
            self as *mut crate::QVectorOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QVector<QTextLayout::FormatRange>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_takeLast(
            self as *mut crate::QVectorOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange> QVector<QTextLayout::FormatRange>::toList() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#toList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vect;
    ///   vect <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"red"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"green"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"blue"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"black"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> list <span class="operator">=</span> vect<span class="operator">.</span>toList();
    ///   <span class="comment">// list: ["red", "green", "blue", "black"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#fromList">fromList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">QList::fromVector</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_list(&self) -> ::cpp_core::CppBox<crate::QListOfFormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_toList(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QVector<QTextLayout::FormatRange>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_value(
            self as *const crate::QVectorOfFormatRange,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange QVector<QTextLayout::FormatRange>::value(int i, const QTextLayout::FormatRange& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_text_layout::FormatRange>>,
    ) -> ::cpp_core::CppBox<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_value1(
            self as *const crate::QVectorOfFormatRange,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_text_layout::FormatRange>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_q_glyph_run {
    //! C++ type: <span style='color: green;'>```QList<QGlyphRun>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QGlyphRun>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator& QList<QGlyphRun>::iterator::operator=(const QList<QGlyphRun>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_8(self as *mut crate::q_list_of_q_glyph_run::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator& QList<QGlyphRun>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__12(
                self as *mut crate::q_list_of_q_glyph_run::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__13(
                self as *mut crate::q_list_of_q_glyph_run::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator& QList<QGlyphRun>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__10(
                self as *mut crate::q_list_of_q_glyph_run::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__11(
                self as *mut crate::q_list_of_q_glyph_run::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QList<QGlyphRun>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::QGlyphRun> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__1(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QList<QGlyphRun>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QGlyphRun> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QGlyphRun>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QGlyphRun>::iterator::iterator(const QList<QGlyphRun>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QGlyphRun* QList<QGlyphRun>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<crate::QGlyphRun> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QGlyphRun>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator& QList<QGlyphRun>::const_iterator::operator=(const QList<QGlyphRun>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator& QList<QGlyphRun>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator& QList<QGlyphRun>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::QGlyphRun> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__1(
                    self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                    j,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QGlyphRun> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator_(
                self as *const crate::q_list_of_q_glyph_run::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QGlyphRun>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QGlyphRun>::const_iterator::const_iterator(const QList<QGlyphRun>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QGlyphRun>::const_iterator::const_iterator(const QList<QGlyphRun>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_const_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QGlyphRun* QList<QGlyphRun>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<crate::QGlyphRun> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__(
                self as *const crate::q_list_of_q_glyph_run::ConstIterator,
            );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_glyph_run::Iterator {
        type Output = ::cpp_core::MutRef<crate::QGlyphRun>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QList<QGlyphRun>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QGlyphRun> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator==(const QList<QGlyphRun>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__2(
                    self as *const crate::q_list_of_q_glyph_run::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator<(const QList<QGlyphRun>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_1(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator<=(const QList<QGlyphRun>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__4(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator>(const QList<QGlyphRun>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_2(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator>=(const QList<QGlyphRun>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__5(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator==(const QList<QGlyphRun>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__6(
                    self as *const crate::q_list_of_q_glyph_run::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator<(const QList<QGlyphRun>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_3(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator<=(const QList<QGlyphRun>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__8(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator>(const QList<QGlyphRun>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_4(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::iterator::operator>=(const QList<QGlyphRun>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__9(
                self as *const crate::q_list_of_q_glyph_run::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_glyph_run::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator& QList<QGlyphRun>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__10(
                self as *mut crate::q_list_of_q_glyph_run::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_glyph_run::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator& QList<QGlyphRun>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__12(
                self as *mut crate::q_list_of_q_glyph_run::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_glyph_run::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator& QList<QGlyphRun>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__14(
                    self as *mut crate::q_list_of_q_glyph_run::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_glyph_run::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator& QList<QGlyphRun>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator__15(
                    self as *mut crate::q_list_of_q_glyph_run::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_glyph_run::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_5(
                    self as *const crate::q_list_of_q_glyph_run::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_glyph_run::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_6(
                    self as *const crate::q_list_of_q_glyph_run::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>
        for &crate::q_list_of_q_glyph_run::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::iterator::operator-(QList<QGlyphRun>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_operator_7(
                    self as *const crate::q_list_of_q_glyph_run::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_glyph_run::ConstIterator {
        type Output = ::cpp_core::Ref<crate::QGlyphRun>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QGlyphRun> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator_(
                self as *const crate::q_list_of_q_glyph_run::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::const_iterator::operator==(const QList<QGlyphRun>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::const_iterator::operator<(const QList<QGlyphRun>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator_1(
                self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::const_iterator::operator<=(const QList<QGlyphRun>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__4(
                self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::const_iterator::operator>(const QList<QGlyphRun>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator_2(
                self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for crate::q_list_of_q_glyph_run::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::const_iterator::operator>=(const QList<QGlyphRun>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__5(
                self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_glyph_run::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator& QList<QGlyphRun>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_glyph_run::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator& QList<QGlyphRun>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_glyph_run::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator& QList<QGlyphRun>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_glyph_run::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator& QList<QGlyphRun>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_glyph_run::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_glyph_run::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>>
        for &crate::q_list_of_q_glyph_run::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::const_iterator::operator-(QList<QGlyphRun>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_glyph_run::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_glyph_run::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_glyph_run::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QGlyphRun>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_iterator_diterator(
                self as *mut crate::q_list_of_q_glyph_run::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_glyph_run::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QGlyphRun>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_glyph_run::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QGlyphRun>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQGlyphRun {
    _unused: u8,
}
impl QListOfQGlyphRun {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::append(const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_glyph_run(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_append(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::append(const QList<QGlyphRun>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_q_glyph_run(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_append1(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQGlyphRun>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_at(
            self as *const crate::QListOfQGlyphRun,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QList<QGlyphRun>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::QGlyphRun> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_back(self as *mut crate::QListOfQGlyphRun);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_back1(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_begin(
            self as *mut crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_begin1(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_cbegin(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_cend(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_clear(self as *mut crate::QListOfQGlyphRun)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_constBegin(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_constEnd(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_constFirst(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_constLast(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::contains(const QGlyphRun& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_contains(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>& QList<QGlyphRun>::operator=(const QList<QGlyphRun>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQGlyphRun>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator_(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQGlyphRun>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::count(const QGlyphRun& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_count(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_count1(self as *const crate::QListOfQGlyphRun)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_detach(self as *mut crate::QListOfQGlyphRun)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_detachShared(
            self as *mut crate::QListOfQGlyphRun,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_empty(self as *const crate::QListOfQGlyphRun)
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_end(self as *mut crate::QListOfQGlyphRun);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_end1(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::endsWith(const QGlyphRun& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_endsWith(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::erase(QList<QGlyphRun>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_erase(self as *mut crate::QListOfQGlyphRun, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::erase(QList<QGlyphRun>::iterator first, QList<QGlyphRun>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_erase1(self as *mut crate::QListOfQGlyphRun, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QList<QGlyphRun>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_first(
            self as *mut crate::QListOfQGlyphRun,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_first1(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QList<QGlyphRun>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_front(
            self as *mut crate::QListOfQGlyphRun,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_front1(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator__2(
            self as *const crate::QListOfQGlyphRun,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QList<QGlyphRun>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator__3(
            self as *mut crate::QListOfQGlyphRun,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::indexOf(const QGlyphRun& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_indexOf(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::indexOf(const QGlyphRun& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_indexOf1(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::insert(int i, const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_q_glyph_run(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_insert(
            self as *mut crate::QListOfQGlyphRun,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::insert(QList<QGlyphRun>::iterator before, const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_q_glyph_run(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_insert1(self as *mut crate::QListOfQGlyphRun, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_glyph_run::Iterator>>::cast_into(before).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_isDetached(
            self as *const crate::QListOfQGlyphRun,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_isEmpty(self as *const crate::QListOfQGlyphRun)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::isSharedWith(const QList<QGlyphRun>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQGlyphRun>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_isSharedWith(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQGlyphRun>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun& QList<QGlyphRun>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::QGlyphRun> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_last(self as *mut crate::QListOfQGlyphRun);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QGlyphRun& QList<QGlyphRun>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_last1(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::lastIndexOf(const QGlyphRun& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_lastIndexOf(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::lastIndexOf(const QGlyphRun& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_lastIndexOf1(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_length(self as *const crate::QListOfQGlyphRun)
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QList<QGlyphRun>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_mid(
            self as *const crate::QListOfQGlyphRun,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QList<QGlyphRun>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_mid1(
            self as *const crate::QListOfQGlyphRun,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_move(
            self as *mut crate::QListOfQGlyphRun,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QGlyphRun>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QGlyphRun>::QList(const QList<QGlyphRun>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQGlyphRun>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQGlyphRun>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_pop_back(self as *mut crate::QListOfQGlyphRun)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_pop_front(self as *mut crate::QListOfQGlyphRun)
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::prepend(const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_prepend(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::push_back(const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_push_back(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::push_front(const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_push_front(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::removeAll(const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_removeAll(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_removeAt(
            self as *mut crate::QListOfQGlyphRun,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_removeFirst(
            self as *mut crate::QListOfQGlyphRun,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_removeLast(
            self as *mut crate::QListOfQGlyphRun,
        )
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::removeOne(const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_removeOne(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::replace(int i, const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_replace(
            self as *mut crate::QListOfQGlyphRun,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_reserve(
            self as *mut crate::QListOfQGlyphRun,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_setSharable(
            self as *mut crate::QListOfQGlyphRun,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_size(self as *const crate::QListOfQGlyphRun)
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::startsWith(const QGlyphRun& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_startsWith(
            self as *const crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::swap(QList<QGlyphRun>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQGlyphRun>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_swap(
            self as *mut crate::QListOfQGlyphRun,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQGlyphRun>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_swap1(
            self as *mut crate::QListOfQGlyphRun,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QGlyphRun>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_swapItemsAt(
            self as *mut crate::QListOfQGlyphRun,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun QList<QGlyphRun>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_takeAt(
            self as *mut crate::QListOfQGlyphRun,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun QList<QGlyphRun>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_takeFirst(
            self as *mut crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun QList<QGlyphRun>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_takeLast(
            self as *mut crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun QList<QGlyphRun>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_value(
            self as *const crate::QListOfQGlyphRun,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QGlyphRun QList<QGlyphRun>::value(int i, const QGlyphRun& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QGlyphRun>>,
    ) -> ::cpp_core::CppBox<crate::QGlyphRun> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_value1(
            self as *const crate::QListOfQGlyphRun,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QGlyphRun>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QTextFormat>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQTextFormat {
    _unused: u8,
}
impl QVectorOfQTextFormat {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::append(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_text_format(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_append(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::append(const QVector<QTextFormat>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_text_format(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_append2(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextFormat>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat& QVector<QTextFormat>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_at(
            self as *const crate::QVectorOfQTextFormat,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat& QVector<QTextFormat>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_back(
            self as *mut crate::QVectorOfQTextFormat,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat& QVector<QTextFormat>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_back1(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_capacity(
            self as *const crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_clear(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat* QVector<QTextFormat>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_constData(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat& QVector<QTextFormat>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_constFirst(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat& QVector<QTextFormat>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_constLast(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::contains(const QTextFormat& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_contains(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat>& QVector<QTextFormat>::operator=(const QVector<QTextFormat>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextFormat>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator_(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextFormat>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::count(const QTextFormat& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_count(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_count1(
            self as *const crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* QVector<QTextFormat>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_data(
            self as *mut crate::QVectorOfQTextFormat,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat* QVector<QTextFormat>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_data1(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_detach(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_empty(
            self as *const crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::endsWith(const QTextFormat& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_endsWith(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat>& QVector<QTextFormat>::fill(const QTextFormat& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_fill(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat>& QVector<QTextFormat>::fill(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_fill1(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat& QVector<QTextFormat>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_first(
            self as *mut crate::QVectorOfQTextFormat,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat& QVector<QTextFormat>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_first1(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat& QVector<QTextFormat>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_front(
            self as *mut crate::QVectorOfQTextFormat,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat& QVector<QTextFormat>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_front1(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat& QVector<QTextFormat>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator__2(
            self as *mut crate::QVectorOfQTextFormat,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat& QVector<QTextFormat>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator__3(
            self as *const crate::QVectorOfQTextFormat,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::indexOf(const QTextFormat& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_indexOf(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::indexOf(const QTextFormat& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_indexOf1(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::insert(int i, const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_insert(
            self as *mut crate::QVectorOfQTextFormat,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::insert(int i, int n, const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_insert1(
            self as *mut crate::QVectorOfQTextFormat,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_isDetached(
            self as *const crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_isEmpty(
            self as *const crate::QVectorOfQTextFormat,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::isSharedWith(const QVector<QTextFormat>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextFormat>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_isSharedWith(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextFormat>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat& QVector<QTextFormat>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_last(
            self as *mut crate::QVectorOfQTextFormat,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat& QVector<QTextFormat>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_last1(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::lastIndexOf(const QTextFormat& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_lastIndexOf(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::lastIndexOf(const QTextFormat& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_lastIndexOf1(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_length(
            self as *const crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat> QVector<QTextFormat>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_mid(
            self as *const crate::QVectorOfQTextFormat,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat> QVector<QTextFormat>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_mid1(
            self as *const crate::QVectorOfQTextFormat,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_move(
            self as *mut crate::QVectorOfQTextFormat,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextFormat>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextFormat>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextFormat>::QVector(int size, const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QTextFormat>::QVector(const QVector<QTextFormat>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTextFormat>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTextFormat>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_pop_back(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_pop_front(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::prepend(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_prepend(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::push_back(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_push_back(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::push_front(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_push_front(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_remove(
            self as *mut crate::QVectorOfQTextFormat,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_remove1(
            self as *mut crate::QVectorOfQTextFormat,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::removeAll(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_removeAll(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_removeAt(
            self as *mut crate::QVectorOfQTextFormat,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_removeFirst(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_removeLast(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::removeOne(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_removeOne(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::replace(int i, const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_replace(
            self as *mut crate::QVectorOfQTextFormat,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_reserve(
            self as *mut crate::QVectorOfQTextFormat,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_resize(
            self as *mut crate::QVectorOfQTextFormat,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_setSharable(
            self as *mut crate::QVectorOfQTextFormat,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_shrink_to_fit(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_size(
            self as *const crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_squeeze(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::startsWith(const QTextFormat& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_startsWith(
            self as *const crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QTextFormat>::swap(QVector<QTextFormat>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQTextFormat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_swap(
            self as *mut crate::QVectorOfQTextFormat,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQTextFormat>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat QVector<QTextFormat>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_takeAt(
            self as *mut crate::QVectorOfQTextFormat,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat QVector<QTextFormat>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_takeFirst(
            self as *mut crate::QVectorOfQTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat QVector<QTextFormat>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_takeLast(
            self as *mut crate::QVectorOfQTextFormat,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat QVector<QTextFormat>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_value(
            self as *const crate::QVectorOfQTextFormat,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat QVector<QTextFormat>::value(int i, const QTextFormat& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextFormat>>,
    ) -> ::cpp_core::CppBox<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_value1(
            self as *const crate::QVectorOfQTextFormat,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextFormat>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
///
/// C++ class: <span style='color: green;'>```QPair<int, int>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
///
/// </pre>
/// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
/// <pre class="cpp">
///
///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
/// <pre class="cpp">
///
///   <span class="keyword">struct</span> Variable {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
/// &#32;     <span class="type">double</span> value;
///   };
///   Variable v;
///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
#[repr(C)]
pub struct QPairOfIntInt {
    _unused: u8,
}
impl QPairOfIntInt {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<int, int>& QPair<int, int>::operator=(const QPair<int, int>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfIntInt>>,
    ) -> ::cpp_core::MutRef<crate::QPairOfIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_int_int_operator_(
            self as *mut crate::QPairOfIntInt,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfIntInt>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<int, int>::QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPairOfIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_int_int_QPair();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pair and initializes the <code>first</code> element with <i>value1</i> and the <code>second</code> element with <i>value2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<int, int>::QPair(const int& t1, const int& t2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pair and initializes the <code>first</code> element with <i>value1</i> and the <code>second</code> element with <i>value2</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">qMakePair</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        t1: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_int>>,
        t2: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_int>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_int_int_QPair1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_int>>::cast_into(t1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_int>>::cast_into(t2)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<int, int>::QPair(const QPair<int, int>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfIntInt>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_int_int_QPair2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfIntInt>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this pair with <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPair<int, int>::swap(QPair<int, int>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this pair with <i>other</i>.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>first<span class="operator">,</span> other<span class="operator">.</span>first);
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>second<span class="operator">,</span> other<span class="operator">.</span>second);
    ///
    /// </pre>
    /// <p>Swap overloads are found in namespace <code>std</code> as well as via argument-dependent lookup (ADL) in the namespace of <code>T</code> .</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPairOfIntInt>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_int_int_swap(
            self as *mut crate::QPairOfIntInt,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPairOfIntInt>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
///
/// C++ class: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
///
/// </pre>
/// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
/// <pre class="cpp">
///
///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
/// <pre class="cpp">
///
///   <span class="keyword">struct</span> Variable {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
/// &#32;     <span class="type">double</span> value;
///   };
///   Variable v;
///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
#[repr(C)]
pub struct QPairOfQAccessibleInterfaceQFlagsRelationFlag {
    _unused: u8,
}
impl QPairOfQAccessibleInterfaceQFlagsRelationFlag {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>::operator=(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::cpp_core::MutRef<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator_(self as *mut crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(other).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>::QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>
    {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_QPair();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>::QPair(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::cpp_core::CppBox<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_QPair2(::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(other).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this pair with <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>::swap(QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this pair with <i>other</i>.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>first<span class="operator">,</span> other<span class="operator">.</span>first);
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>second<span class="operator">,</span> other<span class="operator">.</span>second);
    ///
    /// </pre>
    /// <p>Swap overloads are found in namespace <code>std</code> as well as via argument-dependent lookup (ADL) in the namespace of <code>T</code> .</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<
            ::cpp_core::MutRef<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_swap(self as *mut crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(other).as_mut_raw_ptr())
    }
}

pub mod q_list_of_q_accessible_interface {
    //! C++ type: <span style='color: green;'>```QList<QAccessibleInterface*>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator& QList<QAccessibleInterface*>::iterator::operator=(const QList<QAccessibleInterface*>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_8(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator& QList<QAccessibleInterface*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__13(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator& QList<QAccessibleInterface*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__11(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface*& QList<QAccessibleInterface*>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<*mut crate::QAccessibleInterface> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__1(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface*& QList<QAccessibleInterface*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QAccessibleInterface> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QAccessibleInterface*>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator>
        {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QAccessibleInterface*>::iterator::iterator(const QList<QAccessibleInterface*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface** QList<QAccessibleInterface*>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<*mut crate::QAccessibleInterface> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator& QList<QAccessibleInterface*>::const_iterator::operator=(const QList<QAccessibleInterface*>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator_6(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator& QList<QAccessibleInterface*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__8(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__9(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator& QList<QAccessibleInterface*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__6(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__7(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator, arg1);
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QAccessibleInterface*>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a(
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QAccessibleInterface*>::const_iterator::const_iterator(const QList<QAccessibleInterface*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QAccessibleInterface*>::const_iterator::const_iterator(const QList<QAccessibleInterface*>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_accessible_interface::Iterator {
        type Output = ::cpp_core::MutRef<*mut crate::QAccessibleInterface>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface*& QList<QAccessibleInterface*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QAccessibleInterface> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator==(const QList<QAccessibleInterface*>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(
            &self,
            o: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        ) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__2(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator<(const QList<QAccessibleInterface*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_1(
                self as *const crate::q_list_of_q_accessible_interface::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator<=(const QList<QAccessibleInterface*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__4(
                self as *const crate::q_list_of_q_accessible_interface::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator>(const QList<QAccessibleInterface*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_2(
                self as *const crate::q_list_of_q_accessible_interface::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator>=(const QList<QAccessibleInterface*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__5(
                self as *const crate::q_list_of_q_accessible_interface::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::std::cmp::PartialEq<
            ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        > for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator==(const QList<QAccessibleInterface*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(
            &self,
            o: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__6(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl
        ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator<(const QList<QAccessibleInterface*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_3(
                self as *const crate::q_list_of_q_accessible_interface::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator<=(const QList<QAccessibleInterface*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__8(
                self as *const crate::q_list_of_q_accessible_interface::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator>(const QList<QAccessibleInterface*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_4(
                self as *const crate::q_list_of_q_accessible_interface::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::iterator::operator>=(const QList<QAccessibleInterface*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__9(
                self as *const crate::q_list_of_q_accessible_interface::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_accessible_interface::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator& QList<QAccessibleInterface*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_accessible_interface::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator& QList<QAccessibleInterface*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator& QList<QAccessibleInterface*>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__14(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_accessible_interface::Iterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator& QList<QAccessibleInterface*>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator__15(
                    self as *mut crate::q_list_of_q_accessible_interface::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_accessible_interface::Iterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_5(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_accessible_interface::Iterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_6(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>>
        for &crate::q_list_of_q_accessible_interface::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QAccessibleInterface*>::iterator::operator-(QList<QAccessibleInterface*>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_operator_7(
                    self as *const crate::q_list_of_q_accessible_interface::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl
        ::std::cmp::PartialEq<
            ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        > for crate::q_list_of_q_accessible_interface::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::const_iterator::operator==(const QList<QAccessibleInterface*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(
            &self,
            o: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__2(self as *const crate::q_list_of_q_accessible_interface::ConstIterator, o.as_raw_ptr())
            }
        }
    }

    impl
        ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for crate::q_list_of_q_accessible_interface::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::const_iterator::operator<(const QList<QAccessibleInterface*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator_1(
                self as *const crate::q_list_of_q_accessible_interface::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for crate::q_list_of_q_accessible_interface::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::const_iterator::operator<=(const QList<QAccessibleInterface*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__4(
                self as *const crate::q_list_of_q_accessible_interface::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for crate::q_list_of_q_accessible_interface::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::const_iterator::operator>(const QList<QAccessibleInterface*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator_2(
                self as *const crate::q_list_of_q_accessible_interface::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for crate::q_list_of_q_accessible_interface::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::const_iterator::operator>=(const QList<QAccessibleInterface*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__5(
                self as *const crate::q_list_of_q_accessible_interface::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_accessible_interface::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator& QList<QAccessibleInterface*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__6(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_accessible_interface::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator& QList<QAccessibleInterface*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__8(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator);
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_accessible_interface::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator& QList<QAccessibleInterface*>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__10(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_accessible_interface::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator& QList<QAccessibleInterface*>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator__11(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator, j)
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_accessible_interface::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator_3(self as *const crate::q_list_of_q_accessible_interface::ConstIterator, j)
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_accessible_interface::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator_4(self as *const crate::q_list_of_q_accessible_interface::ConstIterator, j)
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>>
        for &crate::q_list_of_q_accessible_interface::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QAccessibleInterface*>::const_iterator::operator-(QList<QAccessibleInterface*>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_operator_5(self as *const crate::q_list_of_q_accessible_interface::ConstIterator, j.as_raw_ptr())
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_accessible_interface::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QAccessibleInterface*>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_iterator_diterator(
                self as *mut crate::q_list_of_q_accessible_interface::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_accessible_interface::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QAccessibleInterface*>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_const_iterator_dconst_iterator(self as *mut crate::q_list_of_q_accessible_interface::ConstIterator)
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QAccessibleInterface*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQAccessibleInterface {
    _unused: u8,
}
impl QListOfQAccessibleInterface {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::append(const QList<QAccessibleInterface*>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_append1(
            self as *mut crate::QListOfQAccessibleInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface*& QList<QAccessibleInterface*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&mut self) -> ::cpp_core::MutRef<*mut crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_back(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_begin(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_begin1(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_cbegin(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_cend(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_clear(
            self as *mut crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_constBegin(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_constEnd(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>& QList<QAccessibleInterface*>::operator=(const QList<QAccessibleInterface*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_operator_(
            self as *mut crate::QListOfQAccessibleInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>::cast_into(
                l,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QAccessibleInterface*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_count1(
            self as *const crate::QListOfQAccessibleInterface,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_detach(
            self as *mut crate::QListOfQAccessibleInterface,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_detachShared(
            self as *mut crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_empty(
            self as *const crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_end(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_end1(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::erase(QList<QAccessibleInterface*>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        >,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_erase(
            self as *mut crate::QListOfQAccessibleInterface,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
            >::cast_into(pos)
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::erase(QList<QAccessibleInterface*>::iterator first, QList<QAccessibleInterface*>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        >,
        last: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
        >,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_erase1(
            self as *mut crate::QListOfQAccessibleInterface,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
            >::cast_into(first)
            .as_raw_ptr(),
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_list_of_q_accessible_interface::Iterator>,
            >::cast_into(last)
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface*& QList<QAccessibleInterface*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first(&mut self) -> ::cpp_core::MutRef<*mut crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_first(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface*& QList<QAccessibleInterface*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&mut self) -> ::cpp_core::MutRef<*mut crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_front(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface*& QList<QAccessibleInterface*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<*mut crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_operator__3(
            self as *mut crate::QListOfQAccessibleInterface,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_isDetached(
            self as *const crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_isEmpty(
            self as *const crate::QListOfQAccessibleInterface,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::isSharedWith(const QList<QAccessibleInterface*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_isSharedWith(
            self as *const crate::QListOfQAccessibleInterface,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface*& QList<QAccessibleInterface*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last(&mut self) -> ::cpp_core::MutRef<*mut crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_last(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QAccessibleInterface*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_length(
            self as *const crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*> QList<QAccessibleInterface*>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_mid(
            self as *const crate::QListOfQAccessibleInterface,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*> QList<QAccessibleInterface*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_mid1(
            self as *const crate::QListOfQAccessibleInterface,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_move(
            self as *mut crate::QListOfQAccessibleInterface,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QAccessibleInterface*>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QAccessibleInterface*>::QList(const QList<QAccessibleInterface*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>::cast_into(
                l,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_pop_back(
            self as *mut crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_pop_front(
            self as *mut crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_removeAt(
            self as *mut crate::QListOfQAccessibleInterface,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_removeFirst(
            self as *mut crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_removeLast(
            self as *mut crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_reserve(
            self as *mut crate::QListOfQAccessibleInterface,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_setSharable(
            self as *mut crate::QListOfQAccessibleInterface,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QAccessibleInterface*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_size(
            self as *const crate::QListOfQAccessibleInterface,
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::swap(QList<QAccessibleInterface*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQAccessibleInterface>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_swap(self as *mut crate::QListOfQAccessibleInterface, ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQAccessibleInterface>>::cast_into(other).as_mut_raw_ptr())
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_swap1(
            self as *mut crate::QListOfQAccessibleInterface,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QAccessibleInterface*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_swapItemsAt(
            self as *mut crate::QListOfQAccessibleInterface,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface* QList<QAccessibleInterface*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_takeAt(
            self as *mut crate::QListOfQAccessibleInterface,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface* QList<QAccessibleInterface*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_takeFirst(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface* QList<QAccessibleInterface*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_takeLast(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface* QList<QAccessibleInterface*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_value(
            self as *const crate::QListOfQAccessibleInterface,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

pub mod q_list_of_q_window {
    //! C++ type: <span style='color: green;'>```QList<QWindow*>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QWindow*>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator& QList<QWindow*>::iterator::operator=(const QList<QWindow*>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_8(self as *mut crate::q_list_of_q_window::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator& QList<QWindow*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__12(
                self as *mut crate::q_list_of_q_window::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__13(
                self as *mut crate::q_list_of_q_window::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator& QList<QWindow*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__10(
                self as *mut crate::q_list_of_q_window::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__11(
                self as *mut crate::q_list_of_q_window::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QWindow*& QList<QWindow*>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<*mut crate::QWindow> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__1(
                self as *const crate::q_list_of_q_window::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QWindow*& QList<QWindow*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QWindow> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_(
                self as *const crate::q_list_of_q_window::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QWindow*>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QWindow*>::iterator::iterator(const QList<QWindow*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QWindow** QList<QWindow*>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<*mut crate::QWindow> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__(
                self as *const crate::q_list_of_q_window::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QWindow*>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator& QList<QWindow*>::const_iterator::operator=(const QList<QWindow*>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator_6(self as *mut crate::q_list_of_q_window::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator& QList<QWindow*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_window::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_window::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator& QList<QWindow*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_window::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_window::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QWindow*>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QWindow*>::const_iterator::const_iterator(const QList<QWindow*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QWindow*>::const_iterator::const_iterator(const QList<QWindow*>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_window::Iterator {
        type Output = ::cpp_core::MutRef<*mut crate::QWindow>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QWindow*& QList<QWindow*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QWindow> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_(
                self as *const crate::q_list_of_q_window::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator==(const QList<QWindow*>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_window::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__2(
                    self as *const crate::q_list_of_q_window::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator<(const QList<QWindow*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(&self, other: &::cpp_core::Ref<crate::q_list_of_q_window::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_1(
                self as *const crate::q_list_of_q_window::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator<=(const QList<QWindow*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(&self, other: &::cpp_core::Ref<crate::q_list_of_q_window::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__4(
                self as *const crate::q_list_of_q_window::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator>(const QList<QWindow*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(&self, other: &::cpp_core::Ref<crate::q_list_of_q_window::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_2(
                self as *const crate::q_list_of_q_window::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator>=(const QList<QWindow*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(&self, other: &::cpp_core::Ref<crate::q_list_of_q_window::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__5(
                self as *const crate::q_list_of_q_window::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator==(const QList<QWindow*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__6(
                    self as *const crate::q_list_of_q_window::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator<(const QList<QWindow*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_3(
                self as *const crate::q_list_of_q_window::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator<=(const QList<QWindow*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__8(
                self as *const crate::q_list_of_q_window::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator>(const QList<QWindow*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_4(
                self as *const crate::q_list_of_q_window::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::iterator::operator>=(const QList<QWindow*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__9(
                self as *const crate::q_list_of_q_window::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_window::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_window::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator& QList<QWindow*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__10(
                self as *mut crate::q_list_of_q_window::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_window::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_window::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator& QList<QWindow*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_window::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__12(
                self as *mut crate::q_list_of_q_window::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_window::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator& QList<QWindow*>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__14(
                    self as *mut crate::q_list_of_q_window::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_window::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator& QList<QWindow*>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator__15(
                    self as *mut crate::q_list_of_q_window::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_window::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_5(
                    self as *const crate::q_list_of_q_window::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_window::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_6(
                    self as *const crate::q_list_of_q_window::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>
        for &crate::q_list_of_q_window::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QWindow*>::iterator::operator-(QList<QWindow*>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_window::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_operator_7(
                    self as *const crate::q_list_of_q_window::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::const_iterator::operator==(const QList<QWindow*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_window::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::const_iterator::operator<(const QList<QWindow*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator_1(
                self as *const crate::q_list_of_q_window::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::const_iterator::operator<=(const QList<QWindow*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__4(
                self as *const crate::q_list_of_q_window::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::const_iterator::operator>(const QList<QWindow*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator_2(
                self as *const crate::q_list_of_q_window::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for crate::q_list_of_q_window::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::const_iterator::operator>=(const QList<QWindow*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__5(
                self as *const crate::q_list_of_q_window::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_window::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_window::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator& QList<QWindow*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_window::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_window::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_window::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator& QList<QWindow*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_window::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_window::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator& QList<QWindow*>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_window::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_window::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator& QList<QWindow*>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_window::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_window::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_window::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_window::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_window::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>>
        for &crate::q_list_of_q_window::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QWindow*>::const_iterator::operator-(QList<QWindow*>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_window::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_window::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_window::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QWindow*>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_iterator_diterator(
                self as *mut crate::q_list_of_q_window::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_window::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QWindow*>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_window::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QWindow*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQWindow {
    _unused: u8,
}
impl QListOfQWindow {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::append(const QList<QWindow*>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQWindow>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_append1(
            self as *mut crate::QListOfQWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQWindow>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow*& QList<QWindow*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&mut self) -> ::cpp_core::MutRef<*mut crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_back(self as *mut crate::QListOfQWindow);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_begin(
            self as *mut crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_begin1(
            self as *const crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_cbegin(
            self as *const crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_cend(
            self as *const crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_clear(self as *mut crate::QListOfQWindow)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_constBegin(
            self as *const crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_constEnd(
            self as *const crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>& QList<QWindow*>::operator=(const QList<QWindow*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQWindow>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_operator_(
            self as *mut crate::QListOfQWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQWindow>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QWindow*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_count1(self as *const crate::QListOfQWindow)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_detach(self as *mut crate::QListOfQWindow)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_detachShared(
            self as *mut crate::QListOfQWindow,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_empty(self as *const crate::QListOfQWindow)
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_end(self as *mut crate::QListOfQWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_end1(
            self as *const crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::erase(QList<QWindow*>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_erase(self as *mut crate::QListOfQWindow, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::erase(QList<QWindow*>::iterator first, QList<QWindow*>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_erase1(self as *mut crate::QListOfQWindow, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_window::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow*& QList<QWindow*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first(&mut self) -> ::cpp_core::MutRef<*mut crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_first(
            self as *mut crate::QListOfQWindow,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow*& QList<QWindow*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&mut self) -> ::cpp_core::MutRef<*mut crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_front(
            self as *mut crate::QListOfQWindow,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow*& QList<QWindow*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<*mut crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_operator__3(
            self as *mut crate::QListOfQWindow,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_isDetached(
            self as *const crate::QListOfQWindow,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_isEmpty(self as *const crate::QListOfQWindow)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::isSharedWith(const QList<QWindow*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQWindow>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_isSharedWith(
            self as *const crate::QListOfQWindow,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQWindow>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow*& QList<QWindow*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last(&mut self) -> ::cpp_core::MutRef<*mut crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_last(self as *mut crate::QListOfQWindow);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QWindow*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_length(self as *const crate::QListOfQWindow)
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*> QList<QWindow*>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_mid(
            self as *const crate::QListOfQWindow,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*> QList<QWindow*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_mid1(
            self as *const crate::QListOfQWindow,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_move(
            self as *mut crate::QListOfQWindow,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QWindow*>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QWindow*>::QList(const QList<QWindow*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQWindow>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQWindow>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_pop_back(self as *mut crate::QListOfQWindow)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_pop_front(self as *mut crate::QListOfQWindow)
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_removeAt(
            self as *mut crate::QListOfQWindow,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_removeFirst(
            self as *mut crate::QListOfQWindow,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_removeLast(
            self as *mut crate::QListOfQWindow,
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_reserve(
            self as *mut crate::QListOfQWindow,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_setSharable(
            self as *mut crate::QListOfQWindow,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QWindow*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_size(self as *const crate::QListOfQWindow)
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::swap(QList<QWindow*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQWindow>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_swap(
            self as *mut crate::QListOfQWindow,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQWindow>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_swap1(
            self as *mut crate::QListOfQWindow,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QWindow*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_swapItemsAt(
            self as *mut crate::QListOfQWindow,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QList<QWindow*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_takeAt(
            self as *mut crate::QListOfQWindow,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QList<QWindow*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_takeFirst(
            self as *mut crate::QListOfQWindow,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QList<QWindow*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_takeLast(
            self as *mut crate::QListOfQWindow,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QWindow* QList<QWindow*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(&self, i: ::std::os::raw::c_int) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_value(
            self as *const crate::QListOfQWindow,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

pub mod q_list_of_q_screen {
    //! C++ type: <span style='color: green;'>```QList<QScreen*>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QScreen*>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator& QList<QScreen*>::iterator::operator=(const QList<QScreen*>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_8(self as *mut crate::q_list_of_q_screen::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator& QList<QScreen*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__12(
                self as *mut crate::q_list_of_q_screen::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__13(
                self as *mut crate::q_list_of_q_screen::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator& QList<QScreen*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__10(
                self as *mut crate::q_list_of_q_screen::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__11(
                self as *mut crate::q_list_of_q_screen::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QScreen*& QList<QScreen*>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<*mut crate::QScreen> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__1(
                self as *const crate::q_list_of_q_screen::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QScreen*& QList<QScreen*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QScreen> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_(
                self as *const crate::q_list_of_q_screen::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QScreen*>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QScreen*>::iterator::iterator(const QList<QScreen*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QScreen** QList<QScreen*>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<*mut crate::QScreen> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__(
                self as *const crate::q_list_of_q_screen::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QScreen*>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator& QList<QScreen*>::const_iterator::operator=(const QList<QScreen*>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator_6(self as *mut crate::q_list_of_q_screen::ConstIterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator& QList<QScreen*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_screen::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_screen::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator& QList<QScreen*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_screen::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_screen::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QScreen*>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QScreen*>::const_iterator::const_iterator(const QList<QScreen*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QScreen*>::const_iterator::const_iterator(const QList<QScreen*>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_screen::Iterator {
        type Output = ::cpp_core::MutRef<*mut crate::QScreen>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QScreen*& QList<QScreen*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QScreen> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_(
                self as *const crate::q_list_of_q_screen::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator==(const QList<QScreen*>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__2(
                    self as *const crate::q_list_of_q_screen::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator<(const QList<QScreen*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(&self, other: &::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_1(
                self as *const crate::q_list_of_q_screen::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator<=(const QList<QScreen*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(&self, other: &::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__4(
                self as *const crate::q_list_of_q_screen::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator>(const QList<QScreen*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(&self, other: &::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_2(
                self as *const crate::q_list_of_q_screen::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator>=(const QList<QScreen*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(&self, other: &::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__5(
                self as *const crate::q_list_of_q_screen::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator==(const QList<QScreen*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__6(
                    self as *const crate::q_list_of_q_screen::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator<(const QList<QScreen*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_3(
                self as *const crate::q_list_of_q_screen::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator<=(const QList<QScreen*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__8(
                self as *const crate::q_list_of_q_screen::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator>(const QList<QScreen*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_4(
                self as *const crate::q_list_of_q_screen::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::iterator::operator>=(const QList<QScreen*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__9(
                self as *const crate::q_list_of_q_screen::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_screen::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_screen::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator& QList<QScreen*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__10(
                self as *mut crate::q_list_of_q_screen::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_screen::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_screen::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator& QList<QScreen*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__12(
                self as *mut crate::q_list_of_q_screen::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_screen::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator& QList<QScreen*>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__14(
                    self as *mut crate::q_list_of_q_screen::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_screen::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator& QList<QScreen*>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator__15(
                    self as *mut crate::q_list_of_q_screen::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_screen::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_5(
                    self as *const crate::q_list_of_q_screen::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_screen::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_6(
                    self as *const crate::q_list_of_q_screen::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>
        for &crate::q_list_of_q_screen::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QScreen*>::iterator::operator-(QList<QScreen*>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_operator_7(
                    self as *const crate::q_list_of_q_screen::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::const_iterator::operator==(const QList<QScreen*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_screen::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::const_iterator::operator<(const QList<QScreen*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator_1(
                self as *const crate::q_list_of_q_screen::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::const_iterator::operator<=(const QList<QScreen*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__4(
                self as *const crate::q_list_of_q_screen::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::const_iterator::operator>(const QList<QScreen*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator_2(
                self as *const crate::q_list_of_q_screen::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for crate::q_list_of_q_screen::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::const_iterator::operator>=(const QList<QScreen*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__5(
                self as *const crate::q_list_of_q_screen::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_screen::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_screen::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator& QList<QScreen*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_screen::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_screen::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_screen::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator& QList<QScreen*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_screen::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_screen::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator& QList<QScreen*>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_screen::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_screen::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator& QList<QScreen*>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_screen::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_screen::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_screen::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_screen::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_screen::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>>
        for &crate::q_list_of_q_screen::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QScreen*>::const_iterator::operator-(QList<QScreen*>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_screen::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_screen::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_screen::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QScreen*>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_iterator_diterator(
                self as *mut crate::q_list_of_q_screen::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_screen::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QScreen*>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_screen::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QScreen*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQScreen {
    _unused: u8,
}
impl QListOfQScreen {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::append(const QList<QScreen*>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQScreen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_append1(
            self as *mut crate::QListOfQScreen,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQScreen>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen*& QList<QScreen*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&mut self) -> ::cpp_core::MutRef<*mut crate::QScreen> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_back(self as *mut crate::QListOfQScreen);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_begin(
            self as *mut crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_begin1(
            self as *const crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_cbegin(
            self as *const crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_cend(
            self as *const crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_clear(self as *mut crate::QListOfQScreen)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_constBegin(
            self as *const crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_constEnd(
            self as *const crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>& QList<QScreen*>::operator=(const QList<QScreen*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQScreen>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_operator_(
            self as *mut crate::QListOfQScreen,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQScreen>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QScreen*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_count1(self as *const crate::QListOfQScreen)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_detach(self as *mut crate::QListOfQScreen)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_detachShared(
            self as *mut crate::QListOfQScreen,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_empty(self as *const crate::QListOfQScreen)
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_end(self as *mut crate::QListOfQScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_end1(
            self as *const crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::erase(QList<QScreen*>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_erase(self as *mut crate::QListOfQScreen, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::erase(QList<QScreen*>::iterator first, QList<QScreen*>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_erase1(self as *mut crate::QListOfQScreen, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_screen::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen*& QList<QScreen*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first(&mut self) -> ::cpp_core::MutRef<*mut crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_first(
            self as *mut crate::QListOfQScreen,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen*& QList<QScreen*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&mut self) -> ::cpp_core::MutRef<*mut crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_front(
            self as *mut crate::QListOfQScreen,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen*& QList<QScreen*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<*mut crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_operator__3(
            self as *mut crate::QListOfQScreen,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_isDetached(
            self as *const crate::QListOfQScreen,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_isEmpty(self as *const crate::QListOfQScreen)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::isSharedWith(const QList<QScreen*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQScreen>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_isSharedWith(
            self as *const crate::QListOfQScreen,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQScreen>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen*& QList<QScreen*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last(&mut self) -> ::cpp_core::MutRef<*mut crate::QScreen> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_last(self as *mut crate::QListOfQScreen);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QScreen*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_length(self as *const crate::QListOfQScreen)
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*> QList<QScreen*>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_mid(
            self as *const crate::QListOfQScreen,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*> QList<QScreen*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_mid1(
            self as *const crate::QListOfQScreen,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_move(
            self as *mut crate::QListOfQScreen,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QScreen*>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QScreen*>::QList(const QList<QScreen*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQScreen>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQScreen>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_pop_back(self as *mut crate::QListOfQScreen)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_pop_front(self as *mut crate::QListOfQScreen)
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_removeAt(
            self as *mut crate::QListOfQScreen,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_removeFirst(
            self as *mut crate::QListOfQScreen,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_removeLast(
            self as *mut crate::QListOfQScreen,
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_reserve(
            self as *mut crate::QListOfQScreen,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_setSharable(
            self as *mut crate::QListOfQScreen,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QScreen*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_size(self as *const crate::QListOfQScreen)
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::swap(QList<QScreen*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQScreen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_swap(
            self as *mut crate::QListOfQScreen,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQScreen>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_swap1(
            self as *mut crate::QListOfQScreen,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QScreen*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_swapItemsAt(
            self as *mut crate::QListOfQScreen,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen* QList<QScreen*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_takeAt(
            self as *mut crate::QListOfQScreen,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen* QList<QScreen*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_takeFirst(
            self as *mut crate::QListOfQScreen,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen* QList<QScreen*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_takeLast(
            self as *mut crate::QListOfQScreen,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QScreen* QList<QScreen*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(&self, i: ::std::os::raw::c_int) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_value(
            self as *const crate::QListOfQScreen,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

pub mod q_list_of_q_opengl_context {
    //! C++ type: <span style='color: green;'>```QList<QOpenGLContext*>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QOpenGLContext*>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator& QList<QOpenGLContext*>::iterator::operator=(const QList<QOpenGLContext*>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_8(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator& QList<QOpenGLContext*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__13(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator& QList<QOpenGLContext*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__11(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLContext*& QList<QOpenGLContext*>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<*mut crate::QOpenGLContext> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__1(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLContext*& QList<QOpenGLContext*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QOpenGLContext> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLContext*>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLContext*>::iterator::iterator(const QList<QOpenGLContext*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLContext** QList<QOpenGLContext*>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<*mut crate::QOpenGLContext> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator& QList<QOpenGLContext*>::const_iterator::operator=(const QList<QOpenGLContext*>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator& QList<QOpenGLContext*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator& QList<QOpenGLContext*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLContext*>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a(
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_const_iterator(
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLContext*>::const_iterator::const_iterator(const QList<QOpenGLContext*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLContext*>::const_iterator::const_iterator(const QList<QOpenGLContext*>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_opengl_context::Iterator {
        type Output = ::cpp_core::MutRef<*mut crate::QOpenGLContext>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLContext*& QList<QOpenGLContext*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QOpenGLContext> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator==(const QList<QOpenGLContext*>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__2(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator<(const QList<QOpenGLContext*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_1(
                self as *const crate::q_list_of_q_opengl_context::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator<=(const QList<QOpenGLContext*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__4(
                self as *const crate::q_list_of_q_opengl_context::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator>(const QList<QOpenGLContext*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_2(
                self as *const crate::q_list_of_q_opengl_context::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator>=(const QList<QOpenGLContext*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__5(
                self as *const crate::q_list_of_q_opengl_context::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator==(const QList<QOpenGLContext*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(
            &self,
            o: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__6(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator<(const QList<QOpenGLContext*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_3(
                self as *const crate::q_list_of_q_opengl_context::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator<=(const QList<QOpenGLContext*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__8(
                self as *const crate::q_list_of_q_opengl_context::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator>(const QList<QOpenGLContext*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_4(
                self as *const crate::q_list_of_q_opengl_context::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::iterator::operator>=(const QList<QOpenGLContext*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__9(
                self as *const crate::q_list_of_q_opengl_context::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_opengl_context::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator& QList<QOpenGLContext*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_opengl_context::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator& QList<QOpenGLContext*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator& QList<QOpenGLContext*>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__14(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_context::Iterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator& QList<QOpenGLContext*>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator__15(
                    self as *mut crate::q_list_of_q_opengl_context::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_opengl_context::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_5(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_opengl_context::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_6(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>
        for &crate::q_list_of_q_opengl_context::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLContext*>::iterator::operator-(QList<QOpenGLContext*>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_operator_7(
                    self as *const crate::q_list_of_q_opengl_context::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::const_iterator::operator==(const QList<QOpenGLContext*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(
            &self,
            o: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_opengl_context::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::const_iterator::operator<(const QList<QOpenGLContext*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator_1(
                self as *const crate::q_list_of_q_opengl_context::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::const_iterator::operator<=(const QList<QOpenGLContext*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__4(
                self as *const crate::q_list_of_q_opengl_context::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::const_iterator::operator>(const QList<QOpenGLContext*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator_2(
                self as *const crate::q_list_of_q_opengl_context::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for crate::q_list_of_q_opengl_context::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::const_iterator::operator>=(const QList<QOpenGLContext*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__5(
                self as *const crate::q_list_of_q_opengl_context::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_opengl_context::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator& QList<QOpenGLContext*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_opengl_context::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator& QList<QOpenGLContext*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_context::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator& QList<QOpenGLContext*>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_context::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator& QList<QOpenGLContext*>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_opengl_context::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_opengl_context::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_opengl_context::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_opengl_context::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>>
        for &crate::q_list_of_q_opengl_context::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLContext*>::const_iterator::operator-(QList<QOpenGLContext*>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_opengl_context::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_opengl_context::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_opengl_context::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLContext*>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_iterator_diterator(
                self as *mut crate::q_list_of_q_opengl_context::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_opengl_context::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLContext*>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_opengl_context::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QOpenGLContext*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQOpenglContext {
    _unused: u8,
}
impl QListOfQOpenglContext {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::append(const QList<QOpenGLContext*>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglContext>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_append1(
            self as *mut crate::QListOfQOpenglContext,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglContext>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext*& QList<QOpenGLContext*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&mut self) -> ::cpp_core::MutRef<*mut crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_back(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_begin(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_begin1(
            self as *const crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_cbegin(
            self as *const crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_cend(
            self as *const crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_clear(
            self as *mut crate::QListOfQOpenglContext,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_constBegin(
            self as *const crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_constEnd(
            self as *const crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>& QList<QOpenGLContext*>::operator=(const QList<QOpenGLContext*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglContext>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQOpenglContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_operator_(
            self as *mut crate::QListOfQOpenglContext,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglContext>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLContext*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_count1(
            self as *const crate::QListOfQOpenglContext,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_detach(
            self as *mut crate::QListOfQOpenglContext,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_detachShared(
            self as *mut crate::QListOfQOpenglContext,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_empty(
            self as *const crate::QListOfQOpenglContext,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_end(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_end1(
            self as *const crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::erase(QList<QOpenGLContext*>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_erase(self as *mut crate::QListOfQOpenglContext, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::erase(QList<QOpenGLContext*>::iterator first, QList<QOpenGLContext*>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_erase1(self as *mut crate::QListOfQOpenglContext, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_context::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext*& QList<QOpenGLContext*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first(&mut self) -> ::cpp_core::MutRef<*mut crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_first(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext*& QList<QOpenGLContext*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&mut self) -> ::cpp_core::MutRef<*mut crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_front(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext*& QList<QOpenGLContext*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<*mut crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_operator__3(
            self as *mut crate::QListOfQOpenglContext,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_isDetached(
            self as *const crate::QListOfQOpenglContext,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_isEmpty(
            self as *const crate::QListOfQOpenglContext,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::isSharedWith(const QList<QOpenGLContext*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglContext>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_isSharedWith(
            self as *const crate::QListOfQOpenglContext,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglContext>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext*& QList<QOpenGLContext*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last(&mut self) -> ::cpp_core::MutRef<*mut crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_last(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLContext*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_length(
            self as *const crate::QListOfQOpenglContext,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*> QList<QOpenGLContext*>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_mid(
            self as *const crate::QListOfQOpenglContext,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*> QList<QOpenGLContext*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_mid1(
            self as *const crate::QListOfQOpenglContext,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_move(
            self as *mut crate::QListOfQOpenglContext,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLContext*>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQOpenglContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLContext*>::QList(const QList<QOpenGLContext*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglContext>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglContext>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_pop_back(
            self as *mut crate::QListOfQOpenglContext,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_pop_front(
            self as *mut crate::QListOfQOpenglContext,
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_removeAt(
            self as *mut crate::QListOfQOpenglContext,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_removeFirst(
            self as *mut crate::QListOfQOpenglContext,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_removeLast(
            self as *mut crate::QListOfQOpenglContext,
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_reserve(
            self as *mut crate::QListOfQOpenglContext,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_setSharable(
            self as *mut crate::QListOfQOpenglContext,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLContext*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_size(
            self as *const crate::QListOfQOpenglContext,
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::swap(QList<QOpenGLContext*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQOpenglContext>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_swap(
            self as *mut crate::QListOfQOpenglContext,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQOpenglContext>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_swap1(
            self as *mut crate::QListOfQOpenglContext,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLContext*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_swapItemsAt(
            self as *mut crate::QListOfQOpenglContext,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* QList<QOpenGLContext*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_takeAt(
            self as *mut crate::QListOfQOpenglContext,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* QList<QOpenGLContext*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_takeFirst(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* QList<QOpenGLContext*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_takeLast(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* QList<QOpenGLContext*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_value(
            self as *const crate::QListOfQOpenglContext,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

pub mod q_set_of_q_byte_array {
    //! C++ type: <span style='color: green;'>```QSet<QByteArray>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QSet<QByteArray>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> and to remove items (using <a href="http://doc.qt.io/qt-5/qset.html#erase">QSet::erase</a>()) while you iterate. (<a href="http://doc.qt.io/qt-5/qset.html">QSet</a> doesn't let you <i>modify</i> a value through an iterator, because that would potentially require moving the value in the internal hash table used by <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.) If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you should use <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a>. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a function like <a href="http://doc.qt.io/qt-5/qset.html#begin">QSet::begin</a>(), <a href="http://doc.qt.io/qt-5/qset.html#end">QSet::end</a>(), or <a href="http://doc.qt.io/qt-5/qset.html#insert">QSet::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a set:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"January"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"February"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"December"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> set<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i;
    ///
    /// </pre>
    /// <p>Here's a loop that removes certain items (all those that start with 'J') from a set while iterating:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"January"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"February"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"December"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i <span class="operator">=</span> set<span class="operator">.</span>begin();
    ///   <span class="keyword">while</span> (i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>end()) {
    /// &#32;     <span class="keyword">if</span> ((<span class="operator">*</span>i)<span class="operator">.</span>startsWith(<span class="char">'J'</span>)) {
    /// &#32;   &#32;     i <span class="operator">=</span> set<span class="operator">.</span>erase(i);
    /// &#32;     } <span class="keyword">else</span> {
    /// &#32;   &#32;     <span class="operator">+</span><span class="operator">+</span>i;
    /// &#32;     }
    ///   }
    ///
    /// </pre>
    /// <p>STL-style iterators can be used as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>. For example, here's how to find an item in the set using the qFind() algorithm:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator it <span class="operator">=</span> <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qFind">qFind</a>(set<span class="operator">.</span>begin()<span class="operator">,</span> set<span class="operator">.</span>end()<span class="operator">,</span> <span class="string">"Jeanette"</span>);
    ///   <span class="keyword">if</span> (it <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>end())
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jeanette"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same set.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>Assigns <i>other</i> to this iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator& QSet<QByteArray>::iterator::operator=(const QSet<QByteArray>::iterator& o)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlinkedlist-iterator.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this iterator.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator_(self as *mut crate::q_set_of_q_byte_array::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator& QSet<QByteArray>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__7(
                self as *mut crate::q_set_of_q_byte_array::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__8(
                self as *mut crate::q_set_of_q_byte_array::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator& QSet<QByteArray>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__5(
                self as *mut crate::q_set_of_q_byte_array::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__6(
                self as *mut crate::q_set_of_q_byte_array::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QByteArray& QSet<QByteArray>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<::qt_core::QByteArray> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator_1(
                self as *const crate::q_set_of_q_byte_array::Iterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QSet<QByteArray>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qset-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#begin">QSet::begin</a>() and <a href="http://doc.qt.io/qt-5/qset.html#end">QSet::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QSet<QByteArray>::iterator::iterator(const QSet<QByteArray>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QByteArray* QSet<QByteArray>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<::qt_core::QByteArray> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__(
                self as *const crate::q_set_of_q_byte_array::Iterator,
            );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QSet<QByteArray>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;Key, T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>. If you want to modify the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> as you iterate over it, you must use <a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a function like <a href="http://doc.qt.io/qt-5/qset.html#begin">QSet::begin</a>(), <a href="http://doc.qt.io/qt-5/qset.html#end">QSet::end</a>(), or <a href="http://doc.qt.io/qt-5/qset.html#insert">QSet::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a set:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"January"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"February"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"December"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> set<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i;
    ///
    /// </pre>
    /// <p>STL-style iterators can be used as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>. For example, here's how to find an item in the set using the qFind() algorithm:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator it <span class="operator">=</span> <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qFind">qFind</a>(set<span class="operator">.</span>begin()<span class="operator">,</span> set<span class="operator">.</span>end()<span class="operator">,</span> <span class="string">"Jeanette"</span>);
    ///   <span class="keyword">if</span> (it <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>constEnd())
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jeanette"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>Assigns <i>other</i> to this.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator& QSet<QByteArray>::const_iterator::operator=(const QSet<QByteArray>::const_iterator& o)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>>,
        ) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator_(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator& QSet<QByteArray>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__5(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__6(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator& QSet<QByteArray>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__3(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__4(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QByteArray& QSet<QByteArray>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<::qt_core::QByteArray> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator_1(
                self as *const crate::q_set_of_q_byte_array::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QSet<QByteArray>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qset-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#begin">QSet::begin</a>() and <a href="http://doc.qt.io/qt-5/qset.html#end">QSet::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QSet<QByteArray>::const_iterator::const_iterator(const QSet<QByteArray>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QSet<QByteArray>::const_iterator::const_iterator(const QSet<QByteArray>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_const_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QByteArray* QSet<QByteArray>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<::qt_core::QByteArray> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__(
                self as *const crate::q_set_of_q_byte_array::ConstIterator,
            );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_set_of_q_byte_array::Iterator {
        type Output = ::cpp_core::Ref<::qt_core::QByteArray>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QByteArray& QSet<QByteArray>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<::qt_core::QByteArray> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator_1(
                self as *const crate::q_set_of_q_byte_array::Iterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>
        for crate::q_set_of_q_byte_array::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::iterator::operator==(const QSet<QByteArray>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__1(
                    self as *const crate::q_set_of_q_byte_array::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>>
        for crate::q_set_of_q_byte_array::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::iterator::operator==(const QSet<QByteArray>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__3(
                    self as *const crate::q_set_of_q_byte_array::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_set_of_q_byte_array::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_set_of_q_byte_array::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator& QSet<QByteArray>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__5(
                self as *mut crate::q_set_of_q_byte_array::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_set_of_q_byte_array::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_set_of_q_byte_array::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator& QSet<QByteArray>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__7(
                self as *mut crate::q_set_of_q_byte_array::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_int> for &crate::q_set_of_q_byte_array::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator>;
        /// <p>Returns an iterator to the item at <i>j</i> positions forward from this iterator. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::iterator::operator+(int j) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an iterator to the item at <i>j</i> positions forward from this iterator. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p>This operation can be slow for large <i>j</i> values.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator_2(
                    self as *const crate::q_set_of_q_byte_array::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_int> for &crate::q_set_of_q_byte_array::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator>;
        /// <p>Returns an iterator to the item at <i>j</i> positions backward from this iterator. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::iterator::operator-(int j) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an iterator to the item at <i>j</i> positions backward from this iterator. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p>This operation can be slow for large <i>j</i> values.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator_3(
                    self as *const crate::q_set_of_q_byte_array::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_int> for crate::q_set_of_q_byte_array::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator& QSet<QByteArray>::iterator::operator+=(int j)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_int) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__9(
                    self as *mut crate::q_set_of_q_byte_array::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_int> for crate::q_set_of_q_byte_array::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator& QSet<QByteArray>::iterator::operator-=(int j)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_int) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_operator__10(
                    self as *mut crate::q_set_of_q_byte_array::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_set_of_q_byte_array::ConstIterator {
        type Output = ::cpp_core::Ref<::qt_core::QByteArray>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QByteArray& QSet<QByteArray>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<::qt_core::QByteArray> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator_1(
                self as *const crate::q_set_of_q_byte_array::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>>
        for crate::q_set_of_q_byte_array::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::const_iterator::operator==(const QSet<QByteArray>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__1(
                    self as *const crate::q_set_of_q_byte_array::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_set_of_q_byte_array::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_set_of_q_byte_array::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator& QSet<QByteArray>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__3(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_set_of_q_byte_array::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_set_of_q_byte_array::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator& QSet<QByteArray>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__5(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_int> for &crate::q_set_of_q_byte_array::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator>;
        /// <p>Returns an iterator to the item at <i>j</i> positions forward from this iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::const_iterator::operator+(int j) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an iterator to the item at <i>j</i> positions forward from this iterator.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>().</p></div>
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator_2(
                    self as *const crate::q_set_of_q_byte_array::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_int> for &crate::q_set_of_q_byte_array::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator>;
        /// <p>Returns an iterator to the item at <i>j</i> positions backward from this iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::const_iterator::operator-(int j) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an iterator to the item at <i>j</i> positions backward from this iterator.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>().</p></div>
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator_3(
                    self as *const crate::q_set_of_q_byte_array::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_int> for crate::q_set_of_q_byte_array::ConstIterator {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator& QSet<QByteArray>::const_iterator::operator+=(int j)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_int) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__7(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_int> for crate::q_set_of_q_byte_array::ConstIterator {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator& QSet<QByteArray>::const_iterator::operator-=(int j)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_int) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_operator__8(
                    self as *mut crate::q_set_of_q_byte_array::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_set_of_q_byte_array::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QSet<QByteArray>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qset-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> and to remove items (using <a href="http://doc.qt.io/qt-5/qset.html#erase">QSet::erase</a>()) while you iterate. (<a href="http://doc.qt.io/qt-5/qset.html">QSet</a> doesn't let you <i>modify</i> a value through an iterator, because that would potentially require moving the value in the internal hash table used by <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.) If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you should use <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a>. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a function like <a href="http://doc.qt.io/qt-5/qset.html#begin">QSet::begin</a>(), <a href="http://doc.qt.io/qt-5/qset.html#end">QSet::end</a>(), or <a href="http://doc.qt.io/qt-5/qset.html#insert">QSet::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a set:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
        ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"January"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"February"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"December"</span>;
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> set<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i;
        ///
        /// </pre>
        /// <p>Here's a loop that removes certain items (all those that start with 'J') from a set while iterating:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
        ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"January"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"February"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"December"</span>;
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i <span class="operator">=</span> set<span class="operator">.</span>begin();
        ///   <span class="keyword">while</span> (i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>end()) {
        /// &#32;     <span class="keyword">if</span> ((<span class="operator">*</span>i)<span class="operator">.</span>startsWith(<span class="char">'J'</span>)) {
        /// &#32;   &#32;     i <span class="operator">=</span> set<span class="operator">.</span>erase(i);
        /// &#32;     } <span class="keyword">else</span> {
        /// &#32;   &#32;     <span class="operator">+</span><span class="operator">+</span>i;
        /// &#32;     }
        ///   }
        ///
        /// </pre>
        /// <p>STL-style iterators can be used as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>. For example, here's how to find an item in the set using the qFind() algorithm:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator it <span class="operator">=</span> <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qFind">qFind</a>(set<span class="operator">.</span>begin()<span class="operator">,</span> set<span class="operator">.</span>end()<span class="operator">,</span> <span class="string">"Jeanette"</span>);
        ///   <span class="keyword">if</span> (it <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>end())
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jeanette"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same set.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_iterator_diterator(
                self as *mut crate::q_set_of_q_byte_array::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_set_of_q_byte_array::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QSet<QByteArray>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;Key, T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>. If you want to modify the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> as you iterate over it, you must use <a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a function like <a href="http://doc.qt.io/qt-5/qset.html#begin">QSet::begin</a>(), <a href="http://doc.qt.io/qt-5/qset.html#end">QSet::end</a>(), or <a href="http://doc.qt.io/qt-5/qset.html#insert">QSet::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a set:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
        ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"January"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"February"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"December"</span>;
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> set<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i;
        ///
        /// </pre>
        /// <p>STL-style iterators can be used as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>. For example, here's how to find an item in the set using the qFind() algorithm:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator it <span class="operator">=</span> <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qFind">qFind</a>(set<span class="operator">.</span>begin()<span class="operator">,</span> set<span class="operator">.</span>end()<span class="operator">,</span> <span class="string">"Jeanette"</span>);
        ///   <span class="keyword">if</span> (it <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>constEnd())
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jeanette"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_const_iterator_dconst_iterator(
                self as *mut crate::q_set_of_q_byte_array::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> class is a template class that provides a hash-table-based set.</p>
///
/// C++ class: <span style='color: green;'>```QSet<QByteArray>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qset.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> class is a template class that provides a hash-table-based set.</p>
/// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores values in an unspecified order and provides very fast lookup of the values. Internally, <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt; is implemented as a <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a>.</p>
/// <p>Here's an example <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> with <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
///
/// </pre>
/// <p>To insert a value into the set, use <a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>():</p>
/// <pre class="cpp">
///
///   set<span class="operator">.</span>insert(<span class="string">"one"</span>);
///   set<span class="operator">.</span>insert(<span class="string">"three"</span>);
///   set<span class="operator">.</span>insert(<span class="string">"seven"</span>);
///
/// </pre>
/// <p>Another way to insert items into the set is to use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"twelve"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"fifteen"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"nineteen"</span>;
///
/// </pre>
/// <p>To test whether an item belongs to the set or not, use <a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (<span class="operator">!</span>set<span class="operator">.</span>contains(<span class="string">"ninety-nine"</span>))
/// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///
/// </pre>
/// <p>If you want to navigate through all the values stored in a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you can use an iterator. <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> supports both <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qsetiterator.html">QSetIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablesetiterator.html">QMutableSetIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> and <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a>). Here's how to iterate over a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt; using a Java-style iterator:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qsetiterator.html">QSetIterator</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> i(set);
///   <span class="keyword">while</span> (i<span class="operator">.</span>hasNext())
/// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> i<span class="operator">.</span>next();
///
/// </pre>
/// <p>Here's the same code, but using an STL-style iterator:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i <span class="operator">=</span> set<span class="operator">.</span>constBegin();
///   <span class="keyword">while</span> (i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>constEnd()) {
/// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i;
/// &#32;     <span class="operator">+</span><span class="operator">+</span>i;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a> is unordered, so an iterator's sequence cannot be assumed to be predictable. If ordering by key is required, use a <a href="http://doc.qt.io/qt-5/qmap.html">QMap</a>.</p>
/// <p>To navigate through a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you can also use <a href="http://doc.qt.io/qt-5/containers.html#foreach">foreach</a>:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>value<span class="operator">,</span> set)
/// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> value;
///
/// </pre>
/// <p>Items can be removed from the set using <a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>(). There is also a <a href="http://doc.qt.io/qt-5/qset.html#clear">clear</a>() function that removes all items.</p>
/// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>'s value data type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. In addition, the type must provide <code>operator==()</code>, and there must also be a global <a href="http://doc.qt.io/qt-5/qhash.html#qHash">qHash</a>() function that returns a hash value for an argument of the key's type. See the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> documentation for a list of types supported by <a href="http://doc.qt.io/qt-5/qhash.html#qHash">qHash</a>().</p>
/// <p>Internally, <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> uses a hash table to perform lookups. The hash table automatically grows and shrinks to provide fast lookups without wasting memory. You can still control the size of the hash table by calling <a href="http://doc.qt.io/qt-5/qset.html#reserve">reserve</a>(), if you already know approximately how many elements the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> will contain, but this isn't necessary to obtain good performance. You can also call <a href="http://doc.qt.io/qt-5/qset.html#capacity">capacity</a>() to retrieve the hash table's size.</p></div>
#[repr(C)]
pub struct QSetOfQByteArray {
    _unused: u8,
}
impl QSetOfQByteArray {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a non-const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_begin(
            self as *mut crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qset.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_begin1(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the number of buckets in the set's internal hash table.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSet<QByteArray>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of buckets in the set's internal hash table.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the set, call <a href="http://doc.qt.io/qt-5/qset.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qset.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_capacity(
            self as *const crate::QSetOfQByteArray,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qset.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(&self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_cbegin(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the set.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qset.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_cend(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all elements from the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSet<QByteArray>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements from the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_clear(self as *mut crate::QSetOfQByteArray)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qset.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_constBegin(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qset.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_constEnd(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const iterator positioned at the item <i>value</i> in the set. If the set contains no item <i>value</i>, the function returns <a href="http://doc.qt.io/qt-5/qset.html#constEnd">constEnd</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::constFind(const QByteArray& value) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#constFind">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const iterator positioned at the item <i>value</i> in the set. If the set contains no item <i>value</i>, the function returns <a href="http://doc.qt.io/qt-5/qset.html#constEnd">constEnd</a>().</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#find">find</a>() and <a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_find(
        &self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_constFind(
            self as *const crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if the set contains item <i>value</i>; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::contains(const QByteArray& value) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the set contains item <i>value</i>; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#find">find</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains_q_byte_array(
        &self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_contains(
            self as *const crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns <code>true</code> if the set contains all items from the <i>other</i> set; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::contains(const QSet<QByteArray>& set) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#contains-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the set contains all items from the <i>other</i> set; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#find">find</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains_q_set_of_q_byte_array(
        &self,
        set: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_contains1(
            self as *const crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(set)
                .as_raw_ptr(),
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> class is a template class that provides a hash-table-based set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator=(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> class is a template class that provides a hash-table-based set.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores values in an unspecified order and provides very fast lookup of the values. Internally, <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt; is implemented as a <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a>.</p>
    /// <p>Here's an example <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> with <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///
    /// </pre>
    /// <p>To insert a value into the set, use <a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>():</p>
    /// <pre class="cpp">
    ///
    ///   set<span class="operator">.</span>insert(<span class="string">"one"</span>);
    ///   set<span class="operator">.</span>insert(<span class="string">"three"</span>);
    ///   set<span class="operator">.</span>insert(<span class="string">"seven"</span>);
    ///
    /// </pre>
    /// <p>Another way to insert items into the set is to use operator&lt;&lt;():</p>
    /// <pre class="cpp">
    ///
    ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"twelve"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"fifteen"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"nineteen"</span>;
    ///
    /// </pre>
    /// <p>To test whether an item belongs to the set or not, use <a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>():</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">if</span> (<span class="operator">!</span>set<span class="operator">.</span>contains(<span class="string">"ninety-nine"</span>))
    /// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre>
    /// <p>If you want to navigate through all the values stored in a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you can use an iterator. <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> supports both <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qsetiterator.html">QSetIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablesetiterator.html">QMutableSetIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> and <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a>). Here's how to iterate over a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt; using a Java-style iterator:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qsetiterator.html">QSetIterator</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> i(set);
    ///   <span class="keyword">while</span> (i<span class="operator">.</span>hasNext())
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> i<span class="operator">.</span>next();
    ///
    /// </pre>
    /// <p>Here's the same code, but using an STL-style iterator:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i <span class="operator">=</span> set<span class="operator">.</span>constBegin();
    ///   <span class="keyword">while</span> (i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>constEnd()) {
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i;
    /// &#32;     <span class="operator">+</span><span class="operator">+</span>i;
    ///   }
    ///
    /// </pre>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a> is unordered, so an iterator's sequence cannot be assumed to be predictable. If ordering by key is required, use a <a href="http://doc.qt.io/qt-5/qmap.html">QMap</a>.</p>
    /// <p>To navigate through a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you can also use <a href="http://doc.qt.io/qt-5/containers.html#foreach">foreach</a>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>value<span class="operator">,</span> set)
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> value;
    ///
    /// </pre>
    /// <p>Items can be removed from the set using <a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>(). There is also a <a href="http://doc.qt.io/qt-5/qset.html#clear">clear</a>() function that removes all items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>'s value data type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. In addition, the type must provide <code>operator==()</code>, and there must also be a global <a href="http://doc.qt.io/qt-5/qhash.html#qHash">qHash</a>() function that returns a hash value for an argument of the key's type. See the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> documentation for a list of types supported by <a href="http://doc.qt.io/qt-5/qhash.html#qHash">qHash</a>().</p>
    /// <p>Internally, <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> uses a hash table to perform lookups. The hash table automatically grows and shrinks to provide fast lookups without wasting memory. You can still control the size of the hash table by calling <a href="http://doc.qt.io/qt-5/qset.html#reserve">reserve</a>(), if you already know approximately how many elements the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> will contain, but this isn't necessary to obtain good performance. You can also call <a href="http://doc.qt.io/qt-5/qset.html#capacity">capacity</a>() to retrieve the hash table's size.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
    ) -> ::cpp_core::MutRef<crate::QSetOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator_4(
            self as *mut crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qset.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSet<QByteArray>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qset.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_count(self as *const crate::QSetOfQByteArray)
    }

    /// Calls C++ function: <span style='color: green;'>```void QSet<QByteArray>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_detach(self as *mut crate::QSetOfQByteArray)
    }

    /// <p>Returns <code>true</code> if the set is empty. This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qset.html#isEmpty">isEmpty</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the set is empty. This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qset.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_empty(self as *const crate::QSetOfQByteArray)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a non-const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the set.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_end(self as *mut crate::QSetOfQByteArray);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the imaginary item after the last item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the imaginary item after the last item in the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#constEnd">constEnd</a>() and <a href="http://doc.qt.io/qt-5/qset.html#begin">begin</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_end1(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::erase(QSet<QByteArray>::iterator i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn erase_iterator(
        &mut self,
        i: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_erase(self as *mut crate::QSetOfQByteArray, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_set_of_q_byte_array::Iterator>>::cast_into(i).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item at the iterator position <i>pos</i> from the set, and returns an iterator positioned at the next item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::erase(QSet<QByteArray>::const_iterator i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at the iterator position <i>pos</i> from the set, and returns an iterator positioned at the next item in the set.</p>
    /// <p>Unlike <a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>(), this function never causes <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> to rehash its internal data structure. This means that it can safely be called while iterating, and won't affect the order of items in the set.</p>
    /// <p>This function was introduced in  Qt 5.7.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qset.html#find">find</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_const_iterator(
        &mut self,
        i: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>>,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_erase1(self as *mut crate::QSetOfQByteArray, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_set_of_q_byte_array::ConstIterator>>::cast_into(i).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::find(const QByteArray& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#find-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a non-const iterator positioned at the item <i>value</i> in the set. If the set contains no item <i>value</i>, the function returns <a href="http://doc.qt.io/qt-5/qset.html#end">end</a>().</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    pub unsafe fn find_mut(
        &mut self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_find(
            self as *mut crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const iterator positioned at the item <i>value</i> in the set. If the set contains no item <i>value</i>, the function returns <a href="http://doc.qt.io/qt-5/qset.html#constEnd">constEnd</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::find(const QByteArray& value) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#find">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const iterator positioned at the item <i>value</i> in the set. If the set contains no item <i>value</i>, the function returns <a href="http://doc.qt.io/qt-5/qset.html#constEnd">constEnd</a>().</p>
    /// <p>This function was introduced in  Qt 4.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#constFind">constFind</a>() and <a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn find(
        &self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_find1(
            self as *const crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> object containing the data contained in <i>list</i>. Since <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> doesn't allow duplicates, the resulting <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> might be smaller than the <i>list</i>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> can contain duplicates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QSet<QByteArray> QSet<QByteArray>::fromList(const QList<QByteArray>& list)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#fromList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> object containing the data contained in <i>list</i>. Since <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> doesn't allow duplicates, the resulting <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> might be smaller than the <i>list</i>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> can contain duplicates.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Julia"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Mike"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Mike"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Julia"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Julia"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>fromList(list);
    ///   set<span class="operator">.</span>contains(<span class="string">"Julia"</span>);  <span class="comment">// returns true</span>
    ///   set<span class="operator">.</span>contains(<span class="string">"Mike"</span>);   <span class="comment">// returns true</span>
    ///   set<span class="operator">.</span>size();             <span class="comment">// returns 2</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#toList">toList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#toSet">QList::toSet</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_list(
        list: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QListOfQByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QSetOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_fromList(
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QListOfQByteArray>>::cast_into(list)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Inserts item <i>value</i> into the set, if <i>value</i> isn't already in the set, and returns an iterator pointing at the inserted item.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::insert(const QByteArray& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts item <i>value</i> into the set, if <i>value</i> isn't already in the set, and returns an iterator pointing at the inserted item.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert(
        &mut self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_insert(
            self as *mut crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from this set that are not contained in the <i>other</i> set. A reference to this set is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::intersect(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#intersect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from this set that are not contained in the <i>other</i> set. A reference to this set is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#intersects">intersects</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-and-eq">operator&amp;=</a>(), <a href="http://doc.qt.io/qt-5/qset.html#unite">unite</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#subtract">subtract</a>().</p></div>
    #[inline(always)]
    pub unsafe fn intersect(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
    ) -> ::cpp_core::MutRef<crate::QSetOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_intersect(
            self as *mut crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if this set has at least one item in common with <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::intersects(const QSet<QByteArray>& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#intersects">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this set has at least one item in common with <i>other</i>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qset.html#intersect">intersect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn intersects(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_intersects(
            self as *const crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_isDetached(
            self as *const crate::QSetOfQByteArray,
        )
    }

    /// <p>Returns <code>true</code> if the set contains no elements; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the set contains no elements; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_isEmpty(self as *const crate::QSetOfQByteArray)
    }

    /// <p>Constructs an empty set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QSet<QByteArray>::QSet()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#QSet">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#clear">clear</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QSetOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_QSet();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> class is a template class that provides a hash-table-based set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QSet<QByteArray>::QSet(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> class is a template class that provides a hash-table-based set.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores values in an unspecified order and provides very fast lookup of the values. Internally, <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt; is implemented as a <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a>.</p>
    /// <p>Here's an example <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> with <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///
    /// </pre>
    /// <p>To insert a value into the set, use <a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>():</p>
    /// <pre class="cpp">
    ///
    ///   set<span class="operator">.</span>insert(<span class="string">"one"</span>);
    ///   set<span class="operator">.</span>insert(<span class="string">"three"</span>);
    ///   set<span class="operator">.</span>insert(<span class="string">"seven"</span>);
    ///
    /// </pre>
    /// <p>Another way to insert items into the set is to use operator&lt;&lt;():</p>
    /// <pre class="cpp">
    ///
    ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"twelve"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"fifteen"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"nineteen"</span>;
    ///
    /// </pre>
    /// <p>To test whether an item belongs to the set or not, use <a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>():</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">if</span> (<span class="operator">!</span>set<span class="operator">.</span>contains(<span class="string">"ninety-nine"</span>))
    /// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre>
    /// <p>If you want to navigate through all the values stored in a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you can use an iterator. <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> supports both <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qsetiterator.html">QSetIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablesetiterator.html">QMutableSetIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> and <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a>). Here's how to iterate over a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt; using a Java-style iterator:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qsetiterator.html">QSetIterator</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> i(set);
    ///   <span class="keyword">while</span> (i<span class="operator">.</span>hasNext())
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> i<span class="operator">.</span>next();
    ///
    /// </pre>
    /// <p>Here's the same code, but using an STL-style iterator:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i <span class="operator">=</span> set<span class="operator">.</span>constBegin();
    ///   <span class="keyword">while</span> (i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>constEnd()) {
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i;
    /// &#32;     <span class="operator">+</span><span class="operator">+</span>i;
    ///   }
    ///
    /// </pre>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a> is unordered, so an iterator's sequence cannot be assumed to be predictable. If ordering by key is required, use a <a href="http://doc.qt.io/qt-5/qmap.html">QMap</a>.</p>
    /// <p>To navigate through a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you can also use <a href="http://doc.qt.io/qt-5/containers.html#foreach">foreach</a>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>value<span class="operator">,</span> set)
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> value;
    ///
    /// </pre>
    /// <p>Items can be removed from the set using <a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>(). There is also a <a href="http://doc.qt.io/qt-5/qset.html#clear">clear</a>() function that removes all items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>'s value data type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. In addition, the type must provide <code>operator==()</code>, and there must also be a global <a href="http://doc.qt.io/qt-5/qhash.html#qHash">qHash</a>() function that returns a hash value for an argument of the key's type. See the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> documentation for a list of types supported by <a href="http://doc.qt.io/qt-5/qhash.html#qHash">qHash</a>().</p>
    /// <p>Internally, <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> uses a hash table to perform lookups. The hash table automatically grows and shrinks to provide fast lookups without wasting memory. You can still control the size of the hash table by calling <a href="http://doc.qt.io/qt-5/qset.html#reserve">reserve</a>(), if you already know approximately how many elements the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> will contain, but this isn't necessary to obtain good performance. You can also call <a href="http://doc.qt.io/qt-5/qset.html#capacity">capacity</a>() to retrieve the hash table's size.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
    ) -> ::cpp_core::CppBox<crate::QSetOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_QSet1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes any occurrence of item <i>value</i> from the set. Returns true if an item was actually removed; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::remove(const QByteArray& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes any occurrence of item <i>value</i> from the set. Returns true if an item was actually removed; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove(
        &mut self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_remove(
            self as *mut crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// <p>Ensures that the set's internal hash table consists of at least <i>size</i> buckets.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSet<QByteArray>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Ensures that the set's internal hash table consists of at least <i>size</i> buckets.</p>
    /// <p>This function is useful for code that needs to build a huge set and wants to avoid repeated reallocation. For example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   set<span class="operator">.</span>reserve(<span class="number">20000</span>);
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">20000</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     set<span class="operator">.</span>insert(values<span class="operator">[</span>i<span class="operator">]</span>);
    ///
    /// </pre>
    /// <p>Ideally, <i>size</i> should be slightly more than the maximum number of elements expected in the set. <i>size</i> doesn't have to be prime, because <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> will use a prime number internally anyway. If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> will be a bit slower.</p>
    /// <p>In general, you will rarely ever need to call this function. <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>'s internal hash table automatically shrinks or grows to provide good performance without wasting too much memory.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qset.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_reserve(
            self as *mut crate::QSetOfQByteArray,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QSet<QByteArray>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_setSharable(
            self as *mut crate::QSetOfQByteArray,
            sharable,
        )
    }

    /// <p>Returns the number of items in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSet<QByteArray>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qset.html#count">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_size(self as *const crate::QSetOfQByteArray)
    }

    /// <p>Reduces the size of the set's internal hash table to save memory.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSet<QByteArray>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reduces the size of the set's internal hash table to save memory.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qset.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_squeeze(self as *mut crate::QSetOfQByteArray)
    }

    /// <p>Removes all items from this set that are contained in the <i>other</i> set. Returns a reference to this set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::subtract(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#subtract">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from this set that are contained in the <i>other</i> set. Returns a reference to this set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#operator--eq">operator-=</a>(), <a href="http://doc.qt.io/qt-5/qset.html#unite">unite</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#intersect">intersect</a>().</p></div>
    #[inline(always)]
    pub unsafe fn subtract(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
    ) -> ::cpp_core::MutRef<crate::QSetOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_subtract(
            self as *mut crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Swaps set <i>other</i> with this set. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QSet<QByteArray>::swap(QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps set <i>other</i> with this set. This operation is very fast and never fails.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QSetOfQByteArray>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_swap(
            self as *mut crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QSetOfQByteArray>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> containing the elements in the set. The order of the elements in the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is undefined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QByteArray> QSet<QByteArray>::toList() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#toList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> containing the elements in the set. The order of the elements in the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is undefined.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"red"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"green"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"blue"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"black"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list <span class="operator">=</span> set<span class="operator">.</span>toList();
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSort">qSort</a>(list);
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#fromList">fromList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#fromSet">QList::fromSet</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_list(&self) -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_toList(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Each item in the <i>other</i> set that isn't already in this set is inserted into this set. A reference to this set is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::unite(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#unite">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Each item in the <i>other</i> set that isn't already in this set is inserted into this set. A reference to this set is returned.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#operator-7c-eq">operator|=</a>(), <a href="http://doc.qt.io/qt-5/qset.html#intersect">intersect</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#subtract">subtract</a>().</p></div>
    #[inline(always)]
    pub unsafe fn unite(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
    ) -> ::cpp_core::MutRef<crate::QSetOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_unite(
            self as *mut crate::QSetOfQByteArray,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> containing the elements in the set. The order of the elements in the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is undefined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QByteArray> QSet<QByteArray>::values() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#values">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> containing the elements in the set. The order of the elements in the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is undefined.</p>
    /// <p>This is the same as <a href="http://doc.qt.io/qt-5/qset.html#toList">toList</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#fromList">fromList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#fromSet">QList::fromSet</a>().</p></div>
    #[inline(always)]
    pub unsafe fn values(&self) -> ::cpp_core::CppBox<::qt_core::QListOfQByteArray> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_values(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_q_opengl_debug_message {
    //! C++ type: <span style='color: green;'>```QList<QOpenGLDebugMessage>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator& QList<QOpenGLDebugMessage>::iterator::operator=(const QList<QOpenGLDebugMessage>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_8(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator& QList<QOpenGLDebugMessage>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__12(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__13(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator& QList<QOpenGLDebugMessage>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__11(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__1(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLDebugMessage>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator>
        {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLDebugMessage>::iterator::iterator(const QList<QOpenGLDebugMessage>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage* QList<QOpenGLDebugMessage>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<crate::QOpenGLDebugMessage> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator& QList<QOpenGLDebugMessage>::const_iterator::operator=(const QList<QOpenGLDebugMessage>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator& QList<QOpenGLDebugMessage>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator& QList<QOpenGLDebugMessage>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__1(
                    self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    j,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator_(
                    self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLDebugMessage>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a(
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLDebugMessage>::const_iterator::const_iterator(const QList<QOpenGLDebugMessage>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLDebugMessage>::const_iterator::const_iterator(const QList<QOpenGLDebugMessage>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_const_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage* QList<QOpenGLDebugMessage>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<crate::QOpenGLDebugMessage> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__(
                    self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_opengl_debug_message::Iterator {
        type Output = ::cpp_core::MutRef<crate::QOpenGLDebugMessage>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator==(const QList<QOpenGLDebugMessage>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(
            &self,
            o: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        ) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__2(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator<(const QList<QOpenGLDebugMessage>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_1(
                self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator<=(const QList<QOpenGLDebugMessage>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__4(
                self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator>(const QList<QOpenGLDebugMessage>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_2(
                self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator>=(const QList<QOpenGLDebugMessage>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__5(
                self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::std::cmp::PartialEq<
            ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        > for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator==(const QList<QOpenGLDebugMessage>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(
            &self,
            o: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__6(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl
        ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator<(const QList<QOpenGLDebugMessage>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_3(
                self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator<=(const QList<QOpenGLDebugMessage>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__8(
                self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator>(const QList<QOpenGLDebugMessage>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_4(
                self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::iterator::operator>=(const QList<QOpenGLDebugMessage>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__9(
                self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_opengl_debug_message::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator& QList<QOpenGLDebugMessage>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_opengl_debug_message::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator& QList<QOpenGLDebugMessage>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__12(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator& QList<QOpenGLDebugMessage>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__14(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_debug_message::Iterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator& QList<QOpenGLDebugMessage>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator__15(
                    self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_opengl_debug_message::Iterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_5(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_opengl_debug_message::Iterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_6(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>>
        for &crate::q_list_of_q_opengl_debug_message::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::iterator::operator-(QList<QOpenGLDebugMessage>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_operator_7(
                    self as *const crate::q_list_of_q_opengl_debug_message::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_opengl_debug_message::ConstIterator {
        type Output = ::cpp_core::Ref<crate::QOpenGLDebugMessage>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator_(
                    self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl
        ::std::cmp::PartialEq<
            ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        > for crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::const_iterator::operator==(const QList<QOpenGLDebugMessage>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(
            &self,
            o: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl
        ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::const_iterator::operator<(const QList<QOpenGLDebugMessage>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator_1(
                self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::const_iterator::operator<=(const QList<QOpenGLDebugMessage>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__4(
                self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::const_iterator::operator>(const QList<QOpenGLDebugMessage>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator_2(
                self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl
        ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::const_iterator::operator>=(const QList<QOpenGLDebugMessage>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__5(
                self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_opengl_debug_message::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator& QList<QOpenGLDebugMessage>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_opengl_debug_message::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator& QList<QOpenGLDebugMessage>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator& QList<QOpenGLDebugMessage>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator& QList<QOpenGLDebugMessage>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>>
        for &crate::q_list_of_q_opengl_debug_message::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::const_iterator::operator-(QList<QOpenGLDebugMessage>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_opengl_debug_message::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_opengl_debug_message::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLDebugMessage>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_iterator_diterator(
                self as *mut crate::q_list_of_q_opengl_debug_message::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_opengl_debug_message::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLDebugMessage>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_opengl_debug_message::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QOpenGLDebugMessage>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQOpenglDebugMessage {
    _unused: u8,
}
impl QListOfQOpenglDebugMessage {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::append(const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_opengl_debug_message(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_append(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::append(const QList<QOpenGLDebugMessage>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_q_opengl_debug_message(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_append1(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>::cast_into(
                t,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_at(
            self as *const crate::QListOfQOpenglDebugMessage,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_back(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_back1(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_begin(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_begin1(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_cbegin(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_cend(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_clear(
            self as *mut crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_constBegin(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_constEnd(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_constFirst(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_constLast(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::contains(const QOpenGLDebugMessage& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_contains(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>& QList<QOpenGLDebugMessage>::operator=(const QList<QOpenGLDebugMessage>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator_(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>::cast_into(
                l,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::count(const QOpenGLDebugMessage& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_count(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_count1(
            self as *const crate::QListOfQOpenglDebugMessage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_detach(
            self as *mut crate::QListOfQOpenglDebugMessage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_detachShared(
            self as *mut crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_empty(
            self as *const crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_end(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_end1(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::endsWith(const QOpenGLDebugMessage& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_endsWith(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::erase(QList<QOpenGLDebugMessage>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        >,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_erase(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
            >::cast_into(pos)
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::erase(QList<QOpenGLDebugMessage>::iterator first, QList<QOpenGLDebugMessage>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        >,
        last: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        >,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_erase1(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
            >::cast_into(first)
            .as_raw_ptr(),
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
            >::cast_into(last)
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_first(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_first1(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_front(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_front1(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator__2(
            self as *const crate::QListOfQOpenglDebugMessage,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator__3(
            self as *mut crate::QListOfQOpenglDebugMessage,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::indexOf(const QOpenGLDebugMessage& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_indexOf(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::indexOf(const QOpenGLDebugMessage& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_indexOf1(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::insert(int i, const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_q_opengl_debug_message(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_insert(
            self as *mut crate::QListOfQOpenglDebugMessage,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::insert(QList<QOpenGLDebugMessage>::iterator before, const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_q_opengl_debug_message(
        &mut self,
        before: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
        >,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_insert1(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_debug_message::Iterator>,
            >::cast_into(before)
            .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_isDetached(
            self as *const crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_isEmpty(
            self as *const crate::QListOfQOpenglDebugMessage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::isSharedWith(const QList<QOpenGLDebugMessage>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_isSharedWith(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_last(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QOpenGLDebugMessage& QList<QOpenGLDebugMessage>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_last1(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::lastIndexOf(const QOpenGLDebugMessage& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_lastIndexOf(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::lastIndexOf(const QOpenGLDebugMessage& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_lastIndexOf1(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_length(
            self as *const crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage> QList<QOpenGLDebugMessage>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_mid(
            self as *const crate::QListOfQOpenglDebugMessage,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage> QList<QOpenGLDebugMessage>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_mid1(
            self as *const crate::QListOfQOpenglDebugMessage,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_move(
            self as *mut crate::QListOfQOpenglDebugMessage,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLDebugMessage>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLDebugMessage>::QList(const QList<QOpenGLDebugMessage>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>::cast_into(
                l,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_pop_back(
            self as *mut crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_pop_front(
            self as *mut crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::prepend(const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_prepend(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::push_back(const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_push_back(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::push_front(const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_push_front(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::removeAll(const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_removeAll(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_removeAt(
            self as *mut crate::QListOfQOpenglDebugMessage,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_removeFirst(
            self as *mut crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_removeLast(
            self as *mut crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::removeOne(const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_removeOne(
            self as *mut crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::replace(int i, const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_replace(
            self as *mut crate::QListOfQOpenglDebugMessage,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_reserve(
            self as *mut crate::QListOfQOpenglDebugMessage,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_setSharable(
            self as *mut crate::QListOfQOpenglDebugMessage,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_size(
            self as *const crate::QListOfQOpenglDebugMessage,
        )
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::startsWith(const QOpenGLDebugMessage& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_startsWith(
            self as *const crate::QListOfQOpenglDebugMessage,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::swap(QList<QOpenGLDebugMessage>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQOpenglDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_swap(self as *mut crate::QListOfQOpenglDebugMessage, ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQOpenglDebugMessage>>::cast_into(other).as_mut_raw_ptr())
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_swap1(
            self as *mut crate::QListOfQOpenglDebugMessage,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLDebugMessage>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_swapItemsAt(
            self as *mut crate::QListOfQOpenglDebugMessage,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage QList<QOpenGLDebugMessage>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_takeAt(
            self as *mut crate::QListOfQOpenglDebugMessage,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage QList<QOpenGLDebugMessage>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_takeFirst(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage QList<QOpenGLDebugMessage>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_takeLast(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage QList<QOpenGLDebugMessage>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_value(
            self as *const crate::QListOfQOpenglDebugMessage,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugMessage QList<QOpenGLDebugMessage>::value(int i, const QOpenGLDebugMessage& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) -> ::cpp_core::CppBox<crate::QOpenGLDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_value1(
            self as *const crate::QListOfQOpenglDebugMessage,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QSize>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQSize {
    _unused: u8,
}
impl QVectorOfQSize {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::append(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_size(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_append(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::append(const QVector<QSize>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_size(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_append2(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQSize>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QVector<QSize>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_at(self as *const crate::QVectorOfQSize, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QVector<QSize>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_back(self as *mut crate::QVectorOfQSize);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QVector<QSize>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_back1(self as *const crate::QVectorOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_capacity(self as *const crate::QVectorOfQSize)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_clear(self as *mut crate::QVectorOfQSize)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize* QVector<QSize>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_constData(
            self as *const crate::QVectorOfQSize,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QVector<QSize>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_constFirst(
            self as *const crate::QVectorOfQSize,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QVector<QSize>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_constLast(
            self as *const crate::QVectorOfQSize,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::contains(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_contains(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize>& QVector<QSize>::operator=(const QVector<QSize>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQSize>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator_(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQSize>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::count(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_count(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_count1(self as *const crate::QVectorOfQSize)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize* QVector<QSize>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_data(self as *mut crate::QVectorOfQSize);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize* QVector<QSize>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_data1(self as *const crate::QVectorOfQSize);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_detach(self as *mut crate::QVectorOfQSize)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_empty(self as *const crate::QVectorOfQSize)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::endsWith(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_endsWith(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize>& QVector<QSize>::fill(const QSize& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_fill(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize>& QVector<QSize>::fill(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_fill1(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QVector<QSize>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_first(self as *mut crate::QVectorOfQSize);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QVector<QSize>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_first1(self as *const crate::QVectorOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in <i>list</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QVector<QSize> QVector<QSize>::fromList(const QList<QSize>& list)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fromList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> object with the data contained in <i>list</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Sven"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Kim"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Ola"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vect <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>fromList(list);
    ///   <span class="comment">// vect: ["Sven", "Kim", "Ola"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#toList">toList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#toVector">QList::toVector</a>().</p></div>
    #[inline(always)]
    pub unsafe fn from_list(
        list: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQSize>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_fromList(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQSize>>::cast_into(list)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QVector<QSize>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_front(self as *mut crate::QVectorOfQSize);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QVector<QSize>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_front1(self as *const crate::QVectorOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QVector<QSize>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator__2(
            self as *mut crate::QVectorOfQSize,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QVector<QSize>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator__3(
            self as *const crate::QVectorOfQSize,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::indexOf(const QSize& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_indexOf(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::indexOf(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_indexOf1(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::insert(int i, const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_insert(
            self as *mut crate::QVectorOfQSize,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::insert(int i, int n, const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_insert1(
            self as *mut crate::QVectorOfQSize,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_isDetached(self as *const crate::QVectorOfQSize)
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_isEmpty(self as *const crate::QVectorOfQSize)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::isSharedWith(const QVector<QSize>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_isSharedWith(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQSize>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize& QVector<QSize>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_last(self as *mut crate::QVectorOfQSize);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QVector<QSize>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_last1(self as *const crate::QVectorOfQSize);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::lastIndexOf(const QSize& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_lastIndexOf(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::lastIndexOf(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_lastIndexOf1(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_length(self as *const crate::QVectorOfQSize)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize> QVector<QSize>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_mid(
            self as *const crate::QVectorOfQSize,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize> QVector<QSize>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_mid1(
            self as *const crate::QVectorOfQSize,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_move(
            self as *mut crate::QVectorOfQSize,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QSize>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QSize>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(size: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QSize>::QVector(int size, const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QSize>::QVector(const QVector<QSize>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQSize>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQSize>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_pop_back(self as *mut crate::QVectorOfQSize)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_pop_front(self as *mut crate::QVectorOfQSize)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::prepend(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_prepend(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::push_back(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_push_back(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::push_front(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_push_front(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_remove(self as *mut crate::QVectorOfQSize, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_remove1(self as *mut crate::QVectorOfQSize, i, n)
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::removeAll(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_removeAll(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_removeAt(self as *mut crate::QVectorOfQSize, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_removeFirst(self as *mut crate::QVectorOfQSize)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_removeLast(self as *mut crate::QVectorOfQSize)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::removeOne(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_removeOne(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::replace(int i, const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_replace(
            self as *mut crate::QVectorOfQSize,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_reserve(self as *mut crate::QVectorOfQSize, size)
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_resize(self as *mut crate::QVectorOfQSize, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_setSharable(
            self as *mut crate::QVectorOfQSize,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_shrink_to_fit(self as *mut crate::QVectorOfQSize)
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_size(self as *const crate::QVectorOfQSize)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_squeeze(self as *mut crate::QVectorOfQSize)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::startsWith(const QSize& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_startsWith(
            self as *const crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QSize>::swap(QVector<QSize>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_swap(
            self as *mut crate::QVectorOfQSize,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQSize>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QVector<QSize>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_takeAt(
            self as *mut crate::QVectorOfQSize,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QVector<QSize>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_takeFirst(
            self as *mut crate::QVectorOfQSize,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QVector<QSize>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_takeLast(self as *mut crate::QVectorOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize> QVector<QSize>::toList() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#toList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> object with the data contained in this <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vect;
    ///   vect <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"red"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"green"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"blue"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"black"</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> list <span class="operator">=</span> vect<span class="operator">.</span>toList();
    ///   <span class="comment">// list: ["red", "green", "blue", "black"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#fromList">fromList</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#fromVector">QList::fromVector</a>().</p></div>
    #[inline(always)]
    pub unsafe fn to_list(&self) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_toList(self as *const crate::QVectorOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QVector<QSize>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_value(
            self as *const crate::QVectorOfQSize,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QVector<QSize>::value(int i, const QSize& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_value1(
            self as *const crate::QVectorOfQSize,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_q_opengl_shader {
    //! C++ type: <span style='color: green;'>```QList<QOpenGLShader*>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QOpenGLShader*>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator& QList<QOpenGLShader*>::iterator::operator=(const QList<QOpenGLShader*>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_8(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator& QList<QOpenGLShader*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__13(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator& QList<QOpenGLShader*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__11(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLShader*& QList<QOpenGLShader*>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<*mut crate::QOpenGLShader> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__1(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLShader*& QList<QOpenGLShader*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QOpenGLShader> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLShader*>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLShader*>::iterator::iterator(const QList<QOpenGLShader*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLShader** QList<QOpenGLShader*>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<*mut crate::QOpenGLShader> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator& QList<QOpenGLShader*>::const_iterator::operator=(const QList<QOpenGLShader*>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator& QList<QOpenGLShader*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator& QList<QOpenGLShader*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLShader*>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator>
        {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_const_iterator(
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLShader*>::const_iterator::const_iterator(const QList<QOpenGLShader*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_const_iterator2(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLShader*>::const_iterator::const_iterator(const QList<QOpenGLShader*>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_const_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_opengl_shader::Iterator {
        type Output = ::cpp_core::MutRef<*mut crate::QOpenGLShader>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QOpenGLShader*& QList<QOpenGLShader*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QOpenGLShader> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator==(const QList<QOpenGLShader*>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__2(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator<(const QList<QOpenGLShader*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_1(
                self as *const crate::q_list_of_q_opengl_shader::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator<=(const QList<QOpenGLShader*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__4(
                self as *const crate::q_list_of_q_opengl_shader::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator>(const QList<QOpenGLShader*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_2(
                self as *const crate::q_list_of_q_opengl_shader::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator>=(const QList<QOpenGLShader*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__5(
                self as *const crate::q_list_of_q_opengl_shader::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator==(const QList<QOpenGLShader*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__6(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator<(const QList<QOpenGLShader*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_3(
                self as *const crate::q_list_of_q_opengl_shader::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator<=(const QList<QOpenGLShader*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__8(
                self as *const crate::q_list_of_q_opengl_shader::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator>(const QList<QOpenGLShader*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_4(
                self as *const crate::q_list_of_q_opengl_shader::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::iterator::operator>=(const QList<QOpenGLShader*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__9(
                self as *const crate::q_list_of_q_opengl_shader::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_opengl_shader::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator& QList<QOpenGLShader*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_opengl_shader::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator& QList<QOpenGLShader*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator& QList<QOpenGLShader*>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__14(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_shader::Iterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator& QList<QOpenGLShader*>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator__15(
                    self as *mut crate::q_list_of_q_opengl_shader::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_opengl_shader::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_5(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_opengl_shader::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_6(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>
        for &crate::q_list_of_q_opengl_shader::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLShader*>::iterator::operator-(QList<QOpenGLShader*>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_operator_7(
                    self as *const crate::q_list_of_q_opengl_shader::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::const_iterator::operator==(const QList<QOpenGLShader*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_opengl_shader::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::const_iterator::operator<(const QList<QOpenGLShader*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator_1(
                self as *const crate::q_list_of_q_opengl_shader::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::const_iterator::operator<=(const QList<QOpenGLShader*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__4(
                self as *const crate::q_list_of_q_opengl_shader::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::const_iterator::operator>(const QList<QOpenGLShader*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator_2(
                self as *const crate::q_list_of_q_opengl_shader::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for crate::q_list_of_q_opengl_shader::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::const_iterator::operator>=(const QList<QOpenGLShader*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__5(
                self as *const crate::q_list_of_q_opengl_shader::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_opengl_shader::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator& QList<QOpenGLShader*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_opengl_shader::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator& QList<QOpenGLShader*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_shader::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator& QList<QOpenGLShader*>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_opengl_shader::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator& QList<QOpenGLShader*>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_opengl_shader::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_opengl_shader::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_opengl_shader::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_opengl_shader::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>>
        for &crate::q_list_of_q_opengl_shader::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLShader*>::const_iterator::operator-(QList<QOpenGLShader*>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_opengl_shader::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_opengl_shader::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_opengl_shader::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLShader*>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_iterator_diterator(
                self as *mut crate::q_list_of_q_opengl_shader::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_opengl_shader::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLShader*>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_opengl_shader::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QOpenGLShader*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQOpenglShader {
    _unused: u8,
}
impl QListOfQOpenglShader {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::append(const QList<QOpenGLShader*>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglShader>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_append1(
            self as *mut crate::QListOfQOpenglShader,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglShader>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader*& QList<QOpenGLShader*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&mut self) -> ::cpp_core::MutRef<*mut crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_back(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_begin(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_begin1(
            self as *const crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_cbegin(
            self as *const crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_cend(
            self as *const crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_clear(
            self as *mut crate::QListOfQOpenglShader,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_constBegin(
            self as *const crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_constEnd(
            self as *const crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>& QList<QOpenGLShader*>::operator=(const QList<QOpenGLShader*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglShader>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQOpenglShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_operator_(
            self as *mut crate::QListOfQOpenglShader,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglShader>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLShader*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_count1(
            self as *const crate::QListOfQOpenglShader,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_detach(
            self as *mut crate::QListOfQOpenglShader,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_detachShared(
            self as *mut crate::QListOfQOpenglShader,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_empty(
            self as *const crate::QListOfQOpenglShader,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_end(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_end1(
            self as *const crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::erase(QList<QOpenGLShader*>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_erase(self as *mut crate::QListOfQOpenglShader, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::erase(QList<QOpenGLShader*>::iterator first, QList<QOpenGLShader*>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_erase1(self as *mut crate::QListOfQOpenglShader, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_opengl_shader::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader*& QList<QOpenGLShader*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first(&mut self) -> ::cpp_core::MutRef<*mut crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_first(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader*& QList<QOpenGLShader*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&mut self) -> ::cpp_core::MutRef<*mut crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_front(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader*& QList<QOpenGLShader*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<*mut crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_operator__3(
            self as *mut crate::QListOfQOpenglShader,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_isDetached(
            self as *const crate::QListOfQOpenglShader,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_isEmpty(
            self as *const crate::QListOfQOpenglShader,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::isSharedWith(const QList<QOpenGLShader*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglShader>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_isSharedWith(
            self as *const crate::QListOfQOpenglShader,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglShader>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader*& QList<QOpenGLShader*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last(&mut self) -> ::cpp_core::MutRef<*mut crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_last(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLShader*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_length(
            self as *const crate::QListOfQOpenglShader,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*> QList<QOpenGLShader*>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_mid(
            self as *const crate::QListOfQOpenglShader,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*> QList<QOpenGLShader*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_mid1(
            self as *const crate::QListOfQOpenglShader,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_move(
            self as *mut crate::QListOfQOpenglShader,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLShader*>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQOpenglShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QOpenGLShader*>::QList(const QList<QOpenGLShader*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglShader>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglShader>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_pop_back(
            self as *mut crate::QListOfQOpenglShader,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_pop_front(
            self as *mut crate::QListOfQOpenglShader,
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_removeAt(
            self as *mut crate::QListOfQOpenglShader,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_removeFirst(
            self as *mut crate::QListOfQOpenglShader,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_removeLast(
            self as *mut crate::QListOfQOpenglShader,
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_reserve(
            self as *mut crate::QListOfQOpenglShader,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_setSharable(
            self as *mut crate::QListOfQOpenglShader,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLShader*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_size(
            self as *const crate::QListOfQOpenglShader,
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::swap(QList<QOpenGLShader*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQOpenglShader>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_swap(
            self as *mut crate::QListOfQOpenglShader,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQOpenglShader>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_swap1(
            self as *mut crate::QListOfQOpenglShader,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QOpenGLShader*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_swapItemsAt(
            self as *mut crate::QListOfQOpenglShader,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader* QList<QOpenGLShader*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_takeAt(
            self as *mut crate::QListOfQOpenglShader,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader* QList<QOpenGLShader*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::MutPtr<crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_takeFirst(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader* QList<QOpenGLShader*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::MutPtr<crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_takeLast(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader* QList<QOpenGLShader*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_value(
            self as *const crate::QListOfQOpenglShader,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<float>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfFloat {
    _unused: u8,
}
impl QVectorOfFloat {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::append(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_float(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_append(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::append(const QVector<float>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_float(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFloat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_append2(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFloat>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QVector<float>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_at(self as *const crate::QVectorOfFloat, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QVector<float>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_back(self as *mut crate::QVectorOfFloat);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QVector<float>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_back1(self as *const crate::QVectorOfFloat);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_capacity(self as *const crate::QVectorOfFloat)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_clear(self as *mut crate::QVectorOfFloat)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float* QVector<float>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_float> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_constData(
            self as *const crate::QVectorOfFloat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QVector<float>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_constFirst(
            self as *const crate::QVectorOfFloat,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QVector<float>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_constLast(
            self as *const crate::QVectorOfFloat,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::contains(const float& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_contains(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float>& QVector<float>::operator=(const QVector<float>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFloat>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator_(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFloat>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::count(const float& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_count(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_count1(self as *const crate::QVectorOfFloat)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float* QVector<float>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_data(self as *mut crate::QVectorOfFloat);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float* QVector<float>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_data1(self as *const crate::QVectorOfFloat);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_detach(self as *mut crate::QVectorOfFloat)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_empty(self as *const crate::QVectorOfFloat)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::endsWith(const float& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_endsWith(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float>& QVector<float>::fill(const float& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_fill(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float>& QVector<float>::fill(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_fill1(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QVector<float>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_first(self as *mut crate::QVectorOfFloat);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QVector<float>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_first1(self as *const crate::QVectorOfFloat);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QVector<float>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_front(self as *mut crate::QVectorOfFloat);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QVector<float>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_front1(self as *const crate::QVectorOfFloat);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QVector<float>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator__2(
            self as *mut crate::QVectorOfFloat,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QVector<float>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator__3(
            self as *const crate::QVectorOfFloat,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::indexOf(const float& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_indexOf(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::indexOf(const float& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_indexOf1(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::insert(int i, const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_insert(
            self as *mut crate::QVectorOfFloat,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::insert(int i, int n, const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_insert1(
            self as *mut crate::QVectorOfFloat,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_isDetached(self as *const crate::QVectorOfFloat)
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_isEmpty(self as *const crate::QVectorOfFloat)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::isSharedWith(const QVector<float>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFloat>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_isSharedWith(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFloat>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float& QVector<float>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_last(self as *mut crate::QVectorOfFloat);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float& QVector<float>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_last1(self as *const crate::QVectorOfFloat);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::lastIndexOf(const float& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_lastIndexOf(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::lastIndexOf(const float& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_lastIndexOf1(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_length(self as *const crate::QVectorOfFloat)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float> QVector<float>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_mid(
            self as *const crate::QVectorOfFloat,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float> QVector<float>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_mid1(
            self as *const crate::QVectorOfFloat,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_move(
            self as *mut crate::QVectorOfFloat,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<float>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<float>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(size: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<float>::QVector(int size, const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<float>::QVector(const QVector<float>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFloat>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_float_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFloat>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_pop_back(self as *mut crate::QVectorOfFloat)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_pop_front(self as *mut crate::QVectorOfFloat)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::prepend(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_prepend(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::push_back(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_push_back(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::push_front(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_push_front(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_remove(self as *mut crate::QVectorOfFloat, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_remove1(self as *mut crate::QVectorOfFloat, i, n)
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::removeAll(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_removeAll(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_removeAt(self as *mut crate::QVectorOfFloat, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_removeFirst(self as *mut crate::QVectorOfFloat)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_removeLast(self as *mut crate::QVectorOfFloat)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::removeOne(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_removeOne(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::replace(int i, const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_replace(
            self as *mut crate::QVectorOfFloat,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_reserve(self as *mut crate::QVectorOfFloat, size)
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_resize(self as *mut crate::QVectorOfFloat, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_setSharable(
            self as *mut crate::QVectorOfFloat,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_shrink_to_fit(self as *mut crate::QVectorOfFloat)
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_size(self as *const crate::QVectorOfFloat)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_squeeze(self as *mut crate::QVectorOfFloat)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::startsWith(const float& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_startsWith(
            self as *const crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<float>::swap(QVector<float>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfFloat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_swap(
            self as *mut crate::QVectorOfFloat,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfFloat>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector<float>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&mut self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_takeAt(self as *mut crate::QVectorOfFloat, i)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector<float>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_takeFirst(self as *mut crate::QVectorOfFloat)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector<float>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_takeLast(self as *mut crate::QVectorOfFloat)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector<float>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_value(self as *const crate::QVectorOfFloat, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float QVector<float>::value(int i, const float& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_value1(
            self as *const crate::QVectorOfFloat,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
///
/// C++ class: <span style='color: green;'>```QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
///
/// </pre>
/// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
/// <pre class="cpp">
///
///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
/// <pre class="cpp">
///
///   <span class="keyword">struct</span> Variable {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
/// &#32;     <span class="type">double</span> value;
///   };
///   Variable v;
///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
#[repr(C)]
pub struct QPairOfFilterFilter {
    _unused: u8,
}
impl QPairOfFilterFilter {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>::operator=(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfFilterFilter>>,
    ) -> ::cpp_core::MutRef<crate::QPairOfFilterFilter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_QOpenGLTexture_Filter_QOpenGLTexture_Filter_operator_(self as *mut crate::QPairOfFilterFilter, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfFilterFilter>>::cast_into(other).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>::QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPairOfFilterFilter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPair_QOpenGLTexture_Filter_QOpenGLTexture_Filter_QPair();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pair and initializes the <code>first</code> element with <i>value1</i> and the <code>second</code> element with <i>value2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>::QPair(const QOpenGLTexture::Filter& t1, const QOpenGLTexture::Filter& t2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pair and initializes the <code>first</code> element with <i>value1</i> and the <code>second</code> element with <i>value2</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">qMakePair</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        t1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_opengl_texture::Filter>>,
        t2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_opengl_texture::Filter>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfFilterFilter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_QOpenGLTexture_Filter_QOpenGLTexture_Filter_QPair1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_opengl_texture::Filter>>::cast_into(t1).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_opengl_texture::Filter>>::cast_into(t2).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>::QPair(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfFilterFilter>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfFilterFilter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QPair_QOpenGLTexture_Filter_QOpenGLTexture_Filter_QPair2(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfFilterFilter>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this pair with <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>::swap(QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this pair with <i>other</i>.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>first<span class="operator">,</span> other<span class="operator">.</span>first);
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>second<span class="operator">,</span> other<span class="operator">.</span>second);
    ///
    /// </pre>
    /// <p>Swap overloads are found in namespace <code>std</code> as well as via argument-dependent lookup (ADL) in the namespace of <code>T</code> .</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPairOfFilterFilter>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_QOpenGLTexture_Filter_QOpenGLTexture_Filter_swap(
            self as *mut crate::QPairOfFilterFilter,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPairOfFilterFilter>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
///
/// C++ class: <span style='color: green;'>```QPair<float, float>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
///
/// </pre>
/// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
/// <pre class="cpp">
///
///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
/// <pre class="cpp">
///
///   <span class="keyword">struct</span> Variable {
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
/// &#32;     <span class="type">double</span> value;
///   };
///   Variable v;
///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
///
/// </pre>
/// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
/// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
#[repr(C)]
pub struct QPairOfFloatFloat {
    _unused: u8,
}
impl QPairOfFloatFloat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<float, float>& QPair<float, float>::operator=(const QPair<float, float>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfFloatFloat>>,
    ) -> ::cpp_core::MutRef<crate::QPairOfFloatFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_float_float_operator_(
            self as *mut crate::QPairOfFloatFloat,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfFloatFloat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<float, float>::QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty pair. The <code>first</code> and <code>second</code> elements are initialized with <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>s.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QPairOfFloatFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_float_float_QPair();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a pair and initializes the <code>first</code> element with <i>value1</i> and the <code>second</code> element with <i>value2</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<float, float>::QPair(const float& t1, const float& t2)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#QPair-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a pair and initializes the <code>first</code> element with <i>value1</i> and the <code>second</code> element with <i>value2</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">qMakePair</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        t1: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
        t2: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfFloatFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_float_float_QPair1(
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t1)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(t2)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QPair<float, float>::QPair(const QPair<float, float>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfFloatFloat>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfFloatFloat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPair_float_float_QPair2(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfFloatFloat>>::cast_into(other)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Swaps this pair with <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QPair<float, float>::swap(QPair<float, float>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps this pair with <i>other</i>.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>first<span class="operator">,</span> other<span class="operator">.</span>first);
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms-obsolete.html#qSwap-1">qSwap</a>(<span class="keyword">this</span><span class="operator">-</span><span class="operator">&gt;</span>second<span class="operator">,</span> other<span class="operator">.</span>second);
    ///
    /// </pre>
    /// <p>Swap overloads are found in namespace <code>std</code> as well as via argument-dependent lookup (ADL) in the namespace of <code>T</code> .</p>
    /// <p>This function was introduced in  Qt 5.5.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPairOfFloatFloat>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_float_float_swap(
            self as *mut crate::QPairOfFloatFloat,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPairOfFloatFloat>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<GLuint64>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfU64 {
    _unused: u8,
}
impl QVectorOfU64 {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::append(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_u64(&mut self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_append(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::append(const QVector<GLuint64>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_u64(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_append2(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU64>>::cast_into(l).as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64& QVector<GLuint64>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_at(self as *const crate::QVectorOfU64, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64& QVector<GLuint64>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_back(self as *mut crate::QVectorOfU64);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64& QVector<GLuint64>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_back1(self as *const crate::QVectorOfU64);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_capacity(self as *const crate::QVectorOfU64)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_clear(self as *mut crate::QVectorOfU64)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64* QVector<GLuint64>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<u64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_constData(
            self as *const crate::QVectorOfU64,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64& QVector<GLuint64>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<u64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_constFirst(
            self as *const crate::QVectorOfU64,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64& QVector<GLuint64>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<u64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_constLast(
            self as *const crate::QVectorOfU64,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::contains(const GLuint64& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_contains(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64>& QVector<GLuint64>::operator=(const QVector<GLuint64>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU64>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator_(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU64>>::cast_into(v).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::count(const GLuint64& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_count(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_count1(self as *const crate::QVectorOfU64)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64* QVector<GLuint64>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_data(self as *mut crate::QVectorOfU64);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64* QVector<GLuint64>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_data1(self as *const crate::QVectorOfU64);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_detach(self as *mut crate::QVectorOfU64)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_empty(self as *const crate::QVectorOfU64)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::endsWith(const GLuint64& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_endsWith(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64>& QVector<GLuint64>::fill(const GLuint64& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_fill(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64>& QVector<GLuint64>::fill(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_fill1(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64& QVector<GLuint64>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_first(self as *mut crate::QVectorOfU64);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64& QVector<GLuint64>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<u64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_first1(
            self as *const crate::QVectorOfU64,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64& QVector<GLuint64>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_front(self as *mut crate::QVectorOfU64);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64& QVector<GLuint64>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<u64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_front1(
            self as *const crate::QVectorOfU64,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64& QVector<GLuint64>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&mut self, i: ::std::os::raw::c_int) -> ::cpp_core::MutRef<u64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator__2(
            self as *mut crate::QVectorOfU64,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64& QVector<GLuint64>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<u64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator__3(
            self as *const crate::QVectorOfU64,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::indexOf(const GLuint64& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_indexOf(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::indexOf(const GLuint64& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_indexOf1(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::insert(int i, const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_insert(
            self as *mut crate::QVectorOfU64,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::insert(int i, int n, const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_insert1(
            self as *mut crate::QVectorOfU64,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_isDetached(self as *const crate::QVectorOfU64)
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_isEmpty(self as *const crate::QVectorOfU64)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::isSharedWith(const QVector<GLuint64>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU64>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_isSharedWith(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU64>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64& QVector<GLuint64>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_last(self as *mut crate::QVectorOfU64);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64& QVector<GLuint64>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_last1(self as *const crate::QVectorOfU64);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::lastIndexOf(const GLuint64& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_lastIndexOf(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::lastIndexOf(const GLuint64& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_lastIndexOf1(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_length(self as *const crate::QVectorOfU64)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64> QVector<GLuint64>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_mid(
            self as *const crate::QVectorOfU64,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64> QVector<GLuint64>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_mid1(
            self as *const crate::QVectorOfU64,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_move(
            self as *mut crate::QVectorOfU64,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<GLuint64>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<GLuint64>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(size: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<GLuint64>::QVector(int size, const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<GLuint64>::QVector(const QVector<GLuint64>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU64>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU64>>::cast_into(v).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_pop_back(self as *mut crate::QVectorOfU64)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_pop_front(self as *mut crate::QVectorOfU64)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::prepend(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&mut self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_prepend(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::push_back(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&mut self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_push_back(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::push_front(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&mut self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_push_front(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_remove(self as *mut crate::QVectorOfU64, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_remove1(
            self as *mut crate::QVectorOfU64,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::removeAll(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_removeAll(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_removeAt(self as *mut crate::QVectorOfU64, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_removeFirst(self as *mut crate::QVectorOfU64)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_removeLast(self as *mut crate::QVectorOfU64)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::removeOne(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_removeOne(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::replace(int i, const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_replace(
            self as *mut crate::QVectorOfU64,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_reserve(
            self as *mut crate::QVectorOfU64,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_resize(self as *mut crate::QVectorOfU64, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_setSharable(
            self as *mut crate::QVectorOfU64,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_shrink_to_fit(
            self as *mut crate::QVectorOfU64,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_size(self as *const crate::QVectorOfU64)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_squeeze(self as *mut crate::QVectorOfU64)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::startsWith(const GLuint64& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_startsWith(
            self as *const crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<GLuint64>::swap(QVector<GLuint64>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfU64>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_swap(
            self as *mut crate::QVectorOfU64,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfU64>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64 QVector<GLuint64>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&mut self, i: ::std::os::raw::c_int) -> u64 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_takeAt(self as *mut crate::QVectorOfU64, i)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64 QVector<GLuint64>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> u64 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_takeFirst(self as *mut crate::QVectorOfU64)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64 QVector<GLuint64>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> u64 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_takeLast(self as *mut crate::QVectorOfU64)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64 QVector<GLuint64>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> u64 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_value(self as *const crate::QVectorOfU64, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64 QVector<GLuint64>::value(int i, const GLuint64& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<u64>>,
    ) -> u64 {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_value1(
            self as *const crate::QVectorOfU64,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<u64>>::cast_into(default_value).as_raw_ptr(),
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QLineF>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQLineF {
    _unused: u8,
}
impl QVectorOfQLineF {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::append(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_line_f(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_append(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::append(const QVector<QLineF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_line_f(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_append2(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLineF>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF& QVector<QLineF>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_at(
            self as *const crate::QVectorOfQLineF,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF& QVector<QLineF>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QLineF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_back(self as *mut crate::QVectorOfQLineF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF& QVector<QLineF>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_back1(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_capacity(self as *const crate::QVectorOfQLineF)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_clear(self as *mut crate::QVectorOfQLineF)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF* QVector<QLineF>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_constData(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF& QVector<QLineF>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_constFirst(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF& QVector<QLineF>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_constLast(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::contains(const QLineF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_contains(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF>& QVector<QLineF>::operator=(const QVector<QLineF>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLineF>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator_(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLineF>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::count(const QLineF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_count(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_count1(self as *const crate::QVectorOfQLineF)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF* QVector<QLineF>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QLineF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_data(self as *mut crate::QVectorOfQLineF);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF* QVector<QLineF>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_data1(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_detach(self as *mut crate::QVectorOfQLineF)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_empty(self as *const crate::QVectorOfQLineF)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::endsWith(const QLineF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_endsWith(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF>& QVector<QLineF>::fill(const QLineF& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_fill(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF>& QVector<QLineF>::fill(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_fill1(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF& QVector<QLineF>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QLineF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_first(self as *mut crate::QVectorOfQLineF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF& QVector<QLineF>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_first1(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF& QVector<QLineF>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QLineF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_front(self as *mut crate::QVectorOfQLineF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF& QVector<QLineF>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_front1(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF& QVector<QLineF>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator__2(
            self as *mut crate::QVectorOfQLineF,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF& QVector<QLineF>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator__3(
            self as *const crate::QVectorOfQLineF,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::indexOf(const QLineF& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_indexOf(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::indexOf(const QLineF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_indexOf1(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::insert(int i, const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_insert(
            self as *mut crate::QVectorOfQLineF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::insert(int i, int n, const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_insert1(
            self as *mut crate::QVectorOfQLineF,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_isDetached(
            self as *const crate::QVectorOfQLineF,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_isEmpty(self as *const crate::QVectorOfQLineF)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::isSharedWith(const QVector<QLineF>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLineF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_isSharedWith(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLineF>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF& QVector<QLineF>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QLineF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_last(self as *mut crate::QVectorOfQLineF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF& QVector<QLineF>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_last1(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::lastIndexOf(const QLineF& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_lastIndexOf(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::lastIndexOf(const QLineF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_lastIndexOf1(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_length(self as *const crate::QVectorOfQLineF)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF> QVector<QLineF>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_mid(
            self as *const crate::QVectorOfQLineF,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF> QVector<QLineF>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_mid1(
            self as *const crate::QVectorOfQLineF,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_move(
            self as *mut crate::QVectorOfQLineF,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QLineF>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QLineF>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QLineF>::QVector(int size, const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QLineF>::QVector(const QVector<QLineF>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLineF>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLineF>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_pop_back(self as *mut crate::QVectorOfQLineF)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_pop_front(self as *mut crate::QVectorOfQLineF)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::prepend(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_prepend(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::push_back(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_push_back(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::push_front(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_push_front(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_remove(self as *mut crate::QVectorOfQLineF, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_remove1(
            self as *mut crate::QVectorOfQLineF,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::removeAll(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_removeAll(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_removeAt(self as *mut crate::QVectorOfQLineF, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_removeFirst(self as *mut crate::QVectorOfQLineF)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_removeLast(self as *mut crate::QVectorOfQLineF)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::removeOne(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_removeOne(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::replace(int i, const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_replace(
            self as *mut crate::QVectorOfQLineF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_reserve(
            self as *mut crate::QVectorOfQLineF,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_resize(
            self as *mut crate::QVectorOfQLineF,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_setSharable(
            self as *mut crate::QVectorOfQLineF,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_shrink_to_fit(
            self as *mut crate::QVectorOfQLineF,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_size(self as *const crate::QVectorOfQLineF)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_squeeze(self as *mut crate::QVectorOfQLineF)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::startsWith(const QLineF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_startsWith(
            self as *const crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLineF>::swap(QVector<QLineF>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQLineF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_swap(
            self as *mut crate::QVectorOfQLineF,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQLineF>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF QVector<QLineF>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_takeAt(
            self as *mut crate::QVectorOfQLineF,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF QVector<QLineF>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_takeFirst(
            self as *mut crate::QVectorOfQLineF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF QVector<QLineF>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_takeLast(
            self as *mut crate::QVectorOfQLineF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF QVector<QLineF>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_value(
            self as *const crate::QVectorOfQLineF,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF QVector<QLineF>::value(int i, const QLineF& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLineF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_value1(
            self as *const crate::QVectorOfQLineF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLineF>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QLine>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQLine {
    _unused: u8,
}
impl QVectorOfQLine {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::append(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_line(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_append(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::append(const QVector<QLine>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_line(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_append2(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLine>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine& QVector<QLine>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_at(self as *const crate::QVectorOfQLine, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine& QVector<QLine>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_back(self as *mut crate::QVectorOfQLine);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine& QVector<QLine>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_back1(self as *const crate::QVectorOfQLine);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_capacity(self as *const crate::QVectorOfQLine)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_clear(self as *mut crate::QVectorOfQLine)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine* QVector<QLine>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_constData(
            self as *const crate::QVectorOfQLine,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine& QVector<QLine>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_constFirst(
            self as *const crate::QVectorOfQLine,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine& QVector<QLine>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_constLast(
            self as *const crate::QVectorOfQLine,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::contains(const QLine& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_contains(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine>& QVector<QLine>::operator=(const QVector<QLine>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLine>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator_(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLine>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::count(const QLine& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_count(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_count1(self as *const crate::QVectorOfQLine)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine* QVector<QLine>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_data(self as *mut crate::QVectorOfQLine);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine* QVector<QLine>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_data1(self as *const crate::QVectorOfQLine);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_detach(self as *mut crate::QVectorOfQLine)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_empty(self as *const crate::QVectorOfQLine)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::endsWith(const QLine& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_endsWith(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine>& QVector<QLine>::fill(const QLine& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_fill(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine>& QVector<QLine>::fill(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_fill1(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine& QVector<QLine>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_first(self as *mut crate::QVectorOfQLine);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine& QVector<QLine>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_first1(self as *const crate::QVectorOfQLine);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine& QVector<QLine>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_front(self as *mut crate::QVectorOfQLine);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine& QVector<QLine>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_front1(self as *const crate::QVectorOfQLine);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine& QVector<QLine>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator__2(
            self as *mut crate::QVectorOfQLine,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine& QVector<QLine>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator__3(
            self as *const crate::QVectorOfQLine,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::indexOf(const QLine& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_indexOf(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::indexOf(const QLine& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_indexOf1(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::insert(int i, const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_insert(
            self as *mut crate::QVectorOfQLine,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::insert(int i, int n, const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_insert1(
            self as *mut crate::QVectorOfQLine,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_isDetached(self as *const crate::QVectorOfQLine)
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_isEmpty(self as *const crate::QVectorOfQLine)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::isSharedWith(const QVector<QLine>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLine>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_isSharedWith(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLine>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine& QVector<QLine>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_last(self as *mut crate::QVectorOfQLine);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine& QVector<QLine>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_last1(self as *const crate::QVectorOfQLine);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::lastIndexOf(const QLine& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_lastIndexOf(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::lastIndexOf(const QLine& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_lastIndexOf1(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_length(self as *const crate::QVectorOfQLine)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine> QVector<QLine>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_mid(
            self as *const crate::QVectorOfQLine,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine> QVector<QLine>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_mid1(
            self as *const crate::QVectorOfQLine,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_move(
            self as *mut crate::QVectorOfQLine,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QLine>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QLine>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(size: ::std::os::raw::c_int) -> ::cpp_core::CppBox<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QLine>::QVector(int size, const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QLine>::QVector(const QVector<QLine>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLine>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLine>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_pop_back(self as *mut crate::QVectorOfQLine)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_pop_front(self as *mut crate::QVectorOfQLine)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::prepend(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_prepend(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::push_back(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_push_back(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::push_front(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_push_front(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_remove(self as *mut crate::QVectorOfQLine, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_remove1(self as *mut crate::QVectorOfQLine, i, n)
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::removeAll(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_removeAll(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_removeAt(self as *mut crate::QVectorOfQLine, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_removeFirst(self as *mut crate::QVectorOfQLine)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_removeLast(self as *mut crate::QVectorOfQLine)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::removeOne(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_removeOne(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::replace(int i, const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_replace(
            self as *mut crate::QVectorOfQLine,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_reserve(self as *mut crate::QVectorOfQLine, size)
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_resize(self as *mut crate::QVectorOfQLine, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_setSharable(
            self as *mut crate::QVectorOfQLine,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_shrink_to_fit(self as *mut crate::QVectorOfQLine)
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_size(self as *const crate::QVectorOfQLine)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_squeeze(self as *mut crate::QVectorOfQLine)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::startsWith(const QLine& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_startsWith(
            self as *const crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QLine>::swap(QVector<QLine>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQLine>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_swap(
            self as *mut crate::QVectorOfQLine,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQLine>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine QVector<QLine>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_takeAt(
            self as *mut crate::QVectorOfQLine,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine QVector<QLine>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_takeFirst(
            self as *mut crate::QVectorOfQLine,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine QVector<QLine>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_takeLast(self as *mut crate::QVectorOfQLine);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine QVector<QLine>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_value(
            self as *const crate::QVectorOfQLine,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine QVector<QLine>::value(int i, const QLine& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QLine>>,
    ) -> ::cpp_core::CppBox<::qt_core::QLine> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_value1(
            self as *const crate::QVectorOfQLine,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QLine>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QRectF>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQRectF {
    _unused: u8,
}
impl QVectorOfQRectF {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::append(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_rect_f(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_append(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::append(const QVector<QRectF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_rect_f(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_append2(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRectF>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF& QVector<QRectF>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_at(
            self as *const crate::QVectorOfQRectF,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF& QVector<QRectF>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_back(self as *mut crate::QVectorOfQRectF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF& QVector<QRectF>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_back1(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_capacity(self as *const crate::QVectorOfQRectF)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_clear(self as *mut crate::QVectorOfQRectF)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF* QVector<QRectF>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_constData(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF& QVector<QRectF>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_constFirst(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF& QVector<QRectF>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_constLast(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::contains(const QRectF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_contains(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF>& QVector<QRectF>::operator=(const QVector<QRectF>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRectF>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator_(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRectF>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::count(const QRectF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_count(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_count1(self as *const crate::QVectorOfQRectF)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF* QVector<QRectF>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_data(self as *mut crate::QVectorOfQRectF);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF* QVector<QRectF>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_data1(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_detach(self as *mut crate::QVectorOfQRectF)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_empty(self as *const crate::QVectorOfQRectF)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::endsWith(const QRectF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_endsWith(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF>& QVector<QRectF>::fill(const QRectF& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_fill(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF>& QVector<QRectF>::fill(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_fill1(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF& QVector<QRectF>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_first(self as *mut crate::QVectorOfQRectF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF& QVector<QRectF>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_first1(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF& QVector<QRectF>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_front(self as *mut crate::QVectorOfQRectF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF& QVector<QRectF>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_front1(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF& QVector<QRectF>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator__2(
            self as *mut crate::QVectorOfQRectF,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF& QVector<QRectF>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator__3(
            self as *const crate::QVectorOfQRectF,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::indexOf(const QRectF& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_indexOf(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::indexOf(const QRectF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_indexOf1(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::insert(int i, const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_insert(
            self as *mut crate::QVectorOfQRectF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::insert(int i, int n, const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_insert1(
            self as *mut crate::QVectorOfQRectF,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_isDetached(
            self as *const crate::QVectorOfQRectF,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_isEmpty(self as *const crate::QVectorOfQRectF)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::isSharedWith(const QVector<QRectF>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRectF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_isSharedWith(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRectF>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF& QVector<QRectF>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_last(self as *mut crate::QVectorOfQRectF);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF& QVector<QRectF>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_last1(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::lastIndexOf(const QRectF& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_lastIndexOf(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::lastIndexOf(const QRectF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_lastIndexOf1(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_length(self as *const crate::QVectorOfQRectF)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF> QVector<QRectF>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_mid(
            self as *const crate::QVectorOfQRectF,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF> QVector<QRectF>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_mid1(
            self as *const crate::QVectorOfQRectF,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_move(
            self as *mut crate::QVectorOfQRectF,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QRectF>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QRectF>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QRectF>::QVector(int size, const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QRectF>::QVector(const QVector<QRectF>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRectF>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_QVector3(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRectF>>::cast_into(v)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_pop_back(self as *mut crate::QVectorOfQRectF)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_pop_front(self as *mut crate::QVectorOfQRectF)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::prepend(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_prepend(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::push_back(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_push_back(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::push_front(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_push_front(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_remove(self as *mut crate::QVectorOfQRectF, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_remove1(
            self as *mut crate::QVectorOfQRectF,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::removeAll(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_removeAll(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_removeAt(self as *mut crate::QVectorOfQRectF, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_removeFirst(self as *mut crate::QVectorOfQRectF)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_removeLast(self as *mut crate::QVectorOfQRectF)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::removeOne(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_removeOne(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::replace(int i, const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_replace(
            self as *mut crate::QVectorOfQRectF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_reserve(
            self as *mut crate::QVectorOfQRectF,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_resize(
            self as *mut crate::QVectorOfQRectF,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_setSharable(
            self as *mut crate::QVectorOfQRectF,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_shrink_to_fit(
            self as *mut crate::QVectorOfQRectF,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_size(self as *const crate::QVectorOfQRectF)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_squeeze(self as *mut crate::QVectorOfQRectF)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::startsWith(const QRectF& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_startsWith(
            self as *const crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QRectF>::swap(QVector<QRectF>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_swap(
            self as *mut crate::QVectorOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQRectF>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QVector<QRectF>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_takeAt(
            self as *mut crate::QVectorOfQRectF,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QVector<QRectF>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_takeFirst(
            self as *mut crate::QVectorOfQRectF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QVector<QRectF>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_takeLast(
            self as *mut crate::QVectorOfQRectF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QVector<QRectF>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_value(
            self as *const crate::QVectorOfQRectF,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF QVector<QRectF>::value(int i, const QRectF& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_value1(
            self as *const crate::QVectorOfQRectF,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_q_standard_item {
    //! C++ type: <span style='color: green;'>```QList<QStandardItem*>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QStandardItem*>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator& QList<QStandardItem*>::iterator::operator=(const QList<QStandardItem*>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_8(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator& QList<QStandardItem*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__13(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator& QList<QStandardItem*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__11(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QStandardItem*& QList<QStandardItem*>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<*mut crate::QStandardItem> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__1(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                    j,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QStandardItem*& QList<QStandardItem*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QStandardItem> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QStandardItem*>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QStandardItem*>::iterator::iterator(const QList<QStandardItem*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QStandardItem** QList<QStandardItem*>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<*mut crate::QStandardItem> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QStandardItem*>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator& QList<QStandardItem*>::const_iterator::operator=(const QList<QStandardItem*>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator& QList<QStandardItem*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator& QList<QStandardItem*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QStandardItem*>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator>
        {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_const_iterator(
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QStandardItem*>::const_iterator::const_iterator(const QList<QStandardItem*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_const_iterator2(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QStandardItem*>::const_iterator::const_iterator(const QList<QStandardItem*>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
            >,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_const_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_standard_item::Iterator {
        type Output = ::cpp_core::MutRef<*mut crate::QStandardItem>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QStandardItem*& QList<QStandardItem*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QStandardItem> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator==(const QList<QStandardItem*>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__2(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator<(const QList<QStandardItem*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_1(
                self as *const crate::q_list_of_q_standard_item::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator<=(const QList<QStandardItem*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__4(
                self as *const crate::q_list_of_q_standard_item::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator>(const QList<QStandardItem*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_2(
                self as *const crate::q_list_of_q_standard_item::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator>=(const QList<QStandardItem*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__5(
                self as *const crate::q_list_of_q_standard_item::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator==(const QList<QStandardItem*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__6(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator<(const QList<QStandardItem*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_3(
                self as *const crate::q_list_of_q_standard_item::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator<=(const QList<QStandardItem*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__8(
                self as *const crate::q_list_of_q_standard_item::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator>(const QList<QStandardItem*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_4(
                self as *const crate::q_list_of_q_standard_item::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::iterator::operator>=(const QList<QStandardItem*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__9(
                self as *const crate::q_list_of_q_standard_item::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_standard_item::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_standard_item::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator& QList<QStandardItem*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_standard_item::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_standard_item::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator& QList<QStandardItem*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator& QList<QStandardItem*>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__14(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_standard_item::Iterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator& QList<QStandardItem*>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator__15(
                    self as *mut crate::q_list_of_q_standard_item::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_standard_item::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_5(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_standard_item::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_6(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>
        for &crate::q_list_of_q_standard_item::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QStandardItem*>::iterator::operator-(QList<QStandardItem*>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_operator_7(
                    self as *const crate::q_list_of_q_standard_item::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::const_iterator::operator==(const QList<QStandardItem*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_standard_item::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::const_iterator::operator<(const QList<QStandardItem*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator_1(
                self as *const crate::q_list_of_q_standard_item::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::const_iterator::operator<=(const QList<QStandardItem*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__4(
                self as *const crate::q_list_of_q_standard_item::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::const_iterator::operator>(const QList<QStandardItem*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator_2(
                self as *const crate::q_list_of_q_standard_item::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for crate::q_list_of_q_standard_item::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::const_iterator::operator>=(const QList<QStandardItem*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__5(
                self as *const crate::q_list_of_q_standard_item::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_standard_item::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_standard_item::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator& QList<QStandardItem*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_standard_item::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_standard_item::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator& QList<QStandardItem*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_standard_item::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator& QList<QStandardItem*>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_standard_item::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator& QList<QStandardItem*>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_standard_item::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_standard_item::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_standard_item::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong>
        for &crate::q_list_of_q_standard_item::ConstIterator
    {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_standard_item::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>>
        for &crate::q_list_of_q_standard_item::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QStandardItem*>::const_iterator::operator-(QList<QStandardItem*>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_standard_item::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_standard_item::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_standard_item::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QStandardItem*>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_iterator_diterator(
                self as *mut crate::q_list_of_q_standard_item::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_standard_item::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QStandardItem*>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_standard_item::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QStandardItem*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQStandardItem {
    _unused: u8,
}
impl QListOfQStandardItem {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::append(const QList<QStandardItem*>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_append1(
            self as *mut crate::QListOfQStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem*& QList<QStandardItem*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&mut self) -> ::cpp_core::MutRef<*mut crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_back(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_begin(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_begin1(
            self as *const crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_cbegin(
            self as *const crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_cend(
            self as *const crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_clear(
            self as *mut crate::QListOfQStandardItem,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_constBegin(
            self as *const crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_constEnd(
            self as *const crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>& QList<QStandardItem*>::operator=(const QList<QStandardItem*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_operator_(
            self as *mut crate::QListOfQStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QStandardItem*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_count1(
            self as *const crate::QListOfQStandardItem,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_detach(
            self as *mut crate::QListOfQStandardItem,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_detachShared(
            self as *mut crate::QListOfQStandardItem,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_empty(
            self as *const crate::QListOfQStandardItem,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_end(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_end1(
            self as *const crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::erase(QList<QStandardItem*>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_erase(self as *mut crate::QListOfQStandardItem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::erase(QList<QStandardItem*>::iterator first, QList<QStandardItem*>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_erase1(self as *mut crate::QListOfQStandardItem, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_standard_item::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem*& QList<QStandardItem*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first(&mut self) -> ::cpp_core::MutRef<*mut crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_first(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem*& QList<QStandardItem*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&mut self) -> ::cpp_core::MutRef<*mut crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_front(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem*& QList<QStandardItem*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<*mut crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_operator__3(
            self as *mut crate::QListOfQStandardItem,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_isDetached(
            self as *const crate::QListOfQStandardItem,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_isEmpty(
            self as *const crate::QListOfQStandardItem,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::isSharedWith(const QList<QStandardItem*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_isSharedWith(
            self as *const crate::QListOfQStandardItem,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem*& QList<QStandardItem*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last(&mut self) -> ::cpp_core::MutRef<*mut crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_last(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QStandardItem*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_length(
            self as *const crate::QListOfQStandardItem,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QList<QStandardItem*>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_mid(
            self as *const crate::QListOfQStandardItem,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QList<QStandardItem*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_mid1(
            self as *const crate::QListOfQStandardItem,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_move(
            self as *mut crate::QListOfQStandardItem,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QStandardItem*>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QStandardItem*>::QList(const QList<QStandardItem*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_pop_back(
            self as *mut crate::QListOfQStandardItem,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_pop_front(
            self as *mut crate::QListOfQStandardItem,
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_removeAt(
            self as *mut crate::QListOfQStandardItem,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_removeFirst(
            self as *mut crate::QListOfQStandardItem,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_removeLast(
            self as *mut crate::QListOfQStandardItem,
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_reserve(
            self as *mut crate::QListOfQStandardItem,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_setSharable(
            self as *mut crate::QListOfQStandardItem,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QStandardItem*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_size(
            self as *const crate::QListOfQStandardItem,
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::swap(QList<QStandardItem*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_swap(
            self as *mut crate::QListOfQStandardItem,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQStandardItem>>::cast_into(
                other,
            )
            .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_swap1(
            self as *mut crate::QListOfQStandardItem,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QStandardItem*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_swapItemsAt(
            self as *mut crate::QListOfQStandardItem,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QList<QStandardItem*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_takeAt(
            self as *mut crate::QListOfQStandardItem,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QList<QStandardItem*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_takeFirst(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QList<QStandardItem*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_takeLast(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStandardItem* QList<QStandardItem*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_value(
            self as *const crate::QListOfQStandardItem,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

pub mod q_list_of_q_text_block {
    //! C++ type: <span style='color: green;'>```QList<QTextBlock>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTextBlock>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator& QList<QTextBlock>::iterator::operator=(const QList<QTextBlock>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_8(self as *mut crate::q_list_of_q_text_block::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator& QList<QTextBlock>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__12(
                self as *mut crate::q_list_of_q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__13(
                self as *mut crate::q_list_of_q_text_block::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator& QList<QTextBlock>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__10(
                self as *mut crate::q_list_of_q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__11(
                self as *mut crate::q_list_of_q_text_block::Iterator,
                arg1,
            );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock& QList<QTextBlock>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<crate::QTextBlock> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__1(
                self as *const crate::q_list_of_q_text_block::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock& QList<QTextBlock>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QTextBlock> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_(
                self as *const crate::q_list_of_q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextBlock>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextBlock>::iterator::iterator(const QList<QTextBlock>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock* QList<QTextBlock>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<crate::QTextBlock> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__(
                self as *const crate::q_list_of_q_text_block::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTextBlock>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator& QList<QTextBlock>::const_iterator::operator=(const QList<QTextBlock>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator& QList<QTextBlock>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator& QList<QTextBlock>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::const_iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValue const_iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::Ref<crate::QTextBlock> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__1(
                    self as *const crate::q_list_of_q_text_block::ConstIterator,
                    j,
                );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QTextBlock> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator_(
                self as *const crate::q_list_of_q_text_block::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextBlock>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextBlock>::const_iterator::const_iterator(const QList<QTextBlock>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextBlock>::const_iterator::const_iterator(const QList<QTextBlock>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_const_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current result.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextBlock* QList<QTextBlock>::const_iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qfuture-const-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current result.</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::Ptr<crate::QTextBlock> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__(
                    self as *const crate::q_list_of_q_text_block::ConstIterator,
                );
            ::cpp_core::Ptr::from_raw(ffi_result)
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_text_block::Iterator {
        type Output = ::cpp_core::MutRef<crate::QTextBlock>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextBlock& QList<QTextBlock>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<crate::QTextBlock> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_(
                self as *const crate::q_list_of_q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator==(const QList<QTextBlock>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__2(
                    self as *const crate::q_list_of_q_text_block::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator<(const QList<QTextBlock>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_1(
                self as *const crate::q_list_of_q_text_block::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator<=(const QList<QTextBlock>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__4(
                self as *const crate::q_list_of_q_text_block::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator>(const QList<QTextBlock>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_2(
                self as *const crate::q_list_of_q_text_block::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator>=(const QList<QTextBlock>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__5(
                self as *const crate::q_list_of_q_text_block::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator==(const QList<QTextBlock>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__6(
                    self as *const crate::q_list_of_q_text_block::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator<(const QList<QTextBlock>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_3(
                self as *const crate::q_list_of_q_text_block::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator<=(const QList<QTextBlock>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__8(
                self as *const crate::q_list_of_q_text_block::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator>(const QList<QTextBlock>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_4(
                self as *const crate::q_list_of_q_text_block::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::iterator::operator>=(const QList<QTextBlock>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__9(
                self as *const crate::q_list_of_q_text_block::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_text_block::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_text_block::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator& QList<QTextBlock>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__10(
                self as *mut crate::q_list_of_q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_text_block::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_text_block::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator& QList<QTextBlock>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__12(
                self as *mut crate::q_list_of_q_text_block::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_text_block::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator& QList<QTextBlock>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__14(
                    self as *mut crate::q_list_of_q_text_block::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_text_block::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator& QList<QTextBlock>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator__15(
                    self as *mut crate::q_list_of_q_text_block::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_text_block::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_5(
                    self as *const crate::q_list_of_q_text_block::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_text_block::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_6(
                    self as *const crate::q_list_of_q_text_block::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>
        for &crate::q_list_of_q_text_block::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::iterator::operator-(QList<QTextBlock>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_operator_7(
                    self as *const crate::q_list_of_q_text_block::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_text_block::ConstIterator {
        type Output = ::cpp_core::Ref<crate::QTextBlock>;
        /// <p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::const_iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current value, converted to a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::Ref<crate::QTextBlock> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator_(
                self as *const crate::q_list_of_q_text_block::ConstIterator,
            );
            ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::const_iterator::operator==(const QList<QTextBlock>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_text_block::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::const_iterator::operator<(const QList<QTextBlock>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator_1(
                self as *const crate::q_list_of_q_text_block::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::const_iterator::operator<=(const QList<QTextBlock>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__4(
                self as *const crate::q_list_of_q_text_block::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::const_iterator::operator>(const QList<QTextBlock>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator_2(
                self as *const crate::q_list_of_q_text_block::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for crate::q_list_of_q_text_block::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::const_iterator::operator>=(const QList<QTextBlock>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__5(
                self as *const crate::q_list_of_q_text_block::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_text_block::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_text_block::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator& QList<QTextBlock>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_text_block::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_text_block::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator& QList<QTextBlock>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_text_block::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator& QList<QTextBlock>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_text_block::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator& QList<QTextBlock>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_text_block::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_text_block::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_text_block::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_text_block::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_text_block::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>>
        for &crate::q_list_of_q_text_block::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::const_iterator::operator-(QList<QTextBlock>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_text_block::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_text_block::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_text_block::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextBlock>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_iterator_diterator(
                self as *mut crate::q_list_of_q_text_block::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_text_block::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextBlock>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_text_block::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QTextBlock>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQTextBlock {
    _unused: u8,
}
impl QListOfQTextBlock {
    /// <p>Inserts <i>value</i> at the end of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::append(const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["one", "two", "three"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_text_block(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_append(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::append(const QList<QTextBlock>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_list_of_q_text_block(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_append1(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextBlock>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the list. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>This function is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_at(
            self as *const crate::QListOfQTextBlock,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock& QList<QTextBlock>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_back(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_back1(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_begin(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_begin1(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_cbegin(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_cend(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_clear(self as *mut crate::QListOfQTextBlock)
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_constBegin(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_constEnd(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_constFirst(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_constLast(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::contains(const QTextBlock& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_contains(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>& QList<QTextBlock>::operator=(const QList<QTextBlock>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextBlock>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator_(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextBlock>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::count(const QTextBlock& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the list.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_count(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_count1(
            self as *const crate::QListOfQTextBlock,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_detach(self as *mut crate::QListOfQTextBlock)
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_detachShared(
            self as *mut crate::QListOfQTextBlock,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_empty(self as *const crate::QListOfQTextBlock)
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_end(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_end1(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::endsWith(const QTextBlock& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_endsWith(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::erase(QList<QTextBlock>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_erase(self as *mut crate::QListOfQTextBlock, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::erase(QList<QTextBlock>::iterator first, QList<QTextBlock>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_erase1(self as *mut crate::QListOfQTextBlock, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock& QList<QTextBlock>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_first(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_first1(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock& QList<QTextBlock>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_front(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_front1(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>(). This function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator__2(
            self as *const crate::QListOfQTextBlock,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock& QList<QTextBlock>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator__3(
            self as *mut crate::QListOfQTextBlock,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::indexOf(const QTextBlock& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_indexOf(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::indexOf(const QTextBlock& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the list, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span>);          <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);       <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);       <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>indexOf(<span class="string">"X"</span>);          <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_indexOf1(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::insert(int i, const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the list. If <i>i</i> &lt;= 0, the value is prepended to the list. If <i>i</i> &gt;= <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(), the value is appended to the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   list<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// list: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_int_q_text_block(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_insert(
            self as *mut crate::QListOfQTextBlock,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::insert(QList<QTextBlock>::iterator before, const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>value</i> in front of the item pointed to by the iterator <i>before</i>. Returns an iterator pointing at the inserted item. Note that the iterator passed to the function will be invalid after the call; the returned iterator should be used instead.</p></div>
    #[inline(always)]
    pub unsafe fn insert_iterator_q_text_block(
        &mut self,
        before: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_insert1(self as *mut crate::QListOfQTextBlock, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_block::Iterator>>::cast_into(before).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_isDetached(
            self as *const crate::QListOfQTextBlock,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_isEmpty(
            self as *const crate::QListOfQTextBlock,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::isSharedWith(const QList<QTextBlock>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextBlock>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_isSharedWith(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextBlock>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock& QList<QTextBlock>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_last(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextBlock& QList<QTextBlock>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_last1(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::lastIndexOf(const QTextBlock& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_lastIndexOf(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::lastIndexOf(const QTextBlock& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of <i>value</i> in the list, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);      <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);   <span class="comment">// returns 3</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);   <span class="comment">// returns 1</span>
    ///   list<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);      <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>Note that <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. Negative indexes are not supported with the exception of the value mentioned above.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_lastIndexOf1(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_length(
            self as *const crate::QListOfQTextBlock,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock> QList<QTextBlock>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_mid(
            self as *const crate::QListOfQTextBlock,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock> QList<QTextBlock>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_mid1(
            self as *const crate::QListOfQTextBlock,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_move(
            self as *mut crate::QListOfQTextBlock,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextBlock>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextBlock>::QList(const QList<QTextBlock>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextBlock>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextBlock>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_pop_back(
            self as *mut crate::QListOfQTextBlock,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_pop_front(
            self as *mut crate::QListOfQTextBlock,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::prepend(const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the list.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   list<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// list: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as list.insert(0, <i>value</i>).</p>
    /// <p>If this list is not shared, this operation is typically very fast (amortized <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_prepend(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::push_back(const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_push_back(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::push_front(const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_push_front(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::removeAll(const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all occurrences of <i>value</i> in the list and returns the number of entries removed.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeAll(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_removeAll(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_removeAt(
            self as *mut crate::QListOfQTextBlock,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_removeFirst(
            self as *mut crate::QListOfQTextBlock,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_removeLast(
            self as *mut crate::QListOfQTextBlock,
        )
    }

    /// <p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::removeOne(const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first occurrence of <i>value</i> in the list and returns true on success; otherwise returns <code>false</code>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"cloud"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"sun"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"rain"</span>;
    ///   list<span class="operator">.</span>removeOne(<span class="string">"sun"</span>);
    ///   <span class="comment">// list: ["cloud", ,"sun", "rain"]</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p>This function was introduced in  Qt 4.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_removeOne(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::replace(int i, const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_replace(
            self as *mut crate::QListOfQTextBlock,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_reserve(
            self as *mut crate::QListOfQTextBlock,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_setSharable(
            self as *mut crate::QListOfQTextBlock,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_size(self as *const crate::QListOfQTextBlock)
    }

    /// <p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::startsWith(const QTextBlock& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this list is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_startsWith(
            self as *const crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(t).as_raw_ptr(),
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::swap(QList<QTextBlock>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_swap(
            self as *mut crate::QListOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQTextBlock>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_swap1(
            self as *mut crate::QListOfQTextBlock,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextBlock>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_swapItemsAt(
            self as *mut crate::QListOfQTextBlock,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QList<QTextBlock>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_takeAt(
            self as *mut crate::QListOfQTextBlock,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QList<QTextBlock>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_takeFirst(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QList<QTextBlock>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_takeLast(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QList<QTextBlock>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_value(
            self as *const crate::QListOfQTextBlock,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QList<QTextBlock>::value(int i, const QTextBlock& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_value1(
            self as *const crate::QListOfQTextBlock,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(default_value)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_list_of_q_text_frame {
    //! C++ type: <span style='color: green;'>```QList<QTextFrame*>```</span>

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTextFrame*>::iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct Iterator {
        _unused: u8,
    }
    impl Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator& QList<QTextFrame*>::iterator::operator=(const QList<QTextFrame*>::iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_8(self as *mut crate::q_list_of_q_text_frame::Iterator, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>::cast_into(other).as_raw_ptr());
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator& QList<QTextFrame*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_text_frame::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>i--</code>) makes the preceding item current and returns an iterator pointing to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__13(
                    self as *mut crate::q_list_of_q_text_frame::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator& QList<QTextFrame*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_text_frame::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>i++</code>) advances the iterator to the next item in the hash and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__11(
                    self as *mut crate::q_list_of_q_text_frame::Iterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame*& QList<QTextFrame*>::iterator::operator[](long long j) const```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-5b-5d">C++ documentation</a> for <span style='color: green;'>```QJsonValueRef iterator::operator[](int j) const```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the item at offset <i>j</i> from the item pointed to by this iterator (the item at position <code>*this + j</code>).</p>
        /// <p>This function is provided to make <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> iterators behave like C++ pointers.</p>
        /// <p>The return value is of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, a helper class for <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> and <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a>. When you get an object of type <a href="http://doc.qt.io/qt-5/qjsonvalue.html#qjsonvalueref">QJsonValueRef</a>, you can use it as if it were a reference to a <a href="http://doc.qt.io/qt-5/qjsonvalue.html">QJsonValue</a>. If you assign to it, the assignment will apply to the character in the <a href="http://doc.qt.io/qt-5/qjsonarray.html">QJsonArray</a> of <a href="http://doc.qt.io/qt-5/qjsonobject.html">QJsonObject</a> from which you got the reference.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        pub unsafe fn index(
            &self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::MutRef<*mut crate::QTextFrame> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__1(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                j,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame*& QList<QTextFrame*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        pub unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QTextFrame> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_(
                self as *const crate::q_list_of_q_text_frame::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextFrame*>::iterator::iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html#iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new() -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextFrame*>::iterator::iterator(const QList<QTextFrame*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_iterator1(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Returns a pointer to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame** QList<QTextFrame*>::iterator::operator->() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the current item's value.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p></div>
        #[inline(always)]
        pub unsafe fn struct_deref(&self) -> ::cpp_core::MutPtr<*mut crate::QTextFrame> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__(
                self as *const crate::q_list_of_q_text_frame::Iterator,
            );
            ::cpp_core::MutPtr::from_raw(ffi_result)
        }
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    ///
    /// C++ class: <span style='color: green;'>```QList<QTextFrame*>::const_iterator```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
    /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
    ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
    ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
    /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
    ///
    /// </pre>
    /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
    #[repr(C)]
    pub struct ConstIterator {
        _unused: u8,
    }
    impl ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator& QList<QTextFrame*>::const_iterator::operator=(const QList<QTextFrame*>::const_iterator& other)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        pub unsafe fn copy_from(
            &mut self,
            other: impl ::cpp_core::CastInto<
                ::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
            >,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator_6(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
                    >::cast_into(other)
                    .as_raw_ptr(),
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator& QList<QTextFrame*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        pub unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::const_iterator::operator--(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator---1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix -- operator (<code>it--</code>) makes the preceding item current and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn dec_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__9(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator& QList<QTextFrame*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        pub unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }

        /// <p>This is an overloaded function.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::const_iterator::operator++(int arg1)```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
        /// <p>The postfix ++ operator (<code>it++</code>) advances the iterator to the next item in the container and returns an iterator to the previously current item.</p></div>
        #[inline(always)]
        pub unsafe fn inc_postfix(
            &mut self,
            arg1: ::std::os::raw::c_int,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__7(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                    arg1,
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// <p>Constructs an uninitialized iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextFrame*>::const_iterator::const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html#const_iterator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an uninitialized iterator.</p>
        /// <p>Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>().</p></div>
        #[inline(always)]
        pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_const_iterator();
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextFrame*>::const_iterator::const_iterator(const QList<QTextFrame*>::iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_1a(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_const_iterator2(::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>::cast_into(o).as_raw_ptr());
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }

        /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextFrame*>::const_iterator::const_iterator(const QList<QTextFrame*>::const_iterator& o)```</span>.
        #[inline(always)]
        pub unsafe fn new_copy(
            o: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_const_iterator1(
                    ::cpp_core::CastInto::<
                        ::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
                    >::cast_into(o)
                    .as_raw_ptr(),
                );
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }

    impl ::cpp_core::ops::Indirection for crate::q_list_of_q_text_frame::Iterator {
        type Output = ::cpp_core::MutRef<*mut crate::QTextFrame>;
        /// <p>Returns a modifiable reference to the current item's value.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QTextFrame*& QList<QTextFrame*>::iterator::operator*() const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a modifiable reference to the current item's value.</p>
        /// <p>Same as <a href="http://doc.qt.io/qt-5/qhash-iterator.html#value">value</a>().</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#key">key</a>().</p></div>
        #[inline(always)]
        unsafe fn indirection(&self) -> ::cpp_core::MutRef<*mut crate::QTextFrame> {
            let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_(
                self as *const crate::q_list_of_q_text_frame::Iterator,
            );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator==(const QList<QTextFrame*>::iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__2(
                    self as *const crate::q_list_of_q_text_frame::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator<(const QList<QTextFrame*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_1(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator<=(const QList<QTextFrame*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__4(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator>(const QList<QTextFrame*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_2(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator>=(const QList<QTextFrame*>::iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__5(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator==(const QList<QTextFrame*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-eq-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__6(
                    self as *const crate::q_list_of_q_text_frame::Iterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator<(const QList<QTextFrame*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_3(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator<=(const QList<QTextFrame*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-lt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__8(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator>(const QList<QTextFrame*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_4(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::Iterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::iterator::operator>=(const QList<QTextFrame*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-iterator.html#operator-gt-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__9(
                self as *const crate::q_list_of_q_text_frame::Iterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_text_frame::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_text_frame::Iterator>;
        /// <p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator& QList<QTextFrame*>::iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++i</code>) advances the iterator to the next item in the hash and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#end">QHash::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__10(
                    self as *mut crate::q_list_of_q_text_frame::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_text_frame::Iterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_text_frame::Iterator>;
        /// <p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator& QList<QTextFrame*>::iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--i</code>) makes the preceding item current and returns an iterator pointing to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qhash.html#begin">QHash::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(&mut self) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__12(
                    self as *mut crate::q_list_of_q_text_frame::Iterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_text_frame::Iterator {
        /// <p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator& QList<QTextFrame*>::iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items. (If <i>j</i> is negative, the iterator goes backward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__14(
                    self as *mut crate::q_list_of_q_text_frame::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong> for crate::q_list_of_q_text_frame::Iterator {
        /// <p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator& QList<QTextFrame*>::iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```iterator &iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items. (If <i>j</i> is negative, the iterator goes forward.)</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qhash-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator__15(
                    self as *mut crate::q_list_of_q_text_frame::Iterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_text_frame::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_5(
                    self as *const crate::q_list_of_q_text_frame::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_text_frame::Iterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_6(
                    self as *const crate::q_list_of_q_text_frame::Iterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>
        for &crate::q_list_of_q_text_frame::Iterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTextFrame*>::iterator::operator-(QList<QTextFrame*>::iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_operator_7(
                    self as *const crate::q_list_of_q_text_frame::Iterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::ConstIterator
    {
        /// <p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::const_iterator::operator==(const QList<QTextFrame*>::const_iterator& o) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> points to the same item as this iterator; otherwise returns <code>false</code>.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-not-eq">operator!=</a>().</p></div>
        #[inline(always)]
        fn eq(&self, o: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>) -> bool {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__2(
                    self as *const crate::q_list_of_q_text_frame::ConstIterator,
                    o.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::const_iterator::operator<(const QList<QTextFrame*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn lt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator_1(
                self as *const crate::q_list_of_q_text_frame::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::const_iterator::operator<=(const QList<QTextFrame*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is less than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn le(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__4(
                self as *const crate::q_list_of_q_text_frame::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::const_iterator::operator>(const QList<QTextFrame*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn gt(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator_2(
                self as *const crate::q_list_of_q_text_frame::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for crate::q_list_of_q_text_frame::ConstIterator
    {
        /// <p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::const_iterator::operator>=(const QList<QTextFrame*>::const_iterator& other) const```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qjsonarray-const-iterator.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the item pointed to by this iterator is greater than or equal to the item pointed to by the <i>other</i> iterator.</p></div>
        #[inline(always)]
        unsafe fn ge(
            &self,
            other: &::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> bool {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__5(
                self as *const crate::q_list_of_q_text_frame::ConstIterator,
                other.as_raw_ptr(),
            )
        }
    }

    impl ::cpp_core::ops::Increment for crate::q_list_of_q_text_frame::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_text_frame::ConstIterator>;
        /// <p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator& QList<QTextFrame*>::const_iterator::operator++()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix ++ operator (<code>++it</code>) advances the iterator to the next item in the container and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#end">QAssociativeIterable::end</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">operator--</a>().</p></div>
        #[inline(always)]
        unsafe fn inc(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__6(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::cpp_core::ops::Decrement for crate::q_list_of_q_text_frame::ConstIterator {
        type Output = ::cpp_core::MutRef<crate::q_list_of_q_text_frame::ConstIterator>;
        /// <p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator& QList<QTextFrame*>::const_iterator::operator--()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The prefix -- operator (<code>--it</code>) makes the preceding item current and returns an iterator to the new current item.</p>
        /// <p>Calling this function on <a href="http://doc.qt.io/qt-5/qassociativeiterable.html#begin">QAssociativeIterable::begin</a>() leads to undefined results.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-2b">operator++</a>().</p></div>
        #[inline(always)]
        unsafe fn dec(
            &mut self,
        ) -> ::cpp_core::MutRef<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result =
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__8(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                );
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }

    impl ::std::ops::AddAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_text_frame::ConstIterator
    {
        /// <p>Advances the iterator by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator& QList<QTextFrame*>::const_iterator::operator+=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator+=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Advances the iterator by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">operator-=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b">operator+</a>().</p></div>
        #[inline(always)]
        fn add_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__10(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::SubAssign<::std::os::raw::c_longlong>
        for crate::q_list_of_q_text_frame::ConstIterator
    {
        /// <p>Makes the iterator go back by <i>j</i> items.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator& QList<QTextFrame*>::const_iterator::operator-=(long long j)```</span>.
        ///
        /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator--eq">C++ documentation</a> for <span style='color: green;'>```const_iterator &const_iterator::operator-=(int j)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Makes the iterator go back by <i>j</i> items.</p>
        /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qassociativeiterable-const-iterator.html#operator-">operator-</a>().</p></div>
        #[inline(always)]
        fn sub_assign(&mut self, j: ::std::os::raw::c_longlong) {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator__11(
                    self as *mut crate::q_list_of_q_text_frame::ConstIterator,
                    j,
                )
            };
            let _ = ffi_result;
        }
    }

    impl ::std::ops::Add<::std::os::raw::c_longlong> for &crate::q_list_of_q_text_frame::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::const_iterator::operator+(long long j) const```</span>.
        #[inline(always)]
        fn add(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator_3(
                    self as *const crate::q_list_of_q_text_frame::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::std::os::raw::c_longlong> for &crate::q_list_of_q_text_frame::ConstIterator {
        type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator>;
        /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::const_iterator::operator-(long long j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::std::os::raw::c_longlong,
        ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
            let ffi_result = unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator_4(
                    self as *const crate::q_list_of_q_text_frame::ConstIterator,
                    j,
                )
            };
            unsafe {
                ::cpp_core::CppBox::from_raw(ffi_result)
                    .expect("attempted to construct a null CppBox")
            }
        }
    }

    impl ::std::ops::Sub<::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>>
        for &crate::q_list_of_q_text_frame::ConstIterator
    {
        type Output = ::std::os::raw::c_int;
        /// Calls C++ function: <span style='color: green;'>```int QList<QTextFrame*>::const_iterator::operator-(QList<QTextFrame*>::const_iterator j) const```</span>.
        #[inline(always)]
        fn sub(
            self,
            j: ::cpp_core::Ref<crate::q_list_of_q_text_frame::ConstIterator>,
        ) -> ::std::os::raw::c_int {
            unsafe {
                crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_operator_5(
                    self as *const crate::q_list_of_q_text_frame::ConstIterator,
                    j.as_raw_ptr(),
                )
            }
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_text_frame::Iterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextFrame*>::iterator::~iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> class provides an STL-style non-const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> features both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;) and to modify the list item associated with the iterator. If you want to iterate over a const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#begin">QList::begin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#end">QList::end</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Let's see a few examples of things we can do with a <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> that we cannot do with a <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a>. Here's an example that increments every value stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;int&gt; by 2:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span><span class="operator">::</span>iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>begin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>end(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     <span class="operator">*</span>i <span class="operator">+</span><span class="operator">=</span> <span class="number">2</span>;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>begin()<span class="operator">,</span> list<span class="operator">.</span>end());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_iterator_diterator(
                self as *mut crate::q_list_of_q_text_frame::Iterator,
            )
        }
    }

    impl ::cpp_core::CppDeletable for crate::q_list_of_q_text_frame::ConstIterator {
        /// <p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        ///
        /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextFrame*>::const_iterator::~const_iterator()```</span>.
        ///
        /// <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> class provides an STL-style const iterator for <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> and <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides both <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> and <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a>. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.</p>
        /// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;::const_iterator allows you to iterate over a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; (or a <a href="http://doc.qt.io/qt-5/qqueue.html">QQueue</a>&lt;T&gt;). If you want to modify the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as you iterate over it, use <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a> instead. It is generally good practice to use <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> on a non-const <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as well, unless you need to change the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> through the iterator. Const iterators are slightly faster, and can improve code readability.</p>
        /// <p>The default <a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> constructor creates an uninitialized iterator. You must initialize it using a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> function like <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">QList::constBegin</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">QList::constEnd</a>(), or <a href="http://doc.qt.io/qt-5/qlist.html#insert">QList::insert</a>() before you can start iterating. Here's a typical loop that prints all the items stored in a list:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
        ///   list<span class="operator">.</span>append(<span class="string">"January"</span>);
        ///   list<span class="operator">.</span>append(<span class="string">"February"</span>);
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   list<span class="operator">.</span>append(<span class="string">"December"</span>);
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i;
        ///   <span class="keyword">for</span> (i <span class="operator">=</span> list<span class="operator">.</span>constBegin(); i <span class="operator">!</span><span class="operator">=</span> list<span class="operator">.</span>constEnd(); <span class="operator">+</span><span class="operator">+</span>i)
        /// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
        ///
        /// </pre>
        /// <p>Most <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> functions accept an integer index rather than an iterator. For that reason, iterators are rarely useful in connection with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. One place where STL-style iterators do make sense is as arguments to <a href="http://doc.qt.io/qt-5/qtalgorithms.html">generic algorithms</a>.</p>
        /// <p>For example, here's how to delete all the widgets stored in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt;:</p>
        /// <pre class="cpp">
        ///
        ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
        ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
        ///   <a href="http://doc.qt.io/qt-5/qtalgorithms.html#qDeleteAll">qDeleteAll</a>(list<span class="operator">.</span>constBegin()<span class="operator">,</span> list<span class="operator">.</span>constEnd());
        ///
        /// </pre>
        /// <p>Multiple iterators can be used on the same list. However, be aware that any non-const function call performed on the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> will render all existing iterators undefined. If you need to keep iterators over a long period of time, we recommend that you use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> rather than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
        /// <p><b>Warning:</b> Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read <a href="http://doc.qt.io/qt-5/containers.html#implicit-sharing-iterator-problem">Implicit sharing iterator problem</a>.</p></div>
        #[inline(always)]
        unsafe fn delete(&mut self) {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_const_iterator_dconst_iterator(
                self as *mut crate::q_list_of_q_text_frame::ConstIterator,
            )
        }
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
///
/// C++ class: <span style='color: green;'>```QList<QTextFrame*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qlist.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> class is a template class that provides lists.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores items in a list that provides fast index-based access and index-based insertions and removals.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Internally, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T if <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. Otherwise, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; is represented as an array of T* and the items are allocated on the heap.</p>
/// <p>The array representation allows very fast insertions and index-based access. The <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() operations are also very fast because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates memory at both ends of its internal array. (See <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">Algorithmic Complexity</a> for details.</p>
/// <p>Note, however, that when the conditions specified above are not met, each append or insert of a new item requires allocating the new item on the heap, and this per item allocation will make <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> a better choice for use cases that do a lot of appending or inserting, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> can allocate memory for many items in a single heap allocation.</p>
/// <p>Note that the internal array only ever gets bigger over the life of the list. It never shrinks. The internal array is deallocated by the destructor and by the assignment operator, when one list is assigned to another.</p>
/// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> that stores <a href="http://doc.qt.io/qt-5/qdate.html">QDate</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerList;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qdate.html">QDate</a></span><span class="operator">&gt;</span> dateList;
///
/// </pre>
/// <p>Qt includes a <a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> class that inherits <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;<a href="http://doc.qt.io/qt-5/qstring.html">QString</a>&gt; and adds a few convenience functions, such as <a href="http://doc.qt.io/qt-5/qstringlist.html#join">QStringList::join</a>() and <a href="http://doc.qt.io/qt-5/qstringlist.html#filter">QStringList::filter</a>(). <a href="http://doc.qt.io/qt-5/qstring.html#split">QString::split</a>() creates QStringLists from strings.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator&lt;&lt;():</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"one"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"two"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"three"</span>;
///   <span class="comment">// list: ["one", "two", "three"]</span>
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(). In addition, it provides the following convenience functions: <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item and can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Bob"</span>)
/// &#32;     list<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Robert"</span>;
///
/// </pre>
/// <p>Because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented as an array of pointers for types that are larger than a pointer or are not movable, this operation requires (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>). For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> list<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (list<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Jane"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Jane at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>A common requirement is to remove an item from a list and do something with it. For this, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(). Here's a loop that removes the items from a list one at a time and calls <code>delete</code> on them:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> list;
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="keyword">while</span> (<span class="operator">!</span>list<span class="operator">.</span>isEmpty())
/// &#32;     <span class="keyword">delete</span> list<span class="operator">.</span>takeFirst();
///
/// </pre>
/// <p>Inserting and removing items at either end of the list is very fast (<a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> in most cases), because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> preallocates extra space on both sides of its internal buffer to allow for fast growth at both ends of the list.</p>
/// <p>If you want to find all occurrences of a particular value in a list, use <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of a matching item if they find it; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> list<span class="operator">.</span>indexOf(<span class="string">"Jane"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Jane is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a list contains a particular value, use <a href="http://doc.qt.io/qt-5/qlist.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the list, use <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>(). If you want to replace all occurrences of a particular value with another, use <a href="http://doc.qt.io/qt-5/qlist.html#replace">replace</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qlist.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlistiterator.html">QListIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablelistiterator.html">QMutableListIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qlist-const-iterator.html">QList::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qlist-iterator.html">QList::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is implemented in such a way that direct index-based access is just as fast as using iterators.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <p>To make <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> as efficient as possible, its member functions don't validate their input before using it. Except for <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>(), member functions always assume the list is <i>not</i> empty. Member functions that take index values as parameters always assume their index value parameters are in the valid range. This means <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> member functions can fail. If you define QT_NO_DEBUG when you compile, failures will not be detected. If you <i>don't</i> define QT_NO_DEBUG, failures will be detected using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT">Q_ASSERT</a>() or <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT_X">Q_ASSERT_X</a>() with an appropriate message.</p>
/// <p>To avoid failures when your list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling other member functions. If you must pass an index value that might not be in the valid range, check that it is less than the value returned by <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() but <i>not</i> less than 0.</p>
/// <a name="more-members"></a></div>
#[repr(C)]
pub struct QListOfQTextFrame {
    _unused: u8,
}
impl QListOfQTextFrame {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::append(const QList<QTextFrame*>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#append-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> list to this list.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextFrame>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_append1(
            self as *mut crate::QListOfQTextFrame,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextFrame>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame*& QList<QTextFrame*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&mut self) -> ::cpp_core::MutRef<*mut crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_back(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_begin(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_begin1(
            self as *const crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::cbegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cbegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#cend">cend</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cbegin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_cbegin(
            self as *const crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::cend() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#cend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p>This function was introduced in  Qt 5.0.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#cbegin">cbegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn cend(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_cend(
            self as *const crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes all items from the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all items from the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAll">removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_clear(
            self as *mut crate::QListOfQTextFrame,
        )
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::constBegin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constBegin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_constBegin(
            self as *const crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::constEnd() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_constEnd(
            self as *const crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Assigns <i>other</i> to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>& QList<QTextFrame*>::operator=(const QList<QTextFrame*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this list and returns a reference to this list.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextFrame>>,
    ) -> ::cpp_core::MutRef<crate::QListOfQTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_operator_(
            self as *mut crate::QListOfQTextFrame,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextFrame>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextFrame*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list. This is effectively the same as <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_count1(
            self as *const crate::QListOfQTextFrame,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_detach(
            self as *mut crate::QListOfQTextFrame,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::detachShared()```</span>.
    #[inline(always)]
    pub unsafe fn detach_shared(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_detachShared(
            self as *mut crate::QListOfQTextFrame,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and returns <code>true</code> if the list is empty.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_empty(
            self as *const crate::QListOfQTextFrame,
        )
    }

    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    pub unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_end(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_end1(
            self as *const crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::erase(QList<QTextFrame*>::iterator pos)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item associated with the iterator <i>pos</i> from the list, and returns an iterator to the next item in the list (which may be <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn erase_1a(
        &mut self,
        pos: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_erase(self as *mut crate::QListOfQTextFrame, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>::cast_into(pos).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::erase(QList<QTextFrame*>::iterator first, QList<QTextFrame*>::iterator last)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#erase-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes all the items from <i>begin</i> up to (but not including) <i>end</i>. Returns an iterator to the same item that <i>end</i> referred to before the call.</p></div>
    #[inline(always)]
    pub unsafe fn erase_2a(
        &mut self,
        first: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>,
        last: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_erase1(self as *mut crate::QListOfQTextFrame, ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>::cast_into(first).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_list_of_q_text_frame::Iterator>>::cast_into(last).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame*& QList<QTextFrame*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#last">last</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first(&mut self) -> ::cpp_core::MutRef<*mut crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_first(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame*& QList<QTextFrame*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&mut self) -> ::cpp_core::MutRef<*mut crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_front(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame*& QList<QTextFrame*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If this function is called on a list that is currently being shared, it will trigger a copy of all elements. Otherwise, this function runs in <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>. If you do not want to modify the list you should use <a href="http://doc.qt.io/qt-5/qlist.html#at">QList::at</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<*mut crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_operator__3(
            self as *mut crate::QListOfQTextFrame,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_isDetached(
            self as *const crate::QListOfQTextFrame,
        )
    }

    /// <p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the list contains no items; otherwise returns false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_isEmpty(
            self as *const crate::QListOfQTextFrame,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::isSharedWith(const QList<QTextFrame*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextFrame>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_isSharedWith(
            self as *const crate::QListOfQTextFrame,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextFrame>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame*& QList<QTextFrame*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the list. The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#first">first</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last(&mut self) -> ::cpp_core::MutRef<*mut crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_last(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextFrame*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is identical to <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_length(
            self as *const crate::QListOfQTextFrame,
        )
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*> QList<QTextFrame*>::mid(int pos, int length = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        length: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_mid(
            self as *const crate::QListOfQTextFrame,
            pos,
            length,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*> QList<QTextFrame*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-list which includes elements from this list, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements from <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QListOfQTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_mid1(
            self as *const crate::QListOfQTextFrame,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>move(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "C", "D", "E", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This is the same as insert(<i>to</i>, <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<i>from</i>)).This function assumes that both <i>from</i> and <i>to</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>from</i> and <i>to</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#swap">swap</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#insert">insert</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_move(
            self as *mut crate::QListOfQTextFrame,
            from,
            to,
        )
    }

    /// <p>Constructs an empty list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextFrame*>::QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty list.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QListOfQTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_QList();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QList<QTextFrame*>::QList(const QList<QTextFrame*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#QList-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextFrame>>,
    ) -> ::cpp_core::CppBox<crate::QListOfQTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_QList1(
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextFrame>>::cast_into(l)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_pop_back(
            self as *mut crate::QListOfQTextFrame,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_pop_front(
            self as *mut crate::QListOfQTextFrame,
        )
    }

    /// <p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i>. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_removeAt(
            self as *mut crate::QListOfQTextFrame,
            i,
        )
    }

    /// <p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(0). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_removeFirst(
            self as *mut crate::QListOfQTextFrame,
        )
    }

    /// <p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list. Calling this function is equivalent to calling <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). The list must not be empty. If the list can be empty, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_removeLast(
            self as *mut crate::QListOfQTextFrame,
        )
    }

    /// <p>Reserve space for <i>alloc</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reserve space for <i>alloc</i> elements.</p>
    /// <p>If <i>alloc</i> is smaller than the current size of the list, nothing will happen.</p>
    /// <p>Use this function to avoid repetetive reallocation of <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>'s internal data if you can predict how many elements will be appended. Note that the reservation applies only to the internal pointer array.</p>
    /// <p>This function was introduced in  Qt 4.7.</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_reserve(
            self as *mut crate::QListOfQTextFrame,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_setSharable(
            self as *mut crate::QListOfQTextFrame,
            sharable,
        )
    }

    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextFrame*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_size(
            self as *const crate::QListOfQTextFrame,
        )
    }

    /// <p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::swap(QList<QTextFrame*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps list <i>other</i> with this list. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap_1a(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QListOfQTextFrame>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_swap(
            self as *mut crate::QListOfQTextFrame,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QListOfQTextFrame>>::cast_into(other)
                .as_mut_raw_ptr(),
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::swap(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swap-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swap(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn swap_2a(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_swap1(
            self as *mut crate::QListOfQTextFrame,
            i,
            j,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QList<QTextFrame*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html#QList">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> list;
    ///   list <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"D"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"E"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"F"</span>;
    ///   list<span class="operator">.</span>swapItemsAt(<span class="number">1</span><span class="operator">,</span> <span class="number">4</span>);
    ///   <span class="comment">// list: ["A", "E", "C", "D", "B", "F"]</span>
    ///
    /// </pre>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">move</a>().</p></div>
    ///
    /// This item is available if `cpp_lib_version="5.13.0"`.
    #[inline(always)]
    #[cfg(any(cpp_lib_version = "5.13.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&mut self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_swapItemsAt(
            self as *mut crate::QListOfQTextFrame,
            i,
            j,
        )
    }

    /// <p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QList<QTextFrame*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the item at index position <i>i</i> and returns it. <i>i</i> must be a valid index position in the list (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>()).</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#removeAt">removeAt</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_takeAt(
            self as *mut crate::QListOfQTextFrame,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QList<QTextFrame*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(0). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_takeFirst(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QList<QTextFrame*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This is the same as <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(<a href="http://doc.qt.io/qt-5/qlist.html#size">size</a>() - 1). This function assumes the list is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If this list is not shared, this operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">takeAt</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_takeLast(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* QList<QTextFrame*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the list.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that the index is going to be within bounds, you can use <a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value(&self, i: ::std::os::raw::c_int) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_value(
            self as *const crate::QListOfQTextFrame,
            i,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfMode {
    type Arguments = (crate::q_clipboard::Mode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(QClipboard::Mode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_clipboard::Mode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QClipboard::Mode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfMode<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfMode>,
    func: ::std::option::Option<Box<Box<dyn FnMut(crate::q_clipboard::Mode) + 'a>>>,
}

impl<'a> SlotOfMode<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(crate::q_clipboard::Mode) + 'a>(f: F) -> SlotOfMode<'a> {
        let mut obj = SlotOfMode::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(crate::q_clipboard::Mode) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: crate::q_clipboard::Mode) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(crate::q_clipboard::Mode)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(crate::q_clipboard::Mode) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfMode> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfMode<'a> {
    fn default() -> Self {
        SlotOfMode {
            raw_slot: unsafe { crate::RawSlotOfMode::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfMode<'a> {
    type Arguments = <crate::RawSlotOfMode as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `crate::q_clipboard::Mode` to a Rust extern function.
///
/// It's recommended to use `SlotOfMode` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QClipboard::Mode```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfMode {
    _unused: u8,
}
impl RawSlotOfMode {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: crate::q_clipboard::Mode) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_custom_slot(
            self as *mut crate::RawSlotOfMode,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_metaObject(
                self as *const crate::RawSlotOfMode,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfMode> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_qt_metacall(
            self as *mut crate::RawSlotOfMode,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_qt_metacast(
                self as *mut crate::RawSlotOfMode,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, crate::q_clipboard::Mode),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_set(
            self as *mut crate::RawSlotOfMode,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQRegExp {
    type Arguments = (*const ::qt_core::QRegExp,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(const QRegExp&)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<::qt_core::QRegExp>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QRegExp&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQRegExp<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQRegExp>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRegExp>) + 'a>>>,
}

impl<'a> SlotOfQRegExp<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<::qt_core::QRegExp>) + 'a>(f: F) -> SlotOfQRegExp<'a> {
        let mut obj = SlotOfQRegExp::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<::qt_core::QRegExp>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const ::qt_core::QRegExp) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRegExp>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRegExp>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQRegExp> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQRegExp<'a> {
    fn default() -> Self {
        SlotOfQRegExp {
            raw_slot: unsafe { crate::RawSlotOfQRegExp::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQRegExp<'a> {
    type Arguments = <crate::RawSlotOfQRegExp as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QRegExp` to a Rust extern function.
///
/// It's recommended to use `SlotOfQRegExp` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QRegExp&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQRegExp {
    _unused: u8,
}
impl RawSlotOfQRegExp {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegExp>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQRegExp,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegExp>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_metaObject(
                self as *const crate::RawSlotOfQRegExp,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQRegExp> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQRegExp,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_qt_metacast(
                self as *mut crate::RawSlotOfQRegExp,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const ::qt_core::QRegExp),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_set(
            self as *mut crate::RawSlotOfQRegExp,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQTextCursor {
    type Arguments = (*const crate::QTextCursor,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(const QTextCursor&)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<crate::QTextCursor>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QTextCursor&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQTextCursor<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQTextCursor>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<crate::QTextCursor>) + 'a>>>,
}

impl<'a> SlotOfQTextCursor<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<crate::QTextCursor>) + 'a>(f: F) -> SlotOfQTextCursor<'a> {
        let mut obj = SlotOfQTextCursor::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<crate::QTextCursor>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const crate::QTextCursor) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<crate::QTextCursor>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<crate::QTextCursor>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQTextCursor> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQTextCursor<'a> {
    fn default() -> Self {
        SlotOfQTextCursor {
            raw_slot: unsafe { crate::RawSlotOfQTextCursor::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQTextCursor<'a> {
    type Arguments = <crate::RawSlotOfQTextCursor as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const crate::QTextCursor` to a Rust extern function.
///
/// It's recommended to use `SlotOfQTextCursor` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QTextCursor&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQTextCursor {
    _unused: u8,
}
impl RawSlotOfQTextCursor {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextCursor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQTextCursor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextCursor>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_metaObject(self as *const crate::RawSlotOfQTextCursor);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQTextCursor,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_qt_metacast(self as *mut crate::RawSlotOfQTextCursor, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const crate::QTextCursor),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_set(
            self as *mut crate::RawSlotOfQTextCursor,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQRect {
    type Arguments = (*const ::qt_core::QRect,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(const QRect&)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<::qt_core::QRect>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QRect&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQRect<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQRect>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRect>) + 'a>>>,
}

impl<'a> SlotOfQRect<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<::qt_core::QRect>) + 'a>(f: F) -> SlotOfQRect<'a> {
        let mut obj = SlotOfQRect::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<::qt_core::QRect>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const ::qt_core::QRect) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRect>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRect>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQRect> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQRect<'a> {
    fn default() -> Self {
        SlotOfQRect {
            raw_slot: unsafe { crate::RawSlotOfQRect::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQRect<'a> {
    type Arguments = <crate::RawSlotOfQRect as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QRect` to a Rust extern function.
///
/// It's recommended to use `SlotOfQRect` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QRect&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQRect {
    _unused: u8,
}
impl RawSlotOfQRect {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQRect,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(arg0).as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_metaObject(
                self as *const crate::RawSlotOfQRect,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQRect,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_qt_metacast(
                self as *mut crate::RawSlotOfQRect,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const ::qt_core::QRect),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_set(
            self as *mut crate::RawSlotOfQRect,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQPalette {
    type Arguments = (*const crate::QPalette,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(const QPalette&)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<crate::QPalette>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QPalette&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQPalette<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQPalette>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<crate::QPalette>) + 'a>>>,
}

impl<'a> SlotOfQPalette<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<crate::QPalette>) + 'a>(f: F) -> SlotOfQPalette<'a> {
        let mut obj = SlotOfQPalette::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<crate::QPalette>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const crate::QPalette) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<crate::QPalette>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<crate::QPalette>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQPalette> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQPalette<'a> {
    fn default() -> Self {
        SlotOfQPalette {
            raw_slot: unsafe { crate::RawSlotOfQPalette::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQPalette<'a> {
    type Arguments = <crate::RawSlotOfQPalette as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const crate::QPalette` to a Rust extern function.
///
/// It's recommended to use `SlotOfQPalette` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QPalette&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQPalette {
    _unused: u8,
}
impl RawSlotOfQPalette {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPalette>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQPalette,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPalette>>::cast_into(arg0).as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_metaObject(
                self as *const crate::RawSlotOfQPalette,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQPalette,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_qt_metacast(
                self as *mut crate::RawSlotOfQPalette,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void, *const crate::QPalette)>,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_set(
            self as *mut crate::RawSlotOfQPalette,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQUrl {
    type Arguments = (*const ::qt_core::QUrl,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(const QUrl&)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<::qt_core::QUrl>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QUrl&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQUrl<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQUrl>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QUrl>) + 'a>>>,
}

impl<'a> SlotOfQUrl<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<::qt_core::QUrl>) + 'a>(f: F) -> SlotOfQUrl<'a> {
        let mut obj = SlotOfQUrl::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<::qt_core::QUrl>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const ::qt_core::QUrl) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<::qt_core::QUrl>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QUrl>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQUrl> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQUrl<'a> {
    fn default() -> Self {
        SlotOfQUrl {
            raw_slot: unsafe { crate::RawSlotOfQUrl::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQUrl<'a> {
    type Arguments = <crate::RawSlotOfQUrl as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QUrl` to a Rust extern function.
///
/// It's recommended to use `SlotOfQUrl` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QUrl&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQUrl {
    _unused: u8,
}
impl RawSlotOfQUrl {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQUrl,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(arg0).as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_metaObject(
                self as *const crate::RawSlotOfQUrl,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQUrl> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQUrl,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_qt_metacast(
                self as *mut crate::RawSlotOfQUrl,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void, *const ::qt_core::QUrl)>,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_set(
            self as *mut crate::RawSlotOfQUrl,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQSize {
    type Arguments = (*const ::qt_core::QSize,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(const QSize&)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<::qt_core::QSize>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QSize&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQSize<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQSize>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QSize>) + 'a>>>,
}

impl<'a> SlotOfQSize<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<::qt_core::QSize>) + 'a>(f: F) -> SlotOfQSize<'a> {
        let mut obj = SlotOfQSize::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<::qt_core::QSize>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const ::qt_core::QSize) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<::qt_core::QSize>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QSize>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQSize> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQSize<'a> {
    fn default() -> Self {
        SlotOfQSize {
            raw_slot: unsafe { crate::RawSlotOfQSize::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQSize<'a> {
    type Arguments = <crate::RawSlotOfQSize as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QSize` to a Rust extern function.
///
/// It's recommended to use `SlotOfQSize` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QSize&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQSize {
    _unused: u8,
}
impl RawSlotOfQSize {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(arg0).as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_metaObject(
                self as *const crate::RawSlotOfQSize,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQSize,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_qt_metacast(
                self as *mut crate::RawSlotOfQSize,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const ::qt_core::QSize),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_set(
            self as *mut crate::RawSlotOfQSize,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfNotation {
    type Arguments = (crate::q_double_validator::Notation,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(QDoubleValidator::Notation)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_double_validator::Notation` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QDoubleValidator::Notation```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfNotation<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfNotation>,
    func: ::std::option::Option<Box<Box<dyn FnMut(crate::q_double_validator::Notation) + 'a>>>,
}

impl<'a> SlotOfNotation<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(crate::q_double_validator::Notation) + 'a>(f: F) -> SlotOfNotation<'a> {
        let mut obj = SlotOfNotation::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(crate::q_double_validator::Notation) + 'a>(&mut self, f: F) {
        extern "C" fn callback(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_double_validator::Notation,
        ) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(crate::q_double_validator::Notation)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(crate::q_double_validator::Notation) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfNotation> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfNotation<'a> {
    fn default() -> Self {
        SlotOfNotation {
            raw_slot: unsafe { crate::RawSlotOfNotation::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfNotation<'a> {
    type Arguments = <crate::RawSlotOfNotation as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `crate::q_double_validator::Notation` to a Rust extern function.
///
/// It's recommended to use `SlotOfNotation` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QDoubleValidator::Notation```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfNotation {
    _unused: u8,
}
impl RawSlotOfNotation {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: crate::q_double_validator::Notation) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_custom_slot(self as *mut crate::RawSlotOfNotation, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_metaObject(self as *const crate::RawSlotOfNotation);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfNotation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_qt_metacall(self as *mut crate::RawSlotOfNotation, arg1, arg2, ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3).as_mut_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_qt_metacast(self as *mut crate::RawSlotOfNotation, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, crate::q_double_validator::Notation),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_set(
            self as *mut crate::RawSlotOfNotation,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_trUtf8(::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c).as_raw_ptr(), n);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfLayoutDirection {
    type Arguments = (::qt_core::LayoutDirection,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(Qt::LayoutDirection)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::qt_core::LayoutDirection` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::LayoutDirection```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfLayoutDirection<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfLayoutDirection>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::qt_core::LayoutDirection) + 'a>>>,
}

impl<'a> SlotOfLayoutDirection<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::qt_core::LayoutDirection) + 'a>(f: F) -> SlotOfLayoutDirection<'a> {
        let mut obj = SlotOfLayoutDirection::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::qt_core::LayoutDirection) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: ::qt_core::LayoutDirection) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(::qt_core::LayoutDirection)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::qt_core::LayoutDirection) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfLayoutDirection> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfLayoutDirection<'a> {
    fn default() -> Self {
        SlotOfLayoutDirection {
            raw_slot: unsafe { crate::RawSlotOfLayoutDirection::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfLayoutDirection<'a> {
    type Arguments = <crate::RawSlotOfLayoutDirection as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `::qt_core::LayoutDirection` to a Rust extern function.
///
/// It's recommended to use `SlotOfLayoutDirection` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::LayoutDirection```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfLayoutDirection {
    _unused: u8,
}
impl RawSlotOfLayoutDirection {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: ::qt_core::LayoutDirection) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_custom_slot(
            self as *mut crate::RawSlotOfLayoutDirection,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_metaObject(
                self as *const crate::RawSlotOfLayoutDirection,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfLayoutDirection> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_qt_metacall(
            self as *mut crate::RawSlotOfLayoutDirection,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_qt_metacast(
                self as *mut crate::RawSlotOfLayoutDirection,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, ::qt_core::LayoutDirection),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_set(
            self as *mut crate::RawSlotOfLayoutDirection,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfApplicationState {
    type Arguments = (::qt_core::ApplicationState,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(Qt::ApplicationState)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::qt_core::ApplicationState` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::ApplicationState```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfApplicationState<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfApplicationState>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::qt_core::ApplicationState) + 'a>>>,
}

impl<'a> SlotOfApplicationState<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::qt_core::ApplicationState) + 'a>(f: F) -> SlotOfApplicationState<'a> {
        let mut obj = SlotOfApplicationState::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::qt_core::ApplicationState) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: ::qt_core::ApplicationState) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(::qt_core::ApplicationState)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::qt_core::ApplicationState) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfApplicationState> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfApplicationState<'a> {
    fn default() -> Self {
        SlotOfApplicationState {
            raw_slot: unsafe { crate::RawSlotOfApplicationState::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfApplicationState<'a> {
    type Arguments = <crate::RawSlotOfApplicationState as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `::qt_core::ApplicationState` to a Rust extern function.
///
/// It's recommended to use `SlotOfApplicationState` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::ApplicationState```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfApplicationState {
    _unused: u8,
}
impl RawSlotOfApplicationState {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: ::qt_core::ApplicationState) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_custom_slot(
            self as *mut crate::RawSlotOfApplicationState,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_metaObject(
                self as *const crate::RawSlotOfApplicationState,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfApplicationState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_qt_metacall(
            self as *mut crate::RawSlotOfApplicationState,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_qt_metacast(self as *mut crate::RawSlotOfApplicationState, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, ::qt_core::ApplicationState),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_set(
            self as *mut crate::RawSlotOfApplicationState,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQOpenglDebugMessage {
    type Arguments = (*const crate::QOpenGLDebugMessage,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(const QOpenGLDebugMessage&)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<crate::QOpenGLDebugMessage>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QOpenGLDebugMessage&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQOpenglDebugMessage<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQOpenglDebugMessage>,
    func: ::std::option::Option<
        Box<Box<dyn FnMut(::cpp_core::Ref<crate::QOpenGLDebugMessage>) + 'a>>,
    >,
}

impl<'a> SlotOfQOpenglDebugMessage<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<crate::QOpenGLDebugMessage>) + 'a>(
        f: F,
    ) -> SlotOfQOpenglDebugMessage<'a> {
        let mut obj = SlotOfQOpenglDebugMessage::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<crate::QOpenGLDebugMessage>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(
            data: *mut ::std::ffi::c_void,
            arg0: *const crate::QOpenGLDebugMessage,
        ) {
            let func = unsafe {
                &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<crate::QOpenGLDebugMessage>)>)
            };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<crate::QOpenGLDebugMessage>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQOpenglDebugMessage> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQOpenglDebugMessage<'a> {
    fn default() -> Self {
        SlotOfQOpenglDebugMessage {
            raw_slot: unsafe { crate::RawSlotOfQOpenglDebugMessage::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQOpenglDebugMessage<'a> {
    type Arguments = <crate::RawSlotOfQOpenglDebugMessage as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const crate::QOpenGLDebugMessage` to a Rust extern function.
///
/// It's recommended to use `SlotOfQOpenglDebugMessage` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QOpenGLDebugMessage&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQOpenglDebugMessage {
    _unused: u8,
}
impl RawSlotOfQOpenglDebugMessage {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLDebugMessage>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_custom_slot(self as *mut crate::RawSlotOfQOpenglDebugMessage, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLDebugMessage>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_metaObject(self as *const crate::RawSlotOfQOpenglDebugMessage);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_qt_metacall(self as *mut crate::RawSlotOfQOpenglDebugMessage, arg1, arg2, ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3).as_mut_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_qt_metacast(self as *mut crate::RawSlotOfQOpenglDebugMessage, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const crate::QOpenGLDebugMessage),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_set(
            self as *mut crate::RawSlotOfQOpenglDebugMessage,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_tr(::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c).as_raw_ptr(), n);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_trUtf8(::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c).as_raw_ptr(), n);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQTextBlock {
    type Arguments = (*const crate::QTextBlock,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(const QTextBlock&)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<crate::QTextBlock>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QTextBlock&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQTextBlock<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQTextBlock>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<crate::QTextBlock>) + 'a>>>,
}

impl<'a> SlotOfQTextBlock<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<crate::QTextBlock>) + 'a>(f: F) -> SlotOfQTextBlock<'a> {
        let mut obj = SlotOfQTextBlock::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<crate::QTextBlock>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const crate::QTextBlock) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<crate::QTextBlock>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<crate::QTextBlock>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQTextBlock> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQTextBlock<'a> {
    fn default() -> Self {
        SlotOfQTextBlock {
            raw_slot: unsafe { crate::RawSlotOfQTextBlock::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQTextBlock<'a> {
    type Arguments = <crate::RawSlotOfQTextBlock as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const crate::QTextBlock` to a Rust extern function.
///
/// It's recommended to use `SlotOfQTextBlock` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QTextBlock&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQTextBlock {
    _unused: u8,
}
impl RawSlotOfQTextBlock {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextBlock>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQTextBlock,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextBlock>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_metaObject(self as *const crate::RawSlotOfQTextBlock);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQTextBlock,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_qt_metacast(self as *mut crate::RawSlotOfQTextBlock, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const crate::QTextBlock),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_set(
            self as *mut crate::RawSlotOfQTextBlock,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQSessionManager {
    type Arguments = (*mut crate::QSessionManager,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(QSessionManager&)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::MutRef<crate::QSessionManager>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QSessionManager&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQSessionManager<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQSessionManager>,
    func:
        ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::MutRef<crate::QSessionManager>) + 'a>>>,
}

impl<'a> SlotOfQSessionManager<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::MutRef<crate::QSessionManager>) + 'a>(
        f: F,
    ) -> SlotOfQSessionManager<'a> {
        let mut obj = SlotOfQSessionManager::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::MutRef<crate::QSessionManager>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *mut crate::QSessionManager) {
            let func = unsafe {
                &mut *(data as *mut Box<dyn FnMut(::cpp_core::MutRef<crate::QSessionManager>)>)
            };
            func(unsafe {
                ::cpp_core::MutRef::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::MutRef<crate::QSessionManager>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQSessionManager> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQSessionManager<'a> {
    fn default() -> Self {
        SlotOfQSessionManager {
            raw_slot: unsafe { crate::RawSlotOfQSessionManager::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQSessionManager<'a> {
    type Arguments = <crate::RawSlotOfQSessionManager as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*mut crate::QSessionManager` to a Rust extern function.
///
/// It's recommended to use `SlotOfQSessionManager` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QSessionManager&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQSessionManager {
    _unused: u8,
}
impl RawSlotOfQSessionManager {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QSessionManager>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_custom_slot(
            self as *mut crate::RawSlotOfQSessionManager,
            ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QSessionManager>>::cast_into(arg0)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_metaObject(
                self as *const crate::RawSlotOfQSessionManager,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQSessionManager> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_qt_metacall(
            self as *mut crate::RawSlotOfQSessionManager,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_qt_metacast(self as *mut crate::RawSlotOfQSessionManager, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *mut crate::QSessionManager),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_set(
            self as *mut crate::RawSlotOfQSessionManager,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfTabFocusBehavior {
    type Arguments = (::qt_core::TabFocusBehavior,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(Qt::TabFocusBehavior)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::qt_core::TabFocusBehavior` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::TabFocusBehavior```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfTabFocusBehavior<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfTabFocusBehavior>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::qt_core::TabFocusBehavior) + 'a>>>,
}

impl<'a> SlotOfTabFocusBehavior<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::qt_core::TabFocusBehavior) + 'a>(f: F) -> SlotOfTabFocusBehavior<'a> {
        let mut obj = SlotOfTabFocusBehavior::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::qt_core::TabFocusBehavior) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: ::qt_core::TabFocusBehavior) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(::qt_core::TabFocusBehavior)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::qt_core::TabFocusBehavior) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfTabFocusBehavior> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfTabFocusBehavior<'a> {
    fn default() -> Self {
        SlotOfTabFocusBehavior {
            raw_slot: unsafe { crate::RawSlotOfTabFocusBehavior::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfTabFocusBehavior<'a> {
    type Arguments = <crate::RawSlotOfTabFocusBehavior as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `::qt_core::TabFocusBehavior` to a Rust extern function.
///
/// It's recommended to use `SlotOfTabFocusBehavior` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::TabFocusBehavior```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfTabFocusBehavior {
    _unused: u8,
}
impl RawSlotOfTabFocusBehavior {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: ::qt_core::TabFocusBehavior) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_custom_slot(
            self as *mut crate::RawSlotOfTabFocusBehavior,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_metaObject(
                self as *const crate::RawSlotOfTabFocusBehavior,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfTabFocusBehavior> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_qt_metacall(
            self as *mut crate::RawSlotOfTabFocusBehavior,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_qt_metacast(self as *mut crate::RawSlotOfTabFocusBehavior, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, ::qt_core::TabFocusBehavior),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_set(
            self as *mut crate::RawSlotOfTabFocusBehavior,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfMovieState {
    type Arguments = (crate::q_movie::MovieState,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(QMovie::MovieState)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_movie::MovieState` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QMovie::MovieState```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfMovieState<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfMovieState>,
    func: ::std::option::Option<Box<Box<dyn FnMut(crate::q_movie::MovieState) + 'a>>>,
}

impl<'a> SlotOfMovieState<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(crate::q_movie::MovieState) + 'a>(f: F) -> SlotOfMovieState<'a> {
        let mut obj = SlotOfMovieState::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(crate::q_movie::MovieState) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: crate::q_movie::MovieState) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(crate::q_movie::MovieState)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(crate::q_movie::MovieState) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfMovieState> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfMovieState<'a> {
    fn default() -> Self {
        SlotOfMovieState {
            raw_slot: unsafe { crate::RawSlotOfMovieState::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfMovieState<'a> {
    type Arguments = <crate::RawSlotOfMovieState as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `crate::q_movie::MovieState` to a Rust extern function.
///
/// It's recommended to use `SlotOfMovieState` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QMovie::MovieState```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfMovieState {
    _unused: u8,
}
impl RawSlotOfMovieState {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: crate::q_movie::MovieState) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_custom_slot(
            self as *mut crate::RawSlotOfMovieState,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_metaObject(
                self as *const crate::RawSlotOfMovieState,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfMovieState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_qt_metacall(
            self as *mut crate::RawSlotOfMovieState,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_qt_metacast(
                self as *mut crate::RawSlotOfMovieState,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, crate::q_movie::MovieState),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_set(
            self as *mut crate::RawSlotOfMovieState,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQRectF {
    type Arguments = (*const ::qt_core::QRectF,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(const QRectF&)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<::qt_core::QRectF>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QRectF&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQRectF<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQRectF>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRectF>) + 'a>>>,
}

impl<'a> SlotOfQRectF<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<::qt_core::QRectF>) + 'a>(f: F) -> SlotOfQRectF<'a> {
        let mut obj = SlotOfQRectF::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<::qt_core::QRectF>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const ::qt_core::QRectF) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRectF>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRectF>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQRectF> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQRectF<'a> {
    fn default() -> Self {
        SlotOfQRectF {
            raw_slot: unsafe { crate::RawSlotOfQRectF::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQRectF<'a> {
    type Arguments = <crate::RawSlotOfQRectF as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QRectF` to a Rust extern function.
///
/// It's recommended to use `SlotOfQRectF` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QRectF&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQRectF {
    _unused: u8,
}
impl RawSlotOfQRectF {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQRectF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_metaObject(
                self as *const crate::RawSlotOfQRectF,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQRectF,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_qt_metacast(
                self as *mut crate::RawSlotOfQRectF,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const ::qt_core::QRectF),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_set(
            self as *mut crate::RawSlotOfQRectF,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfWindowModality {
    type Arguments = (::qt_core::WindowModality,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(Qt::WindowModality)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::qt_core::WindowModality` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::WindowModality```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfWindowModality<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfWindowModality>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::qt_core::WindowModality) + 'a>>>,
}

impl<'a> SlotOfWindowModality<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::qt_core::WindowModality) + 'a>(f: F) -> SlotOfWindowModality<'a> {
        let mut obj = SlotOfWindowModality::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::qt_core::WindowModality) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: ::qt_core::WindowModality) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(::qt_core::WindowModality)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::qt_core::WindowModality) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfWindowModality> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfWindowModality<'a> {
    fn default() -> Self {
        SlotOfWindowModality {
            raw_slot: unsafe { crate::RawSlotOfWindowModality::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfWindowModality<'a> {
    type Arguments = <crate::RawSlotOfWindowModality as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `::qt_core::WindowModality` to a Rust extern function.
///
/// It's recommended to use `SlotOfWindowModality` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::WindowModality```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfWindowModality {
    _unused: u8,
}
impl RawSlotOfWindowModality {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: ::qt_core::WindowModality) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_custom_slot(
            self as *mut crate::RawSlotOfWindowModality,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_metaObject(
                self as *const crate::RawSlotOfWindowModality,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfWindowModality> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_qt_metacall(
            self as *mut crate::RawSlotOfWindowModality,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_qt_metacast(
                self as *mut crate::RawSlotOfWindowModality,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, ::qt_core::WindowModality),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_set(
            self as *mut crate::RawSlotOfWindowModality,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfScreenOrientation {
    type Arguments = (::qt_core::ScreenOrientation,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(Qt::ScreenOrientation)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::qt_core::ScreenOrientation` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::ScreenOrientation```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfScreenOrientation<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfScreenOrientation>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::qt_core::ScreenOrientation) + 'a>>>,
}

impl<'a> SlotOfScreenOrientation<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::qt_core::ScreenOrientation) + 'a>(f: F) -> SlotOfScreenOrientation<'a> {
        let mut obj = SlotOfScreenOrientation::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::qt_core::ScreenOrientation) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: ::qt_core::ScreenOrientation) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(::qt_core::ScreenOrientation)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::qt_core::ScreenOrientation) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfScreenOrientation> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfScreenOrientation<'a> {
    fn default() -> Self {
        SlotOfScreenOrientation {
            raw_slot: unsafe { crate::RawSlotOfScreenOrientation::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfScreenOrientation<'a> {
    type Arguments = <crate::RawSlotOfScreenOrientation as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `::qt_core::ScreenOrientation` to a Rust extern function.
///
/// It's recommended to use `SlotOfScreenOrientation` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::ScreenOrientation```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfScreenOrientation {
    _unused: u8,
}
impl RawSlotOfScreenOrientation {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: ::qt_core::ScreenOrientation) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_custom_slot(
            self as *mut crate::RawSlotOfScreenOrientation,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_metaObject(self as *const crate::RawSlotOfScreenOrientation);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfScreenOrientation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_qt_metacall(
            self as *mut crate::RawSlotOfScreenOrientation,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_qt_metacast(self as *mut crate::RawSlotOfScreenOrientation, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, ::qt_core::ScreenOrientation),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_set(
            self as *mut crate::RawSlotOfScreenOrientation,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQSizeF {
    type Arguments = (*const ::qt_core::QSizeF,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(const QSizeF&)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<::qt_core::QSizeF>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QSizeF&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQSizeF<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQSizeF>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QSizeF>) + 'a>>>,
}

impl<'a> SlotOfQSizeF<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<::qt_core::QSizeF>) + 'a>(f: F) -> SlotOfQSizeF<'a> {
        let mut obj = SlotOfQSizeF::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<::qt_core::QSizeF>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *const ::qt_core::QSizeF) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<::qt_core::QSizeF>)>) };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QSizeF>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQSizeF> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQSizeF<'a> {
    fn default() -> Self {
        SlotOfQSizeF {
            raw_slot: unsafe { crate::RawSlotOfQSizeF::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQSizeF<'a> {
    type Arguments = <crate::RawSlotOfQSizeF as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QSizeF` to a Rust extern function.
///
/// It's recommended to use `SlotOfQSizeF` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QSizeF&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQSizeF {
    _unused: u8,
}
impl RawSlotOfQSizeF {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSizeF>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_custom_slot(
            self as *mut crate::RawSlotOfQSizeF,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSizeF>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_metaObject(
                self as *const crate::RawSlotOfQSizeF,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_qt_metacall(
            self as *mut crate::RawSlotOfQSizeF,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_qt_metacast(
                self as *mut crate::RawSlotOfQSizeF,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const ::qt_core::QSizeF),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_set(
            self as *mut crate::RawSlotOfQSizeF,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfVisibility {
    type Arguments = (crate::q_window::Visibility,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(QWindow::Visibility)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_window::Visibility` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QWindow::Visibility```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfVisibility<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfVisibility>,
    func: ::std::option::Option<Box<Box<dyn FnMut(crate::q_window::Visibility) + 'a>>>,
}

impl<'a> SlotOfVisibility<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(crate::q_window::Visibility) + 'a>(f: F) -> SlotOfVisibility<'a> {
        let mut obj = SlotOfVisibility::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(crate::q_window::Visibility) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: crate::q_window::Visibility) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(crate::q_window::Visibility)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(crate::q_window::Visibility) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfVisibility> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfVisibility<'a> {
    fn default() -> Self {
        SlotOfVisibility {
            raw_slot: unsafe { crate::RawSlotOfVisibility::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfVisibility<'a> {
    type Arguments = <crate::RawSlotOfVisibility as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `crate::q_window::Visibility` to a Rust extern function.
///
/// It's recommended to use `SlotOfVisibility` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QWindow::Visibility```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfVisibility {
    _unused: u8,
}
impl RawSlotOfVisibility {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: crate::q_window::Visibility) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_custom_slot(
            self as *mut crate::RawSlotOfVisibility,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_metaObject(
                self as *const crate::RawSlotOfVisibility,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfVisibility> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_qt_metacall(
            self as *mut crate::RawSlotOfVisibility,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_qt_metacast(
                self as *mut crate::RawSlotOfVisibility,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, crate::q_window::Visibility),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_set(
            self as *mut crate::RawSlotOfVisibility,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQWindow {
    type Arguments = (*mut crate::QWindow,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(QWindow*)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::MutPtr<crate::QWindow>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QWindow*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQWindow<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQWindow>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::MutPtr<crate::QWindow>) + 'a>>>,
}

impl<'a> SlotOfQWindow<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::MutPtr<crate::QWindow>) + 'a>(f: F) -> SlotOfQWindow<'a> {
        let mut obj = SlotOfQWindow::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::MutPtr<crate::QWindow>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *mut crate::QWindow) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::MutPtr<crate::QWindow>)>) };
            func(unsafe { ::cpp_core::MutPtr::from_raw(arg0) });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::MutPtr<crate::QWindow>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQWindow> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQWindow<'a> {
    fn default() -> Self {
        SlotOfQWindow {
            raw_slot: unsafe { crate::RawSlotOfQWindow::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQWindow<'a> {
    type Arguments = <crate::RawSlotOfQWindow as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*mut crate::QWindow` to a Rust extern function.
///
/// It's recommended to use `SlotOfQWindow` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QWindow*```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQWindow {
    _unused: u8,
}
impl RawSlotOfQWindow {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QWindow>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_custom_slot(
            self as *mut crate::RawSlotOfQWindow,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QWindow>>::cast_into(arg0)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_metaObject(
                self as *const crate::RawSlotOfQWindow,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_qt_metacall(
            self as *mut crate::RawSlotOfQWindow,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_qt_metacast(
                self as *mut crate::RawSlotOfQWindow,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void, *mut crate::QWindow)>,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_set(
            self as *mut crate::RawSlotOfQWindow,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfImageReaderError {
    type Arguments = (crate::q_image_reader::ImageReaderError,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(QImageReader::ImageReaderError)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_image_reader::ImageReaderError` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QImageReader::ImageReaderError```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfImageReaderError<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfImageReaderError>,
    func: ::std::option::Option<Box<Box<dyn FnMut(crate::q_image_reader::ImageReaderError) + 'a>>>,
}

impl<'a> SlotOfImageReaderError<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(crate::q_image_reader::ImageReaderError) + 'a>(
        f: F,
    ) -> SlotOfImageReaderError<'a> {
        let mut obj = SlotOfImageReaderError::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(crate::q_image_reader::ImageReaderError) + 'a>(&mut self, f: F) {
        extern "C" fn callback(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_image_reader::ImageReaderError,
        ) {
            let func = unsafe {
                &mut *(data as *mut Box<dyn FnMut(crate::q_image_reader::ImageReaderError)>)
            };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(crate::q_image_reader::ImageReaderError) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfImageReaderError> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfImageReaderError<'a> {
    fn default() -> Self {
        SlotOfImageReaderError {
            raw_slot: unsafe { crate::RawSlotOfImageReaderError::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfImageReaderError<'a> {
    type Arguments = <crate::RawSlotOfImageReaderError as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `crate::q_image_reader::ImageReaderError` to a Rust extern function.
///
/// It's recommended to use `SlotOfImageReaderError` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QImageReader::ImageReaderError```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfImageReaderError {
    _unused: u8,
}
impl RawSlotOfImageReaderError {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: crate::q_image_reader::ImageReaderError) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_custom_slot(self as *mut crate::RawSlotOfImageReaderError, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_metaObject(self as *const crate::RawSlotOfImageReaderError);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfImageReaderError> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_qt_metacall(self as *mut crate::RawSlotOfImageReaderError, arg1, arg2, ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3).as_mut_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_qt_metacast(self as *mut crate::RawSlotOfImageReaderError, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, crate::q_image_reader::ImageReaderError),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_set(
            self as *mut crate::RawSlotOfImageReaderError,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_tr(::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c).as_raw_ptr(), n);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_trUtf8(::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c).as_raw_ptr(), n);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfIntIntInt {
    type Arguments = (
        ::std::os::raw::c_int,
        ::std::os::raw::c_int,
        ::std::os::raw::c_int,
    );
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(int,int,int)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::std::os::raw::c_int,::std::os::raw::c_int,::std::os::raw::c_int` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```int, int, int```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfIntIntInt<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfIntIntInt>,
    func: ::std::option::Option<
        Box<
            Box<
                dyn FnMut(::std::os::raw::c_int, ::std::os::raw::c_int, ::std::os::raw::c_int) + 'a,
            >,
        >,
    >,
}

impl<'a> SlotOfIntIntInt<'a> {
    /// Constructs a new object.
    pub fn new<
        F: FnMut(::std::os::raw::c_int, ::std::os::raw::c_int, ::std::os::raw::c_int) + 'a,
    >(
        f: F,
    ) -> SlotOfIntIntInt<'a> {
        let mut obj = SlotOfIntIntInt::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<
        F: FnMut(::std::os::raw::c_int, ::std::os::raw::c_int, ::std::os::raw::c_int) + 'a,
    >(
        &mut self,
        f: F,
    ) {
        extern "C" fn callback(
            data: *mut ::std::ffi::c_void,
            arg0: ::std::os::raw::c_int,
            arg1: ::std::os::raw::c_int,
            arg2: ::std::os::raw::c_int,
        ) {
            let func = unsafe {
                &mut *(data as *mut Box<
                    dyn FnMut(::std::os::raw::c_int, ::std::os::raw::c_int, ::std::os::raw::c_int),
                >)
            };
            func(arg0, arg1, arg2);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<
            Box<
                dyn FnMut(::std::os::raw::c_int, ::std::os::raw::c_int, ::std::os::raw::c_int) + 'a,
            >,
        > = Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfIntIntInt> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfIntIntInt<'a> {
    fn default() -> Self {
        SlotOfIntIntInt {
            raw_slot: unsafe { crate::RawSlotOfIntIntInt::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfIntIntInt<'a> {
    type Arguments = <crate::RawSlotOfIntIntInt as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `::std::os::raw::c_int,::std::os::raw::c_int,::std::os::raw::c_int` to a Rust extern function.
///
/// It's recommended to use `SlotOfIntIntInt` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```int, int, int```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfIntIntInt {
    _unused: u8,
}
impl RawSlotOfIntIntInt {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: ::std::os::raw::c_int,
        arg1: ::std::os::raw::c_int,
        arg2: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_custom_slot(
            self as *mut crate::RawSlotOfIntIntInt,
            arg0,
            arg1,
            arg2,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_metaObject(
                self as *const crate::RawSlotOfIntIntInt,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfIntIntInt> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_ctr_qt_gui_ffi_slot_wrapper_int_int_int();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_qt_metacall(
            self as *mut crate::RawSlotOfIntIntInt,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_qt_metacast(
                self as *mut crate::RawSlotOfIntIntInt,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(
                *mut ::std::ffi::c_void,
                ::std::os::raw::c_int,
                ::std::os::raw::c_int,
                ::std::os::raw::c_int,
            ),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_set(
            self as *mut crate::RawSlotOfIntIntInt,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfDropAction {
    type Arguments = (::qt_core::DropAction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(Qt::DropAction)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::qt_core::DropAction` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::DropAction```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfDropAction<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfDropAction>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::qt_core::DropAction) + 'a>>>,
}

impl<'a> SlotOfDropAction<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::qt_core::DropAction) + 'a>(f: F) -> SlotOfDropAction<'a> {
        let mut obj = SlotOfDropAction::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::qt_core::DropAction) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: ::qt_core::DropAction) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(::qt_core::DropAction)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::qt_core::DropAction) + 'a>> = Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfDropAction> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfDropAction<'a> {
    fn default() -> Self {
        SlotOfDropAction {
            raw_slot: unsafe { crate::RawSlotOfDropAction::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfDropAction<'a> {
    type Arguments = <crate::RawSlotOfDropAction as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `::qt_core::DropAction` to a Rust extern function.
///
/// It's recommended to use `SlotOfDropAction` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::DropAction```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfDropAction {
    _unused: u8,
}
impl RawSlotOfDropAction {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: ::qt_core::DropAction) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_custom_slot(
            self as *mut crate::RawSlotOfDropAction,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_metaObject(
                self as *const crate::RawSlotOfDropAction,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfDropAction> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_qt_metacall(
            self as *mut crate::RawSlotOfDropAction,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_qt_metacast(
                self as *mut crate::RawSlotOfDropAction,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void, ::qt_core::DropAction)>,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_set(
            self as *mut crate::RawSlotOfDropAction,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_staticMetaObject(
            );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfWindowState {
    type Arguments = (::qt_core::WindowState,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(Qt::WindowState)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::qt_core::WindowState` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::WindowState```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfWindowState<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfWindowState>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::qt_core::WindowState) + 'a>>>,
}

impl<'a> SlotOfWindowState<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::qt_core::WindowState) + 'a>(f: F) -> SlotOfWindowState<'a> {
        let mut obj = SlotOfWindowState::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::qt_core::WindowState) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: ::qt_core::WindowState) {
            let func = unsafe { &mut *(data as *mut Box<dyn FnMut(::qt_core::WindowState)>) };
            func(arg0);
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::qt_core::WindowState) + 'a>> = Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfWindowState> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfWindowState<'a> {
    fn default() -> Self {
        SlotOfWindowState {
            raw_slot: unsafe { crate::RawSlotOfWindowState::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfWindowState<'a> {
    type Arguments = <crate::RawSlotOfWindowState as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `::qt_core::WindowState` to a Rust extern function.
///
/// It's recommended to use `SlotOfWindowState` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt::WindowState```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfWindowState {
    _unused: u8,
}
impl RawSlotOfWindowState {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(&mut self, arg0: ::qt_core::WindowState) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_custom_slot(
            self as *mut crate::RawSlotOfWindowState,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_metaObject(
                self as *const crate::RawSlotOfWindowState,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfWindowState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_qt_metacall(
            self as *mut crate::RawSlotOfWindowState,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_qt_metacast(
                self as *mut crate::RawSlotOfWindowState,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void, ::qt_core::WindowState)>,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_set(
            self as *mut crate::RawSlotOfWindowState,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQRegularExpression {
    type Arguments = (*const ::qt_core::QRegularExpression,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1custom_slot(const QRegularExpression&)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::Ref<::qt_core::QRegularExpression>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QRegularExpression&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQRegularExpression<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQRegularExpression>,
    func: ::std::option::Option<
        Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRegularExpression>) + 'a>>,
    >,
}

impl<'a> SlotOfQRegularExpression<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::Ref<::qt_core::QRegularExpression>) + 'a>(
        f: F,
    ) -> SlotOfQRegularExpression<'a> {
        let mut obj = SlotOfQRegularExpression::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::Ref<::qt_core::QRegularExpression>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(
            data: *mut ::std::ffi::c_void,
            arg0: *const ::qt_core::QRegularExpression,
        ) {
            let func = unsafe {
                &mut *(data as *mut Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRegularExpression>)>)
            };
            func(unsafe {
                ::cpp_core::Ref::from_raw(arg0).expect("attempted to construct a null Ref")
            });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::Ref<::qt_core::QRegularExpression>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQRegularExpression> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQRegularExpression<'a> {
    fn default() -> Self {
        SlotOfQRegularExpression {
            raw_slot: unsafe { crate::RawSlotOfQRegularExpression::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQRegularExpression<'a> {
    type Arguments = <crate::RawSlotOfQRegularExpression as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QRegularExpression` to a Rust extern function.
///
/// It's recommended to use `SlotOfQRegularExpression` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QRegularExpression&```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQRegularExpression {
    _unused: u8,
}
impl RawSlotOfQRegularExpression {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRegularExpression>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_custom_slot(self as *mut crate::RawSlotOfQRegularExpression, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRegularExpression>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_metaObject(self as *const crate::RawSlotOfQRegularExpression);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQRegularExpression> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_qt_metacall(self as *mut crate::RawSlotOfQRegularExpression, arg1, arg2, ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3).as_mut_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_qt_metacast(self as *mut crate::RawSlotOfQRegularExpression, ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1).as_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *const ::qt_core::QRegularExpression),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_set(
            self as *mut crate::RawSlotOfQRegularExpression,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_tr(::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c).as_raw_ptr(), n);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_trUtf8(::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s).as_raw_ptr(), ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c).as_raw_ptr(), n);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQStandardItem {
    type Arguments = (*mut crate::QStandardItem,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(QStandardItem*)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::MutPtr<crate::QStandardItem>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QStandardItem*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQStandardItem<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQStandardItem>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::MutPtr<crate::QStandardItem>) + 'a>>>,
}

impl<'a> SlotOfQStandardItem<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::MutPtr<crate::QStandardItem>) + 'a>(
        f: F,
    ) -> SlotOfQStandardItem<'a> {
        let mut obj = SlotOfQStandardItem::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::MutPtr<crate::QStandardItem>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *mut crate::QStandardItem) {
            let func = unsafe {
                &mut *(data as *mut Box<dyn FnMut(::cpp_core::MutPtr<crate::QStandardItem>)>)
            };
            func(unsafe { ::cpp_core::MutPtr::from_raw(arg0) });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::MutPtr<crate::QStandardItem>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQStandardItem> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQStandardItem<'a> {
    fn default() -> Self {
        SlotOfQStandardItem {
            raw_slot: unsafe { crate::RawSlotOfQStandardItem::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQStandardItem<'a> {
    type Arguments = <crate::RawSlotOfQStandardItem as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*mut crate::QStandardItem` to a Rust extern function.
///
/// It's recommended to use `SlotOfQStandardItem` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QStandardItem*```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQStandardItem {
    _unused: u8,
}
impl RawSlotOfQStandardItem {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QStandardItem>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_custom_slot(
            self as *mut crate::RawSlotOfQStandardItem,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QStandardItem>>::cast_into(arg0)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_metaObject(
                self as *const crate::RawSlotOfQStandardItem,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_qt_metacall(
            self as *mut crate::RawSlotOfQStandardItem,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_qt_metacast(
                self as *mut crate::RawSlotOfQStandardItem,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<
            extern "C" fn(*mut ::std::ffi::c_void, *mut crate::QStandardItem),
        >,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_set(
            self as *mut crate::RawSlotOfQStandardItem,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_tr(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::RawSlotOfQScreen {
    type Arguments = (*mut crate::QScreen,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw_ref(self),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1custom_slot(QScreen*)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::cpp_core::MutPtr<crate::QScreen>` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QScreen*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.

pub struct SlotOfQScreen<'a> {
    raw_slot: ::cpp_core::CppBox<crate::RawSlotOfQScreen>,
    func: ::std::option::Option<Box<Box<dyn FnMut(::cpp_core::MutPtr<crate::QScreen>) + 'a>>>,
}

impl<'a> SlotOfQScreen<'a> {
    /// Constructs a new object.
    pub fn new<F: FnMut(::cpp_core::MutPtr<crate::QScreen>) + 'a>(f: F) -> SlotOfQScreen<'a> {
        let mut obj = SlotOfQScreen::default();
        obj.set(f);
        obj
    }

    /// Sets `f` as the callback closure. If `set()` is called again, previous closure is dropped.
    pub fn set<F: FnMut(::cpp_core::MutPtr<crate::QScreen>) + 'a>(&mut self, f: F) {
        extern "C" fn callback(data: *mut ::std::ffi::c_void, arg0: *mut crate::QScreen) {
            let func =
                unsafe { &mut *(data as *mut Box<dyn FnMut(::cpp_core::MutPtr<crate::QScreen>)>) };
            func(unsafe { ::cpp_core::MutPtr::from_raw(arg0) });
        }

        self.clear();
        // TODO: avoid second Box
        let mut func_box: Box<Box<dyn FnMut(::cpp_core::MutPtr<crate::QScreen>) + 'a>> =
            Box::new(Box::new(f));
        unsafe {
            self.raw_slot.set(
                Some(callback),
                ::cpp_core::MutPtr::from_raw(
                    &mut *func_box as *mut Box<_> as *mut ::std::ffi::c_void,
                ),
            );
        }
        self.func = Some(func_box);
    }

    /// Drops the previously set closure, if any. After this, slot invocation will have no effect
    /// until a new closure is set.
    pub fn clear(&mut self) {
        if self.func.is_some() {
            unsafe {
                self.raw_slot.set(None, ::cpp_core::NullPtr);
            }
            self.func = None;
        }
    }

    pub unsafe fn as_raw(&mut self) -> ::cpp_core::MutRef<crate::RawSlotOfQScreen> {
        self.raw_slot.as_mut_ref()
    }
}

impl<'a> Default for SlotOfQScreen<'a> {
    fn default() -> Self {
        SlotOfQScreen {
            raw_slot: unsafe { crate::RawSlotOfQScreen::new() },
            func: None,
        }
    }
}

impl<'a, 'b: 'a> ::qt_core::AsReceiver for &'b SlotOfQScreen<'a> {
    type Arguments = <crate::RawSlotOfQScreen as ::qt_core::AsReceiver>::Arguments;
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        self.raw_slot.as_receiver()
    }
}

/// Binds a Qt signal with arguments `*mut crate::QScreen` to a Rust extern function.
///
/// It's recommended to use `SlotOfQScreen` instead because it provides a more high-level API.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QScreen*```</span>).
///
/// Create an object using `new()` and bind your function and payload using `set()`. The function will receive the payload as its first arguments, and the rest of arguments will be values passed through the Qt connection system. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The callback function will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct RawSlotOfQScreen {
    _unused: u8,
}
impl RawSlotOfQScreen {
    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn custom_slot(
        &mut self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::MutPtr<crate::QScreen>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_custom_slot(
            self as *mut crate::RawSlotOfQScreen,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<crate::QScreen>>::cast_into(arg0)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_metaObject(
                self as *const crate::RawSlotOfQScreen,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::RawSlotOfQScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &mut self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: impl ::cpp_core::CastInto<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_qt_metacall(
            self as *mut crate::RawSlotOfQScreen,
            arg1,
            arg2,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<*mut ::std::ffi::c_void>>::cast_into(arg3)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &mut self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
    ) -> ::cpp_core::MutPtr<::std::ffi::c_void> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_qt_metacast(
                self as *mut crate::RawSlotOfQScreen,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(arg1)
                    .as_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// Assigns `func` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set(
        &mut self,
        func: ::std::option::Option<extern "C" fn(*mut ::std::ffi::c_void, *mut crate::QScreen)>,
        data: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::ffi::c_void>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_set(
            self as *mut crate::RawSlotOfQScreen,
            func,
            ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::ffi::c_void>>::cast_into(data)
                .as_mut_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_staticMetaObject();
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_tr(
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                .as_raw_ptr(),
            n,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        c: impl ::cpp_core::CastInto<::cpp_core::Ptr<::std::os::raw::c_char>>,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_trUtf8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(s)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::std::os::raw::c_char>>::cast_into(c)
                    .as_raw_ptr(),
                n,
            );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QPair<double, QColor>>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQPairOfDoubleQColor {
    _unused: u8,
}
impl QVectorOfQPairOfDoubleQColor {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::append(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_pair_of_double_q_color(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_append(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::append(const QVector<QPair<double, QColor>>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_pair_of_double_q_color(
        &mut self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_append2(self as *mut crate::QVectorOfQPairOfDoubleQColor, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>::cast_into(l).as_raw_ptr())
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>& QVector<QPair<double, QColor>>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_at(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor>& QVector<QPair<double, QColor>>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&mut self) -> ::cpp_core::MutRef<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_back(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>& QVector<QPair<double, QColor>>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_back1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_capacity(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_clear(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>* QVector<QPair<double, QColor>>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_constData(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>& QVector<QPair<double, QColor>>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_constFirst(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>& QVector<QPair<double, QColor>>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_constLast(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::contains(const QPair<double, QColor>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_contains(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>>& QVector<QPair<double, QColor>>::operator=(const QVector<QPair<double, QColor>>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator_(self as *mut crate::QVectorOfQPairOfDoubleQColor, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>::cast_into(v).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::count(const QPair<double, QColor>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_count(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_count1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor>* QVector<QPair<double, QColor>>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_data(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>* QVector<QPair<double, QColor>>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_data1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_detach(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_empty(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::endsWith(const QPair<double, QColor>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_endsWith(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>>& QVector<QPair<double, QColor>>::fill(const QPair<double, QColor>& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_fill(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
            size,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>>& QVector<QPair<double, QColor>>::fill(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_fill1(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor>& QVector<QPair<double, QColor>>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&mut self) -> ::cpp_core::MutRef<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_first(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>& QVector<QPair<double, QColor>>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_first1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor>& QVector<QPair<double, QColor>>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&mut self) -> ::cpp_core::MutRef<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_front(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>& QVector<QPair<double, QColor>>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_front1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor>& QVector<QPair<double, QColor>>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator__2(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            i,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>& QVector<QPair<double, QColor>>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator__3(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            i,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::indexOf(const QPair<double, QColor>& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_indexOf(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::indexOf(const QPair<double, QColor>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_indexOf1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::insert(int i, const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_insert(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::insert(int i, int n, const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_insert1(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_isDetached(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_isEmpty(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::isSharedWith(const QVector<QPair<double, QColor>>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_isSharedWith(self as *const crate::QVectorOfQPairOfDoubleQColor, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>::cast_into(other).as_raw_ptr())
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor>& QVector<QPair<double, QColor>>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&mut self) -> ::cpp_core::MutRef<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_last(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>& QVector<QPair<double, QColor>>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_last1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::lastIndexOf(const QPair<double, QColor>& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_lastIndexOf(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::lastIndexOf(const QPair<double, QColor>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_lastIndexOf1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_length(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>> QVector<QPair<double, QColor>>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_mid(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            pos,
            len,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>> QVector<QPair<double, QColor>>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_mid1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            pos,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_move(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPair<double, QColor>>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPair<double, QColor>>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPair<double, QColor>>::QVector(int size, const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_QVector2(
            size,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPair<double, QColor>>::QVector(const QVector<QPair<double, QColor>>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_QVector3(::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>::cast_into(v).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_pop_back(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_pop_front(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::prepend(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_prepend(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::push_back(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_push_back(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::push_front(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_push_front(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_remove(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_remove1(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::removeAll(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_removeAll(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_removeAt(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_removeFirst(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_removeLast(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::removeOne(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_removeOne(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::replace(int i, const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_replace(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_reserve(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_resize(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_setSharable(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_shrink_to_fit(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_size(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_squeeze(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::startsWith(const QPair<double, QColor>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_startsWith(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<double, QColor>>::swap(QVector<QPair<double, QColor>>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor>>,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_swap(self as *mut crate::QVectorOfQPairOfDoubleQColor, ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor>>::cast_into(other).as_mut_raw_ptr())
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor> QVector<QPair<double, QColor>>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_takeAt(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor> QVector<QPair<double, QColor>>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&mut self) -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_takeFirst(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor> QVector<QPair<double, QColor>>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&mut self) -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_takeLast(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor> QVector<QPair<double, QColor>>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_value(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            i,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor> QVector<QPair<double, QColor>>::value(int i, const QPair<double, QColor>& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfDoubleQColor>>,
    ) -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_value1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfDoubleQColor>>::cast_into(
                default_value,
            )
            .as_raw_ptr(),
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag {
    _unused: u8,
}
impl QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag {
    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::append(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_pair_of_q_accessible_interface_q_flags_relation_flag(
        &mut self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_append(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::append(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_pair_of_q_accessible_interface_q_flags_relation_flag(
        &mut self,
        l: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_append2(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(l).as_raw_ptr())
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_at(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_back(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(
        &self,
    ) -> ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_back1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_capacity(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_clear(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>* QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(
        &self,
    ) -> ::cpp_core::Ptr<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_constData(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(
        &self,
    ) -> ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_constFirst(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(
        &self,
    ) -> ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_constLast(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::contains(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_contains(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator=(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &mut self,
        v: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator_(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(v).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::count(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_count(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_count1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>* QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_data(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>* QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(
        &self,
    ) -> ::cpp_core::Ptr<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_data1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_detach(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_empty(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::endsWith(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_endsWith(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::fill(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &mut self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_fill(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr(), size);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::fill(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &mut self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_fill1(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr());
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_first(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(
        &self,
    ) -> ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_first1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_front(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(
        &self,
    ) -> ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_front1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::MutRef<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator__2(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator__3(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::indexOf(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_indexOf(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr(), from)
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::indexOf(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_indexOf1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::insert(int i, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_insert(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::insert(int i, int n, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &mut self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_insert1(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i, n, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_isDetached(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_isEmpty(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::isSharedWith(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_isSharedWith(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(other).as_raw_ptr())
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(
        &mut self,
    ) -> ::cpp_core::MutRef<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_last(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(
        &self,
    ) -> ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_last1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::lastIndexOf(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_lastIndexOf(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr(), from)
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::lastIndexOf(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_lastIndexOf1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_length(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>> QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_mid(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, pos, len);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>> QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_mid1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, pos);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&mut self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_move(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, from, to)
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a(
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_QVector();
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_QVector1(size);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::QVector(int size, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_QVector2(size, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::QVector(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_QVector3(::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(v).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_pop_back(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_pop_front(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::prepend(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(
        &mut self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_prepend(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::push_back(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(
        &mut self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_push_back(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::push_front(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(
        &mut self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_push_front(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_remove(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&mut self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_remove1(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i, n)
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::removeAll(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &mut self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_removeAll(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&mut self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_removeAt(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_removeFirst(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_removeLast(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::removeOne(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &mut self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_removeOne(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::replace(int i, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &mut self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_replace(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_reserve(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, size)
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&mut self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_resize(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&mut self, sharable: bool) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_setSharable(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, sharable)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    ///
    /// This item is available if `any(cpp_lib_version="5.11.3", cpp_lib_version="5.12.2", cpp_lib_version="5.13.0")`.
    #[inline(always)]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_shrink_to_fit(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_size(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_squeeze(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::startsWith(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_startsWith(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(t).as_raw_ptr())
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::swap(QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &mut self,
        other: impl ::cpp_core::CastInto<
            ::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_swap(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(other).as_mut_raw_ptr())
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>> QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &mut self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_takeAt(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>> QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_takeFirst(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>> QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_takeLast(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>> QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_value(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>> QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::value(int i, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >,
    ) -> ::cpp_core::CppBox<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_value1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, i, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(default_value).as_raw_ptr());
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QColor>> for crate::QColor {
    /// <p>Returns <code>true</code> if this color has the same RGB and alpha values as <i>color</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QColor::operator==(const QColor& c) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this color has the same RGB and alpha values as <i>color</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, c: &::cpp_core::Ref<crate::QColor>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QColor_operator__(
                self as *const crate::QColor,
                c.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QRegion {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QRegion::~QRegion()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QRegion_dQRegion(self as *mut crate::QRegion)
    }
}

impl ::cpp_core::ops::Begin for crate::QRegion {
    type Output = ::cpp_core::Ptr<::qt_core::QRect>;
    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qregion.html#const_iterator-typedef">const_iterator</a> pointing to the beginning of the range of rectangles that make up this range, in the order in which <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>() returns them.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QRegion::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qregion.html#const_iterator-typedef">const_iterator</a> pointing to the beginning of the range of rectangles that make up this range, in the order in which <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>() returns them.</p>
    /// <p>This function was introduced in  Qt 5.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#rbegin">rbegin</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#cbegin">cbegin</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_begin(self as *const crate::QRegion);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::ops::End for crate::QRegion {
    type Output = ::cpp_core::Ptr<::qt_core::QRect>;
    /// <p>Returns a <a href="http://doc.qt.io/qt-5/qregion.html#const_iterator-typedef">const_iterator</a> pointing to one past the end of the range of rectangles that make up this range, in the order in which <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>() returns them.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QRegion::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qregion.html#const_iterator-typedef">const_iterator</a> pointing to one past the end of the range of rectangles that make up this range, in the order in which <a href="http://doc.qt.io/qt-5/qregion.html#rects">rects</a>() returns them.</p>
    /// <p>This function was introduced in  Qt 5.8.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#rend">rend</a>(), <a href="http://doc.qt.io/qt-5/qregion.html#cend">cend</a>(), and <a href="http://doc.qt.io/qt-5/qregion.html#begin">begin</a>().</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QRegion_end(self as *const crate::QRegion);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::BitOr<::cpp_core::Ref<crate::QRegion>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() function to this region and <i>r</i>. <code>r1|r2</code> is equivalent to <code>r1.united(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::operator|(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-7c">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() function to this region and <i>r</i>. <code>r1|r2</code> is equivalent to <code>r1.united(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() and <a href="http://doc.qt.io/qt-5/qregion.html#operator-2b">operator+</a>().</p></div>
    #[inline(always)]
    fn bitor(self, r: ::cpp_core::Ref<crate::QRegion>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_2(
                self as *const crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QRegion>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() function to this region and <i>r</i>. <code>r1+r2</code> is equivalent to <code>r1.united(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::operator+(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() function to this region and <i>r</i>. <code>r1+r2</code> is equivalent to <code>r1.united(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() and <a href="http://doc.qt.io/qt-5/qregion.html#operator-7c">operator|</a>().</p></div>
    #[inline(always)]
    fn add(self, r: ::cpp_core::Ref<crate::QRegion>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_3(
                self as *const crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<::qt_core::QRect>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::operator+(const QRect& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-2b-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    fn add(self, r: ::cpp_core::Ref<::qt_core::QRect>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_4(
                self as *const crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::BitAnd<::cpp_core::Ref<crate::QRegion>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>() function to this region and <i>r</i>. <code>r1&amp;r2</code> is equivalent to <code>r1.intersected(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::operator&(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-and">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>() function to this region and <i>r</i>. <code>r1&amp;r2</code> is equivalent to <code>r1.intersected(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>().</p></div>
    #[inline(always)]
    fn bitand(self, r: ::cpp_core::Ref<crate::QRegion>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_5(
                self as *const crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::BitAnd<::cpp_core::Ref<::qt_core::QRect>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::operator&(const QRect& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-and-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    fn bitand(self, r: ::cpp_core::Ref<::qt_core::QRect>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_6(
                self as *const crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::cpp_core::Ref<crate::QRegion>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>() function to this region and <i>r</i>. <code>r1-r2</code> is equivalent to <code>r1.subtracted(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::operator-(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>() function to this region and <i>r</i>. <code>r1-r2</code> is equivalent to <code>r1.subtracted(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>().</p></div>
    #[inline(always)]
    fn sub(self, r: ::cpp_core::Ref<crate::QRegion>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_7(
                self as *const crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::BitXor<::cpp_core::Ref<crate::QRegion>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>() function to this region and <i>r</i>. <code>r1^r2</code> is equivalent to <code>r1.xored(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion QRegion::operator^(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-5e">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>() function to this region and <i>r</i>. <code>r1^r2</code> is equivalent to <code>r1.xored(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>().</p></div>
    #[inline(always)]
    fn bitxor(self, r: ::cpp_core::Ref<crate::QRegion>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator_8(
                self as *const crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::BitOrAssign<::cpp_core::Ref<crate::QRegion>> for crate::QRegion {
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1|=r2</code> is equivalent to <code>r1 = r1.united(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion& QRegion::operator|=(const QRegion& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-7c-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1|=r2</code> is equivalent to <code>r1 = r1.united(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>().</p></div>
    #[inline(always)]
    fn bitor_assign(&mut self, r: ::cpp_core::Ref<crate::QRegion>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator__(
                self as *mut crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QRegion>> for crate::QRegion {
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1+=r2</code> is equivalent to <code>r1 = r1.united(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion& QRegion::operator+=(const QRegion& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1+=r2</code> is equivalent to <code>r1 = r1.united(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, r: ::cpp_core::Ref<crate::QRegion>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator__1(
                self as *mut crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QRect>> for crate::QRegion {
    /// <p>Returns a region that is the union of this region with the specified <i>rect</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion& QRegion::operator+=(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a region that is the union of this region with the specified <i>rect</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#united">united</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, r: ::cpp_core::Ref<::qt_core::QRect>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator__2(
                self as *mut crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::BitAndAssign<::cpp_core::Ref<crate::QRegion>> for crate::QRegion {
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1&amp;=r2</code> is equivalent to <code>r1</code> = r1.intersected(r2).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion& QRegion::operator&=(const QRegion& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-and-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1&amp;=r2</code> is equivalent to <code>r1</code> = r1.intersected(r2).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#intersected">intersected</a>().</p></div>
    #[inline(always)]
    fn bitand_assign(&mut self, r: ::cpp_core::Ref<crate::QRegion>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator__3(
                self as *mut crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::BitAndAssign<::cpp_core::Ref<::qt_core::QRect>> for crate::QRegion {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion& QRegion::operator&=(const QRect& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-and-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>This function was introduced in  Qt 4.4.</p></div>
    #[inline(always)]
    fn bitand_assign(&mut self, r: ::cpp_core::Ref<::qt_core::QRect>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator__4(
                self as *mut crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<crate::QRegion>> for crate::QRegion {
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1-=r2</code> is equivalent to <code>r1 = r1.subtracted(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion& QRegion::operator-=(const QRegion& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1-=r2</code> is equivalent to <code>r1 = r1.subtracted(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#subtracted">subtracted</a>().</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, r: ::cpp_core::Ref<crate::QRegion>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator__5(
                self as *mut crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::BitXorAssign<::cpp_core::Ref<crate::QRegion>> for crate::QRegion {
    /// <p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1^=r2</code> is equivalent to <code>r1 = r1.xored(r2)</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRegion& QRegion::operator^=(const QRegion& r)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-5e-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Applies the <a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>() function to this region and <i>r</i> and assigns the result to this region. <code>r1^=r2</code> is equivalent to <code>r1 = r1.xored(r2)</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qregion.html#xored">xored</a>().</p></div>
    #[inline(always)]
    fn bitxor_assign(&mut self, r: ::cpp_core::Ref<crate::QRegion>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator__6(
                self as *mut crate::QRegion,
                r.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QRegion>> for crate::QRegion {
    /// <p>Returns <code>true</code> if the region is equal to <i>r</i>; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRegion::operator==(const QRegion& r) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregion.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the region is equal to <i>r</i>; otherwise returns false.</p></div>
    #[inline(always)]
    fn eq(&self, r: &::cpp_core::Ref<crate::QRegion>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRegion_operator__7(
                self as *const crate::QRegion,
                r.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QKeySequence {
    /// <p>Destroys the key sequence.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QKeySequence::~QKeySequence()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#dtor.QKeySequence">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the key sequence.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_dQKeySequence(self as *mut crate::QKeySequence)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QKeySequence>> for crate::QKeySequence {
    /// <p>Returns <code>true</code> if this key sequence is equal to the <i>other</i> key sequence; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QKeySequence::operator==(const QKeySequence& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this key sequence is equal to the <i>other</i> key sequence; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QKeySequence>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QKeySequence_operator__1(
                self as *const crate::QKeySequence,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QKeySequence>> for crate::QKeySequence {
    /// <p>Provides an arbitrary comparison of this key sequence and <i>other</i> key sequence. All that is guaranteed is that the operator returns <code>false</code> if both key sequences are equal and that (ks1 &lt; ks2) == !( ks2 &lt; ks1) if the key sequences are not equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QKeySequence::operator<(const QKeySequence& ks) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides an arbitrary comparison of this key sequence and <i>other</i> key sequence. All that is guaranteed is that the operator returns <code>false</code> if both key sequences are equal and that (ks1 &lt; ks2) == !( ks2 &lt; ks1) if the key sequences are not equal.</p>
    /// <p>This function is useful in some circumstances, for example if you want to use <a href="http://doc.qt.io/qt-5/qkeysequence.html">QKeySequence</a> objects as keys in a <a href="http://doc.qt.io/qt-5/qmap.html">QMap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-eq-eq">operator==</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-not-eq">operator!=</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-gt">operator&gt;</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-lt-eq">operator&lt;=</a>(), and <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-gt-eq">operator&gt;=</a>().</p></div>
    #[inline(always)]
    unsafe fn lt(&self, ks: &::cpp_core::Ref<crate::QKeySequence>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_operator_2(
            self as *const crate::QKeySequence,
            ks.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QKeySequence>> for crate::QKeySequence {
    /// <p>Returns <code>true</code> if this key sequence is larger than the <i>other</i> key sequence; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QKeySequence::operator>(const QKeySequence& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this key sequence is larger than the <i>other</i> key sequence; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-eq-eq">operator==</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-not-eq">operator!=</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-lt">operator&lt;</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-lt-eq">operator&lt;=</a>(), and <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-gt-eq">operator&gt;=</a>().</p></div>
    #[inline(always)]
    unsafe fn gt(&self, other: &::cpp_core::Ref<crate::QKeySequence>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_operator_3(
            self as *const crate::QKeySequence,
            other.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QKeySequence>> for crate::QKeySequence {
    /// <p>Returns <code>true</code> if this key sequence is smaller or equal to the <i>other</i> key sequence; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QKeySequence::operator<=(const QKeySequence& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this key sequence is smaller or equal to the <i>other</i> key sequence; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-eq-eq">operator==</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-not-eq">operator!=</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-lt">operator&lt;</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-gt">operator&gt;</a>(), and <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-gt-eq">operator&gt;=</a>().</p></div>
    #[inline(always)]
    unsafe fn le(&self, other: &::cpp_core::Ref<crate::QKeySequence>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_operator__3(
            self as *const crate::QKeySequence,
            other.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QKeySequence>> for crate::QKeySequence {
    /// <p>Returns <code>true</code> if this key sequence is larger or equal to the <i>other</i> key sequence; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QKeySequence::operator>=(const QKeySequence& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this key sequence is larger or equal to the <i>other</i> key sequence; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-eq-eq">operator==</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-not-eq">operator!=</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-lt">operator&lt;</a>(), <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-gt">operator&gt;</a>(), and <a href="http://doc.qt.io/qt-5/qkeysequence.html#operator-lt-eq">operator&lt;=</a>().</p></div>
    #[inline(always)]
    unsafe fn ge(&self, other: &::cpp_core::Ref<crate::QKeySequence>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QKeySequence_operator__4(
            self as *const crate::QKeySequence,
            other.as_raw_ptr(),
        )
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVector2D>> for crate::QVector2D {
    /// <p>Adds the given <i>vector</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D& QVector2D::operator+=(const QVector2D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>vector</i> to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#operator--eq">operator-=</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector2D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator__2(
                self as *mut crate::QVector2D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<crate::QVector2D>> for crate::QVector2D {
    /// <p>Subtracts the given <i>vector</i> from this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D& QVector2D::operator-=(const QVector2D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Subtracts the given <i>vector</i> from this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector2D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator__3(
                self as *mut crate::QVector2D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::std::os::raw::c_float> for crate::QVector2D {
    /// <p>Multiplies this vector's coordinates by the given <i>factor</i>, and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D& QVector2D::operator*=(float factor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2a-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this vector's coordinates by the given <i>factor</i>, and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2f-eq">operator/=</a>().</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, factor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator__4(
                self as *mut crate::QVector2D,
                factor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::cpp_core::Ref<crate::QVector2D>> for crate::QVector2D {
    /// <p>Multiplies the components of this vector by the corresponding components in <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D& QVector2D::operator*=(const QVector2D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2a-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies the components of this vector by the corresponding components in <i>vector</i>.</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector2D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator__5(
                self as *mut crate::QVector2D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::std::os::raw::c_float> for crate::QVector2D {
    /// <p>Divides this vector's coordinates by the given <i>divisor</i>, and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D& QVector2D::operator/=(float divisor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2f-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Divides this vector's coordinates by the given <i>divisor</i>, and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2a-eq">operator*=</a>().</p></div>
    #[inline(always)]
    fn div_assign(&mut self, divisor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator__6(
                self as *mut crate::QVector2D,
                divisor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::cpp_core::Ref<crate::QVector2D>> for crate::QVector2D {
    /// <p>Divides the components of this vector by the corresponding components in <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector2D& QVector2D::operator/=(const QVector2D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2f-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Divides the components of this vector by the corresponding components in <i>vector</i>.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector2d.html#operator-2a-eq">operator*=</a>().</p></div>
    #[inline(always)]
    fn div_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector2D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector2D_operator__7(
                self as *mut crate::QVector2D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVector2D>> for crate::QVector2D {
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QVector2D& v1, const QVector2D& v2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v2: &::cpp_core::Ref<crate::QVector2D>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__9(
                self as *const crate::QVector2D,
                v2.as_raw_ptr(),
            )
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVector2D>> for &crate::QVector2D {
    type Output = ::cpp_core::CppBox<crate::QVector2D>;
    /// Calls C++ function: <span style='color: green;'>```QVector2D operator+(const QVector2D& v1, const QVector2D& v2)```</span>.
    #[inline(always)]
    fn add(self, v2: ::cpp_core::Ref<crate::QVector2D>) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_(self as *const crate::QVector2D, v2.as_raw_ptr())
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::cpp_core::Ref<crate::QVector2D>> for &crate::QVector2D {
    type Output = ::cpp_core::CppBox<crate::QVector2D>;
    /// Calls C++ function: <span style='color: green;'>```QVector2D operator-(const QVector2D& v1, const QVector2D& v2)```</span>.
    #[inline(always)]
    fn sub(self, v2: ::cpp_core::Ref<crate::QVector2D>) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_1(
                self as *const crate::QVector2D,
                v2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::std::os::raw::c_float> for &crate::QVector2D {
    type Output = ::cpp_core::CppBox<crate::QVector2D>;
    /// Calls C++ function: <span style='color: green;'>```QVector2D operator*(const QVector2D& vector, float factor)```</span>.
    #[inline(always)]
    fn mul(self, factor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_3(self as *const crate::QVector2D, factor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QVector2D>> for &crate::QVector2D {
    type Output = ::cpp_core::CppBox<crate::QVector2D>;
    /// Calls C++ function: <span style='color: green;'>```QVector2D operator*(const QVector2D& v1, const QVector2D& v2)```</span>.
    #[inline(always)]
    fn mul(self, v2: ::cpp_core::Ref<crate::QVector2D>) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_4(
                self as *const crate::QVector2D,
                v2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Div<::std::os::raw::c_float> for &crate::QVector2D {
    type Output = ::cpp_core::CppBox<crate::QVector2D>;
    /// Calls C++ function: <span style='color: green;'>```QVector2D operator/(const QVector2D& vector, float divisor)```</span>.
    #[inline(always)]
    fn div(self, divisor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_6(self as *const crate::QVector2D, divisor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Div<::cpp_core::Ref<crate::QVector2D>> for &crate::QVector2D {
    type Output = ::cpp_core::CppBox<crate::QVector2D>;
    /// Calls C++ function: <span style='color: green;'>```QVector2D operator/(const QVector2D& vector, const QVector2D& divisor)```</span>.
    #[inline(always)]
    fn div(
        self,
        divisor: ::cpp_core::Ref<crate::QVector2D>,
    ) -> ::cpp_core::CppBox<crate::QVector2D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_7(
                self as *const crate::QVector2D,
                divisor.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QTouchDevice {
    /// <p>Destroys a touch device instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTouchDevice::~QTouchDevice()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchdevice.html#dtor.QTouchDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys a touch device instance.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchDevice_dQTouchDevice(self as *mut crate::QTouchDevice)
    }
}

impl ::cpp_core::CppDeletable for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QInputEvent::~QInputEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QInputEvent_dQInputEvent(self as *mut crate::QInputEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QEnterEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QEnterEvent::~QEnterEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QEnterEvent_dQEnterEvent(self as *mut crate::QEnterEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QMouseEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QMouseEvent::~QMouseEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMouseEvent_dQMouseEvent(self as *mut crate::QMouseEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QHoverEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QHoverEvent::~QHoverEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QHoverEvent_dQHoverEvent(self as *mut crate::QHoverEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QWheelEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QWheelEvent::~QWheelEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWheelEvent_dQWheelEvent(self as *mut crate::QWheelEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QTabletEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QTabletEvent::~QTabletEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTabletEvent_dQTabletEvent(self as *mut crate::QTabletEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QKeyEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QKeyEvent::~QKeyEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QKeyEvent_dQKeyEvent(self as *mut crate::QKeyEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QFocusEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QFocusEvent::~QFocusEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QFocusEvent_dQFocusEvent(self as *mut crate::QFocusEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QPaintEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPaintEvent::~QPaintEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEvent_dQPaintEvent(self as *mut crate::QPaintEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QMoveEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QMoveEvent::~QMoveEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMoveEvent_dQMoveEvent(self as *mut crate::QMoveEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QExposeEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QExposeEvent::~QExposeEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QExposeEvent_dQExposeEvent(self as *mut crate::QExposeEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QPlatformSurfaceEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPlatformSurfaceEvent::~QPlatformSurfaceEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPlatformSurfaceEvent_dQPlatformSurfaceEvent(
            self as *mut crate::QPlatformSurfaceEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QResizeEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QResizeEvent::~QResizeEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QResizeEvent_dQResizeEvent(self as *mut crate::QResizeEvent)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QResizeEvent {
    /// <p>Returns the new size of the widget. This is the same as <a href="http://doc.qt.io/qt-5/qwidget.html#size-prop">QWidget::size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize& QResizeEvent::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qresizeevent.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the new size of the widget. This is the same as <a href="http://doc.qt.io/qt-5/qwidget.html#size-prop">QWidget::size</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QResizeEvent_size(self as *const crate::QResizeEvent);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QCloseEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QCloseEvent::~QCloseEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QCloseEvent_dQCloseEvent(self as *mut crate::QCloseEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QIconDragEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QIconDragEvent::~QIconDragEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QIconDragEvent_dQIconDragEvent(
            self as *mut crate::QIconDragEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QShowEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QShowEvent::~QShowEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QShowEvent_dQShowEvent(self as *mut crate::QShowEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QHideEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QHideEvent::~QHideEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QHideEvent_dQHideEvent(self as *mut crate::QHideEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QContextMenuEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QContextMenuEvent::~QContextMenuEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QContextMenuEvent_dQContextMenuEvent(
            self as *mut crate::QContextMenuEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QInputMethodEvent {
    /// <p>Destroys the instance of QInputMethodEvent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QInputMethodEvent::~QInputMethodEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qinputmethodevent.html#dtor.QInputMethodEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QInputMethodEvent.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethodEvent_dQInputMethodEvent(
            self as *mut crate::QInputMethodEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QInputMethodQueryEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QInputMethodQueryEvent::~QInputMethodQueryEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QInputMethodQueryEvent_dQInputMethodQueryEvent(
            self as *mut crate::QInputMethodQueryEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QDropEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QDropEvent::~QDropEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDropEvent_dQDropEvent(self as *mut crate::QDropEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QDragMoveEvent {
    /// <p>Destroys the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QDragMoveEvent::~QDragMoveEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdragmoveevent.html#dtor.QDragMoveEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the event.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDragMoveEvent_dQDragMoveEvent(
            self as *mut crate::QDragMoveEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QDragEnterEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QDragEnterEvent::~QDragEnterEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDragEnterEvent_dQDragEnterEvent(
            self as *mut crate::QDragEnterEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QDragLeaveEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QDragLeaveEvent::~QDragLeaveEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDragLeaveEvent_dQDragLeaveEvent(
            self as *mut crate::QDragLeaveEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QHelpEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QHelpEvent::~QHelpEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QHelpEvent_dQHelpEvent(self as *mut crate::QHelpEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QStatusTipEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QStatusTipEvent::~QStatusTipEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QStatusTipEvent_dQStatusTipEvent(
            self as *mut crate::QStatusTipEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QWhatsThisClickedEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QWhatsThisClickedEvent::~QWhatsThisClickedEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWhatsThisClickedEvent_dQWhatsThisClickedEvent(
            self as *mut crate::QWhatsThisClickedEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QActionEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QActionEvent::~QActionEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QActionEvent_dQActionEvent(self as *mut crate::QActionEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QFileOpenEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QFileOpenEvent::~QFileOpenEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QFileOpenEvent_dQFileOpenEvent(
            self as *mut crate::QFileOpenEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QToolBarChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QToolBarChangeEvent::~QToolBarChangeEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QToolBarChangeEvent_dQToolBarChangeEvent(
            self as *mut crate::QToolBarChangeEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QShortcutEvent {
    /// <p>Destroys the event object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QShortcutEvent::~QShortcutEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qshortcutevent.html#dtor.QShortcutEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the event object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QShortcutEvent_dQShortcutEvent(
            self as *mut crate::QShortcutEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QWindowStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QWindowStateChangeEvent::~QWindowStateChangeEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindowStateChangeEvent_dQWindowStateChangeEvent(
            self as *mut crate::QWindowStateChangeEvent,
        )
    }
}

impl ::std::cmp::PartialEq<crate::q_key_sequence::StandardKey> for crate::QKeyEvent {
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(QKeyEvent* e, QKeySequence::StandardKey key)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, key: &crate::q_key_sequence::StandardKey) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__16(
                self as *const crate::QKeyEvent as *mut crate::QKeyEvent,
                *key,
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>
    for crate::QPointingDeviceUniqueId
{
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(QPointingDeviceUniqueId lhs, QPointingDeviceUniqueId rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, rhs: &::cpp_core::Ref<crate::QPointingDeviceUniqueId>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__18(
                self as *const crate::QPointingDeviceUniqueId,
                rhs.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QTouchEvent {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QTouchEvent::~QTouchEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtouchevent.html#dtor.QTouchEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qtouchevent.html">QTouchEvent</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTouchEvent_dQTouchEvent(self as *mut crate::QTouchEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QScrollPrepareEvent {
    /// <p>Destroys <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QScrollPrepareEvent::~QScrollPrepareEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollprepareevent.html#dtor.QScrollPrepareEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QScrollPrepareEvent_dQScrollPrepareEvent(
            self as *mut crate::QScrollPrepareEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QScrollEvent {
    /// <p>Destroys <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QScrollEvent::~QScrollEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscrollevent.html#dtor.QScrollEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys <a href="http://doc.qt.io/qt-5/qscrollevent.html">QScrollEvent</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QScrollEvent_dQScrollEvent(self as *mut crate::QScrollEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QScreenOrientationChangeEvent {
    /// <p>Destroys <a href="http://doc.qt.io/qt-5/qscreenorientationchangeevent.html">QScreenOrientationChangeEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreenorientationchangeevent.html#dtor.QScreenOrientationChangeEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys <a href="http://doc.qt.io/qt-5/qscreenorientationchangeevent.html">QScreenOrientationChangeEvent</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QScreenOrientationChangeEvent_dQScreenOrientationChangeEvent(
            self as *mut crate::QScreenOrientationChangeEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QFont {
    /// <p>Destroys the font object and frees all allocated resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QFont::~QFont()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#dtor.QFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the font object and frees all allocated resources.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QFont_dQFont(self as *mut crate::QFont)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QFont>> for crate::QFont {
    /// <p>Returns <code>true</code> if this font is equal to <i>f</i>; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::operator==(const QFont& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this font is equal to <i>f</i>; otherwise returns false.</p>
    /// <p>Two QFonts are considered equal if their font attributes are equal.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#operator-not-eq">operator!=</a>() and <a href="http://doc.qt.io/qt-5/qfont.html#isCopyOf">isCopyOf</a>().</p></div>
    #[inline(always)]
    fn eq(&self, arg1: &::cpp_core::Ref<crate::QFont>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QFont_operator__(
                self as *const crate::QFont,
                arg1.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QFont>> for crate::QFont {
    /// <p>Provides an arbitrary comparison of this font and font <i>f</i>. All that is guaranteed is that the operator returns <code>false</code> if both fonts are equal and that (f1 &lt; f2) == !(f2 &lt; f1) if the fonts are not equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFont::operator<(const QFont& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfont.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides an arbitrary comparison of this font and font <i>f</i>. All that is guaranteed is that the operator returns <code>false</code> if both fonts are equal and that (f1 &lt; f2) == !(f2 &lt; f1) if the fonts are not equal.</p>
    /// <p>This function is useful in some circumstances, for example if you want to use <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> objects as keys in a <a href="http://doc.qt.io/qt-5/qmap.html">QMap</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfont.html#operator-eq-eq">operator==</a>(), <a href="http://doc.qt.io/qt-5/qfont.html#operator-not-eq">operator!=</a>(), and <a href="http://doc.qt.io/qt-5/qfont.html#isCopyOf">isCopyOf</a>().</p></div>
    #[inline(always)]
    unsafe fn lt(&self, arg1: &::cpp_core::Ref<crate::QFont>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QFont_operator_1(
            self as *const crate::QFont,
            arg1.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPolygon {
    /// <p>Destroys the polygon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPolygon::~QPolygon()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygon.html#dtor.QPolygon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the polygon.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygon_dQPolygon(self as *mut crate::QPolygon)
    }
}

impl ::cpp_core::CppDeletable for crate::QPolygonF {
    /// <p>Destroys the polygon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPolygonF::~QPolygonF()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpolygonf.html#dtor.QPolygonF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the polygon.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPolygonF_dQPolygonF(self as *mut crate::QPolygonF)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QMatrix>> for crate::QMatrix {
    /// <p>Returns <code>true</code> if this matrix is equal to the given <i>matrix</i>, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QMatrix::operator==(const QMatrix& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this matrix is equal to the given <i>matrix</i>, otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, arg1: &::cpp_core::Ref<crate::QMatrix>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_operator__(
                self as *const crate::QMatrix,
                arg1.as_raw_ptr(),
            )
        }
    }
}

impl ::std::ops::MulAssign<::cpp_core::Ref<crate::QMatrix>> for crate::QMatrix {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix& QMatrix::operator*=(const QMatrix& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#operator-2a-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the result of multiplying this matrix by the given <i>matrix</i>.</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, arg1: ::cpp_core::Ref<crate::QMatrix>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_operator__2(
                self as *mut crate::QMatrix,
                arg1.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QMatrix>> for &crate::QMatrix {
    type Output = ::cpp_core::CppBox<crate::QMatrix>;
    /// <p>Returns the result of multiplying this matrix by the given <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix QMatrix::operator*(const QMatrix& o) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the result of multiplying this matrix by the given <i>matrix</i>.</p>
    /// <p>Note that matrix multiplication is not commutative, i.e. a*b != b*a.</p></div>
    #[inline(always)]
    fn mul(self, o: ::cpp_core::Ref<crate::QMatrix>) -> ::cpp_core::CppBox<crate::QMatrix> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix_operator_2(
                self as *const crate::QMatrix,
                o.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QMatrix>> for &crate::QPolygon {
    type Output = ::cpp_core::CppBox<crate::QPolygon>;
    /// Calls C++ function: <span style='color: green;'>```QPolygon operator*(const QPolygon& a, const QMatrix& m)```</span>.
    #[inline(always)]
    fn mul(self, m: ::cpp_core::Ref<crate::QMatrix>) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_18(self as *const crate::QPolygon, m.as_raw_ptr())
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QMatrix>> for &crate::QPolygonF {
    type Output = ::cpp_core::CppBox<crate::QPolygonF>;
    /// Calls C++ function: <span style='color: green;'>```QPolygonF operator*(const QPolygonF& a, const QMatrix& m)```</span>.
    #[inline(always)]
    fn mul(self, m: ::cpp_core::Ref<crate::QMatrix>) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_19(
                self as *const crate::QPolygonF,
                m.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QMatrix>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// Calls C++ function: <span style='color: green;'>```QRegion operator*(const QRegion& r, const QMatrix& m)```</span>.
    #[inline(always)]
    fn mul(self, m: ::cpp_core::Ref<crate::QMatrix>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_20(self as *const crate::QRegion, m.as_raw_ptr())
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QMatrix>> for &crate::QPainterPath {
    type Output = ::cpp_core::CppBox<crate::QPainterPath>;
    /// Calls C++ function: <span style='color: green;'>```QPainterPath operator*(const QPainterPath& p, const QMatrix& m)```</span>.
    #[inline(always)]
    fn mul(self, m: ::cpp_core::Ref<crate::QMatrix>) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_21(
                self as *const crate::QPainterPath,
                m.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QPainterPath {
    /// <p>Destroys this <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPainterPath::~QPainterPath()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#dtor.QPainterPath">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys this <a href="http://doc.qt.io/qt-5/qpainterpath.html">QPainterPath</a> object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPath_dQPainterPath(self as *mut crate::QPainterPath)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPainterPath>> for crate::QPainterPath {
    /// <p>Returns <code>true</code> if this painterpath is equal to the given <i>path</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainterPath::operator==(const QPainterPath& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this painterpath is equal to the given <i>path</i>.</p>
    /// <p>Note that comparing paths may involve a per element comparison which can be slow for complex paths.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QPainterPath>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator__(
                self as *const crate::QPainterPath,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::std::ops::BitAnd<::cpp_core::Ref<crate::QPainterPath>> for &crate::QPainterPath {
    type Output = ::cpp_core::CppBox<crate::QPainterPath>;
    /// <p>Returns the intersection of this path and the <i>other</i> path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::operator&(const QPainterPath& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-and">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the intersection of this path and the <i>other</i> path.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#intersected">intersected</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-and-eq">operator&amp;=</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#united">united</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-7c">operator|</a>().</p></div>
    #[inline(always)]
    fn bitand(
        self,
        other: ::cpp_core::Ref<crate::QPainterPath>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator_2(
                self as *const crate::QPainterPath,
                other.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::BitOr<::cpp_core::Ref<crate::QPainterPath>> for &crate::QPainterPath {
    type Output = ::cpp_core::CppBox<crate::QPainterPath>;
    /// <p>Returns the union of this path and the <i>other</i> path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::operator|(const QPainterPath& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-7c">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the union of this path and the <i>other</i> path.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#united">united</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-7c-eq">operator|=</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#intersected">intersected</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-and">operator&amp;</a>().</p></div>
    #[inline(always)]
    fn bitor(
        self,
        other: ::cpp_core::Ref<crate::QPainterPath>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator_3(
                self as *const crate::QPainterPath,
                other.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QPainterPath>> for &crate::QPainterPath {
    type Output = ::cpp_core::CppBox<crate::QPainterPath>;
    /// <p>Returns the union of this path and the <i>other</i> path. This function is equivalent to operator|().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::operator+(const QPainterPath& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the union of this path and the <i>other</i> path. This function is equivalent to operator|().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#united">united</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-2b-eq">operator+=</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-">operator-</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        other: ::cpp_core::Ref<crate::QPainterPath>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator_4(
                self as *const crate::QPainterPath,
                other.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::cpp_core::Ref<crate::QPainterPath>> for &crate::QPainterPath {
    type Output = ::cpp_core::CppBox<crate::QPainterPath>;
    /// <p>Subtracts the <i>other</i> path from a copy of this path, and returns the copy.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath QPainterPath::operator-(const QPainterPath& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Subtracts the <i>other</i> path from a copy of this path, and returns the copy.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#subtracted">subtracted</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator--eq">operator-=</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-2b">operator+</a>().</p></div>
    #[inline(always)]
    fn sub(
        self,
        other: ::cpp_core::Ref<crate::QPainterPath>,
    ) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator_5(
                self as *const crate::QPainterPath,
                other.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::BitAndAssign<::cpp_core::Ref<crate::QPainterPath>> for crate::QPainterPath {
    /// <p>Intersects this path with <i>other</i> and returns a reference to this path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath& QPainterPath::operator&=(const QPainterPath& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-and-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Intersects this path with <i>other</i> and returns a reference to this path.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#intersected">intersected</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-and">operator&amp;</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-7c-eq">operator|=</a>().</p></div>
    #[inline(always)]
    fn bitand_assign(&mut self, other: ::cpp_core::Ref<crate::QPainterPath>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator__2(
                self as *mut crate::QPainterPath,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::BitOrAssign<::cpp_core::Ref<crate::QPainterPath>> for crate::QPainterPath {
    /// <p>Unites this path with <i>other</i> and returns a reference to this path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath& QPainterPath::operator|=(const QPainterPath& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-7c-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unites this path with <i>other</i> and returns a reference to this path.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#united">united</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-7c">operator|</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-and-eq">operator&amp;=</a>().</p></div>
    #[inline(always)]
    fn bitor_assign(&mut self, other: ::cpp_core::Ref<crate::QPainterPath>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator__3(
                self as *mut crate::QPainterPath,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QPainterPath>> for crate::QPainterPath {
    /// <p>Unites this path with <i>other</i>, and returns a reference to this path. This is equivalent to operator|=().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath& QPainterPath::operator+=(const QPainterPath& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Unites this path with <i>other</i>, and returns a reference to this path. This is equivalent to operator|=().</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#united">united</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-2b">operator+</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator--eq">operator-=</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, other: ::cpp_core::Ref<crate::QPainterPath>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator__4(
                self as *mut crate::QPainterPath,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<crate::QPainterPath>> for crate::QPainterPath {
    /// <p>Subtracts <i>other</i> from this path, and returns a reference to this path.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPainterPath& QPainterPath::operator-=(const QPainterPath& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Subtracts <i>other</i> from this path, and returns a reference to this path.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainterpath.html#subtracted">subtracted</a>(), <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-">operator-</a>(), and <a href="http://doc.qt.io/qt-5/qpainterpath.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, other: ::cpp_core::Ref<crate::QPainterPath>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPainterPath_operator__5(
                self as *mut crate::QPainterPath,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::cpp_core::CppDeletable for crate::QPainterPathStroker {
    /// <p>Destroys the stroker.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPainterPathStroker::~QPainterPathStroker()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainterpathstroker.html#dtor.QPainterPathStroker">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the stroker.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainterPathStroker_dQPainterPathStroker(
            self as *mut crate::QPainterPathStroker,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTransform>> for crate::QTransform {
    /// <p>Returns <code>true</code> if this matrix is equal to the given <i>matrix</i>, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTransform::operator==(const QTransform& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this matrix is equal to the given <i>matrix</i>, otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, arg1: &::cpp_core::Ref<crate::QTransform>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTransform_operator__(
                self as *const crate::QTransform,
                arg1.as_raw_ptr(),
            )
        }
    }
}

impl ::std::ops::MulAssign<::cpp_core::Ref<crate::QTransform>> for crate::QTransform {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::operator*=(const QTransform& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator-2a-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the result of multiplying this matrix by the given <i>matrix</i>.</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, arg1: ::cpp_core::Ref<crate::QTransform>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTransform_operator__2(
                self as *mut crate::QTransform,
                arg1.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QTransform>> for &crate::QTransform {
    type Output = ::cpp_core::CppBox<crate::QTransform>;
    /// <p>Returns the result of multiplying this matrix by the given <i>matrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform QTransform::operator*(const QTransform& o) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator-2a">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the result of multiplying this matrix by the given <i>matrix</i>.</p>
    /// <p>Note that matrix multiplication is not commutative, i.e. a*b != b*a.</p></div>
    #[inline(always)]
    fn mul(self, o: ::cpp_core::Ref<crate::QTransform>) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTransform_operator_2(
                self as *const crate::QTransform,
                o.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::MulAssign<::std::os::raw::c_double> for crate::QTransform {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::operator*=(double div)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator-2a-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the result of performing an element-wise multiplication of this matrix with the given <i>scalar</i>.</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, div: ::std::os::raw::c_double) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTransform_operator__3(self as *mut crate::QTransform, div)
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::std::os::raw::c_double> for crate::QTransform {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::operator/=(double div)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator-2f-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the result of performing an element-wise division of this matrix by the given <i>scalar</i>.</p></div>
    #[inline(always)]
    fn div_assign(&mut self, div: ::std::os::raw::c_double) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTransform_operator__4(self as *mut crate::QTransform, div)
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::std::os::raw::c_double> for crate::QTransform {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::operator+=(double div)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the matrix obtained by adding the given <i>scalar</i> to each element of this matrix.</p></div>
    #[inline(always)]
    fn add_assign(&mut self, div: ::std::os::raw::c_double) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTransform_operator__5(self as *mut crate::QTransform, div)
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::std::os::raw::c_double> for crate::QTransform {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTransform& QTransform::operator-=(double div)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns the matrix obtained by subtracting the given <i>scalar</i> from each element of this matrix.</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, div: ::std::os::raw::c_double) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTransform_operator__6(self as *mut crate::QTransform, div)
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QTransform>> for &crate::QPolygon {
    type Output = ::cpp_core::CppBox<crate::QPolygon>;
    /// Calls C++ function: <span style='color: green;'>```QPolygon operator*(const QPolygon& a, const QTransform& m)```</span>.
    #[inline(always)]
    fn mul(self, m: ::cpp_core::Ref<crate::QTransform>) -> ::cpp_core::CppBox<crate::QPolygon> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_26(self as *const crate::QPolygon, m.as_raw_ptr())
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QTransform>> for &crate::QPolygonF {
    type Output = ::cpp_core::CppBox<crate::QPolygonF>;
    /// Calls C++ function: <span style='color: green;'>```QPolygonF operator*(const QPolygonF& a, const QTransform& m)```</span>.
    #[inline(always)]
    fn mul(self, m: ::cpp_core::Ref<crate::QTransform>) -> ::cpp_core::CppBox<crate::QPolygonF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_27(
                self as *const crate::QPolygonF,
                m.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QTransform>> for &crate::QRegion {
    type Output = ::cpp_core::CppBox<crate::QRegion>;
    /// Calls C++ function: <span style='color: green;'>```QRegion operator*(const QRegion& r, const QTransform& m)```</span>.
    #[inline(always)]
    fn mul(self, m: ::cpp_core::Ref<crate::QTransform>) -> ::cpp_core::CppBox<crate::QRegion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_28(self as *const crate::QRegion, m.as_raw_ptr())
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QTransform>> for &crate::QPainterPath {
    type Output = ::cpp_core::CppBox<crate::QPainterPath>;
    /// Calls C++ function: <span style='color: green;'>```QPainterPath operator*(const QPainterPath& p, const QTransform& m)```</span>.
    #[inline(always)]
    fn mul(self, m: ::cpp_core::Ref<crate::QTransform>) -> ::cpp_core::CppBox<crate::QPainterPath> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_29(
                self as *const crate::QPainterPath,
                m.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::std::os::raw::c_double> for &crate::QTransform {
    type Output = ::cpp_core::CppBox<crate::QTransform>;
    /// Calls C++ function: <span style='color: green;'>```QTransform operator*(const QTransform& a, double n)```</span>.
    #[inline(always)]
    fn mul(self, n: ::std::os::raw::c_double) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_30(self as *const crate::QTransform, n)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Div<::std::os::raw::c_double> for &crate::QTransform {
    type Output = ::cpp_core::CppBox<crate::QTransform>;
    /// Calls C++ function: <span style='color: green;'>```QTransform operator/(const QTransform& a, double n)```</span>.
    #[inline(always)]
    fn div(self, n: ::std::os::raw::c_double) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_31(self as *const crate::QTransform, n)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::std::os::raw::c_double> for &crate::QTransform {
    type Output = ::cpp_core::CppBox<crate::QTransform>;
    /// Calls C++ function: <span style='color: green;'>```QTransform operator+(const QTransform& a, double n)```</span>.
    #[inline(always)]
    fn add(self, n: ::std::os::raw::c_double) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_32(self as *const crate::QTransform, n)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::std::os::raw::c_double> for &crate::QTransform {
    type Output = ::cpp_core::CppBox<crate::QTransform>;
    /// Calls C++ function: <span style='color: green;'>```QTransform operator-(const QTransform& a, double n)```</span>.
    #[inline(always)]
    fn sub(self, n: ::std::os::raw::c_double) -> ::cpp_core::CppBox<crate::QTransform> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_33(self as *const crate::QTransform, n)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QPaintDevice {
    /// <p>Destroys the paint device and frees window system resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPaintDevice::~QPaintDevice()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevice.html#dtor.QPaintDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the paint device and frees window system resources.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDevice_dQPaintDevice(self as *mut crate::QPaintDevice)
    }
}

impl ::cpp_core::CppDeletable for crate::QImage {
    /// <p>Destroys the image and cleans up.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QImage::~QImage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#dtor.QImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the image and cleans up.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QImage_dQImage(self as *mut crate::QImage)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QImage>> for crate::QImage {
    /// <p>Returns <code>true</code> if this image and the given <i>image</i> have the same contents; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QImage::operator==(const QImage& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this image and the given <i>image</i> have the same contents; otherwise returns <code>false</code>.</p>
    /// <p>The comparison can be slow, unless there is some obvious difference (e.g. different size or format), in which case the function will return quickly.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, arg1: &::cpp_core::Ref<crate::QImage>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QImage_operator__(
                self as *const crate::QImage,
                arg1.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::vector_ops::Size for crate::QImage {
    /// <p>Returns the size of the image, i.e. its <a href="http://doc.qt.io/qt-5/qimage.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#height">height</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QImage::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimage.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the image, i.e. its <a href="http://doc.qt.io/qt-5/qimage.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qimage.html#height">height</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimage.html#image-information">Image Information</a>.</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QImage_size(self as *const crate::QImage);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QPixmap {
    /// <p>Destroys the pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPixmap::~QPixmap()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#dtor.QPixmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the pixmap.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmap_dQPixmap(self as *mut crate::QPixmap)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QPixmap {
    /// <p>Returns the size of the pixmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QPixmap::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the pixmap.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#width">width</a>(), <a href="http://doc.qt.io/qt-5/qpixmap.html#height">height</a>(), and <a href="http://doc.qt.io/qt-5/qpixmap.html#pixmap-information">Pixmap Information</a>.</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPixmap_size(self as *const crate::QPixmap);
        ffi_result as usize
    }
}

impl ::std::ops::Not for &crate::QPixmap {
    type Output = bool;
    /// <p>Returns <code>true</code> if this is a null pixmap; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPixmap::operator!() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmap.html#operator-not">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this is a null pixmap; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixmap.html#isNull">isNull</a>().</p></div>
    #[inline(always)]
    fn not(self) -> bool {
        unsafe { crate::__ffi::ctr_qt_gui_ffi_QPixmap_operator_2(self as *const crate::QPixmap) }
    }
}

impl ::cpp_core::CppDeletable for crate::QBrush {
    /// <p>Destroys the brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QBrush::~QBrush()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#dtor.QBrush">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the brush.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QBrush_dQBrush(self as *mut crate::QBrush)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QBrush>> for crate::QBrush {
    /// <p>Returns <code>true</code> if the brush is equal to the given <i>brush</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QBrush::operator==(const QBrush& b) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbrush.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the brush is equal to the given <i>brush</i>; otherwise returns <code>false</code>.</p>
    /// <p>Two brushes are equal if they have equal styles, colors and transforms and equal pixmaps or gradients depending on the style.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qbrush.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, b: &::cpp_core::Ref<crate::QBrush>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QBrush_operator__(
                self as *const crate::QBrush,
                b.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QGradient>> for crate::QGradient {
    /// <p>Returns <code>true</code> if the gradient is the same as the other <i>gradient</i> specified; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGradient::operator==(const QGradient& gradient) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the gradient is the same as the other <i>gradient</i> specified; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qgradient.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, gradient: &::cpp_core::Ref<crate::QGradient>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QGradient_operator__(
                self as *const crate::QGradient,
                gradient.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QPen {
    /// <p>Destroys the pen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPen::~QPen()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#dtor.QPen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the pen.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPen_dQPen(self as *mut crate::QPen)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPen>> for crate::QPen {
    /// <p>Returns <code>true</code> if the pen is equal to the given <i>pen</i>; otherwise false. Two pens are equal if they have equal styles, widths and colors.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPen::operator==(const QPen& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpen.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the pen is equal to the given <i>pen</i>; otherwise false. Two pens are equal if they have equal styles, widths and colors.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpen.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, p: &::cpp_core::Ref<crate::QPen>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPen_operator__(self as *const crate::QPen, p.as_raw_ptr())
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QTextOption {
    /// <p>Destroys the text option.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextOption::~QTextOption()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextoption.html#dtor.QTextOption">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the text option.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextOption_dQTextOption(self as *mut crate::QTextOption)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextLength>> for crate::QTextLength {
    /// <p>Returns <code>true</code> if this text length is the same as the <i>other</i> text length.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextLength::operator==(const QTextLength& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text length is the same as the <i>other</i> text length.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QTextLength>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTextLength_operator__(
                self as *const crate::QTextLength,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QTextFormat {
    /// <p>Destroys this text format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextFormat::~QTextFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#dtor.QTextFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys this text format.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFormat_dQTextFormat(self as *mut crate::QTextFormat)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextFormat>> for crate::QTextFormat {
    /// <p>Returns <code>true</code> if this text format is the same as the <i>other</i> text format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFormat::operator==(const QTextFormat& rhs) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextformat.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text format is the same as the <i>other</i> text format.</p></div>
    #[inline(always)]
    fn eq(&self, rhs: &::cpp_core::Ref<crate::QTextFormat>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTextFormat_operator__(
                self as *const crate::QTextFormat,
                rhs.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QRawFont {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QRawFont::~QRawFont()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#dtor.QRawFont">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a></p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QRawFont_dQRawFont(self as *mut crate::QRawFont)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QRawFont>> for crate::QRawFont {
    /// <p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is equal to <i>other</i>. Otherwise, returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QRawFont::operator==(const QRawFont& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrawfont.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this <a href="http://doc.qt.io/qt-5/qrawfont.html">QRawFont</a> is equal to <i>other</i>. Otherwise, returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QRawFont>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QRawFont_operator__(
                self as *const crate::QRawFont,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QGlyphRun {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QGlyphRun::~QGlyphRun()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#dtor.QGlyphRun">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_dQGlyphRun(self as *mut crate::QGlyphRun)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QGlyphRun>> for crate::QGlyphRun {
    /// <p>Compares <i>other</i> to this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object. Returns <code>true</code> if the list of glyph indexes, the list of positions and the font are all equal, otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QGlyphRun::operator==(const QGlyphRun& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qglyphrun.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Compares <i>other</i> to this <a href="http://doc.qt.io/qt-5/qglyphrun.html">QGlyphRun</a> object. Returns <code>true</code> if the list of glyph indexes, the list of positions and the font are all equal, otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QGlyphRun>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QGlyphRun_operator__(
                self as *const crate::QGlyphRun,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QTextCursor {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextCursor::~QTextCursor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#dtor.QTextCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_dQTextCursor(self as *mut crate::QTextCursor)
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QTextCursor>> for crate::QTextCursor {
    /// <p>Returns <code>true</code> if the <i>other</i> cursor is positioned later in the document than this cursor; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::operator<(const QTextCursor& rhs) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <i>other</i> cursor is positioned later in the document than this cursor; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QTextCursor>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_operator_2(
            self as *const crate::QTextCursor,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QTextCursor>> for crate::QTextCursor {
    /// <p>Returns <code>true</code> if the <i>other</i> cursor is positioned later or at the same position in the document as this cursor; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::operator<=(const QTextCursor& rhs) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#operator-lt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <i>other</i> cursor is positioned later or at the same position in the document as this cursor; otherwise returns false.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QTextCursor>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_operator__1(
            self as *const crate::QTextCursor,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextCursor>> for crate::QTextCursor {
    /// <p>Returns <code>true</code> if the <i>other</i> cursor is at the same position in the document as this cursor; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::operator==(const QTextCursor& rhs) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <i>other</i> cursor is at the same position in the document as this cursor; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, rhs: &::cpp_core::Ref<crate::QTextCursor>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTextCursor_operator__2(
                self as *const crate::QTextCursor,
                rhs.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QTextCursor>> for crate::QTextCursor {
    /// <p>Returns <code>true</code> if the <i>other</i> cursor is positioned earlier or at the same position in the document as this cursor; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::operator>=(const QTextCursor& rhs) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#operator-gt-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <i>other</i> cursor is positioned earlier or at the same position in the document as this cursor; otherwise returns false.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QTextCursor>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_operator__3(
            self as *const crate::QTextCursor,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QTextCursor>> for crate::QTextCursor {
    /// <p>Returns <code>true</code> if the <i>other</i> cursor is positioned earlier in the document than this cursor; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextCursor::operator>(const QTextCursor& rhs) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcursor.html#operator-gt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <i>other</i> cursor is positioned earlier in the document than this cursor; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QTextCursor>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextCursor_operator_3(
            self as *const crate::QTextCursor,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextLayout {
    /// <p>Destructs the layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextLayout::~QTextLayout()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlayout.html#dtor.QTextLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the layout.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLayout_dQTextLayout(self as *mut crate::QTextLayout)
    }
}

impl ::cpp_core::CppDeletable for crate::QAbstractUndoItem {
    /// Calls C++ function: <span style='color: green;'>```pure virtual [destructor] void QAbstractUndoItem::~QAbstractUndoItem()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractUndoItem_dQAbstractUndoItem(
            self as *mut crate::QAbstractUndoItem,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextDocument {
    /// <p>Destroys the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QTextDocument::~QTextDocument()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#dtor.QTextDocument">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the document.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocument_dQTextDocument(self as *mut crate::QTextDocument)
    }
}

impl ::cpp_core::ops::Begin for crate::QTextDocument {
    type Output = ::cpp_core::CppBox<crate::QTextBlock>;
    /// <p>Returns the document's first text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the document's first text block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#firstBlock">firstBlock</a>().</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_begin(self as *const crate::QTextDocument);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QTextDocument {
    type Output = ::cpp_core::CppBox<crate::QTextBlock>;
    /// <p>This function returns a block to test for the end of the document while iterating over it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock QTextDocument::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function returns a block to test for the end of the document while iterating over it.</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="keyword">for</span> (<span class="type"><a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a></span> it <span class="operator">=</span> doc<span class="operator">-</span><span class="operator">&gt;</span>begin(); it <span class="operator">!</span><span class="operator">=</span> doc<span class="operator">-</span><span class="operator">&gt;</span>end(); it <span class="operator">=</span> it<span class="operator">.</span>next())
    /// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> it<span class="operator">.</span>text()<span class="operator">.</span>toStdString() <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
    ///
    /// </pre>
    /// <p>The block returned is invalid and represents the block after the last block in the document. You can use <a href="http://doc.qt.io/qt-5/qtextdocument.html#lastBlock">lastBlock</a>() to retrieve the last valid block of the document.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#lastBlock">lastBlock</a>().</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::QTextBlock> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_end(self as *const crate::QTextDocument);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::vector_ops::Size for crate::QTextDocument {
    /// <p>Returns the actual size of the document. This is equivalent to <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayout">documentLayout</a>()-&gt;documentSize();</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QTextDocument::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocument.html#size-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the actual size of the document. This is equivalent to <a href="http://doc.qt.io/qt-5/qtextdocument.html#documentLayout">documentLayout</a>()-&gt;documentSize();</p>
    /// <p>The size of the document can be changed either by setting a text width or setting an entire page size.</p>
    /// <p>Note that the width is always &gt;= <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">pageSize</a>().width().</p>
    /// <p>By default, for a newly-created, empty document, this property contains a configuration-dependent size.</p>
    /// <p>This property was introduced in  Qt 4.2.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSizeF </td><td class="memItemRight bottomAlign"><span class="name"><b>size</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextdocument.html#textWidth-prop">setTextWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextdocument.html#pageSize-prop">setPageSize</a>(), and <a href="http://doc.qt.io/qt-5/qtextdocument.html#idealWidth">idealWidth</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextDocument_size(self as *const crate::QTextDocument);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QPalette {
    /// <p>Destroys the palette.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPalette::~QPalette()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#dtor.QPalette">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the palette.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPalette_dQPalette(self as *mut crate::QPalette)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPalette>> for crate::QPalette {
    /// <p>Returns <code>true</code> (usually quickly) if this palette is equal to <i>p</i>; otherwise returns <code>false</code> (slowly).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPalette::operator==(const QPalette& p) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpalette.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> (usually quickly) if this palette is equal to <i>p</i>; otherwise returns <code>false</code> (slowly).</p>
    /// <p><b>Note: </b>The current <a href="http://doc.qt.io/qt-5/qpalette.html#ColorGroup-enum">ColorGroup</a> is not taken into account when comparing palettes</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qpalette.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, p: &::cpp_core::Ref<crate::QPalette>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QPalette_operator__(
                self as *const crate::QPalette,
                p.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QAbstractTextDocumentLayout {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAbstractTextDocumentLayout::~QAbstractTextDocumentLayout()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractTextDocumentLayout_dQAbstractTextDocumentLayout(
            self as *mut crate::QAbstractTextDocumentLayout,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextObjectInterface {
    /// <p>Destroys this <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QTextObjectInterface::~QTextObjectInterface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html#dtor.QTextObjectInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys this <a href="http://doc.qt.io/qt-5/qtextobjectinterface.html">QTextObjectInterface</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextObjectInterface_dQTextObjectInterface(
            self as *mut crate::QTextObjectInterface,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTextInterface {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTextInterface::~QAccessibleTextInterface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html#dtor.QAccessibleTextInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibletextinterface.html">QAccessibleTextInterface</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInterface_dQAccessibleTextInterface(
            self as *mut crate::QAccessibleTextInterface,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleEditableTextInterface {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html">QAccessibleEditableTextInterface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleEditableTextInterface::~QAccessibleEditableTextInterface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html#dtor.QAccessibleEditableTextInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibleeditabletextinterface.html">QAccessibleEditableTextInterface</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEditableTextInterface_dQAccessibleEditableTextInterface(self as *mut crate::QAccessibleEditableTextInterface)
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleValueInterface {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">QAccessibleValueInterface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleValueInterface::~QAccessibleValueInterface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html#dtor.QAccessibleValueInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessiblevalueinterface.html">QAccessibleValueInterface</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueInterface_dQAccessibleValueInterface(
            self as *mut crate::QAccessibleValueInterface,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTableCellInterface {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">QAccessibleTableCellInterface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTableCellInterface::~QAccessibleTableCellInterface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html#dtor.QAccessibleTableCellInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibletablecellinterface.html">QAccessibleTableCellInterface</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableCellInterface_dQAccessibleTableCellInterface(
            self as *mut crate::QAccessibleTableCellInterface,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTableInterface {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">QAccessibleTableInterface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTableInterface::~QAccessibleTableInterface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html#dtor.QAccessibleTableInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibletableinterface.html">QAccessibleTableInterface</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableInterface_dQAccessibleTableInterface(
            self as *mut crate::QAccessibleTableInterface,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleActionInterface {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleActionInterface::~QAccessibleActionInterface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html#dtor.QAccessibleActionInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qaccessibleactioninterface.html">QAccessibleActionInterface</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleActionInterface_dQAccessibleActionInterface(
            self as *mut crate::QAccessibleActionInterface,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleEvent {
    /// <p>Destroys the event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleEvent::~QAccessibleEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleevent.html#dtor.QAccessibleEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the event.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleEvent_dQAccessibleEvent(
            self as *mut crate::QAccessibleEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleStateChangeEvent_dQAccessibleStateChangeEvent(
            self as *mut crate::QAccessibleStateChangeEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTextCursorEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextCursorEvent_dQAccessibleTextCursorEvent(
            self as *mut crate::QAccessibleTextCursorEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTextSelectionEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextSelectionEvent_dQAccessibleTextSelectionEvent(
            self as *mut crate::QAccessibleTextSelectionEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTextInsertEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextInsertEvent_dQAccessibleTextInsertEvent(
            self as *mut crate::QAccessibleTextInsertEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTextRemoveEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextRemoveEvent_dQAccessibleTextRemoveEvent(
            self as *mut crate::QAccessibleTextRemoveEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTextUpdateEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTextUpdateEvent_dQAccessibleTextUpdateEvent(
            self as *mut crate::QAccessibleTextUpdateEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleValueChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleValueChangeEvent_dQAccessibleValueChangeEvent(
            self as *mut crate::QAccessibleValueChangeEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessibleTableModelChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessibleTableModelChangeEvent_dQAccessibleTableModelChangeEvent(self as *mut crate::QAccessibleTableModelChangeEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessiblePlugin {
    /// <p>Destroys the accessibility plugin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAccessiblePlugin::~QAccessiblePlugin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html#dtor.QAccessiblePlugin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the accessibility plugin.</p>
    /// <p>You never have to call this explicitly. Qt destroys a plugin automatically when it is no longer used.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessiblePlugin_dQAccessiblePlugin(
            self as *mut crate::QAccessiblePlugin,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QSurfaceFormat {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QSurfaceFormat::~QSurfaceFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#dtor.QSurfaceFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSurfaceFormat_dQSurfaceFormat(
            self as *mut crate::QSurfaceFormat,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QSurfaceFormat>> for crate::QSurfaceFormat {
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QSurfaceFormat& arg1, const QSurfaceFormat& arg2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, arg2: &::cpp_core::Ref<crate::QSurfaceFormat>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__63(
                self as *const crate::QSurfaceFormat,
                arg2.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QSurface {
    /// <p>Destroys the surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QSurface::~QSurface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#dtor.QSurface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the surface.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSurface_dQSurface(self as *mut crate::QSurface)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QSurface {
    /// <p>Returns the size of the surface in pixels.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QSize QSurface::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsurface.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the surface in pixels.</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSurface_size(self as *const crate::QSurface);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QIcon {
    /// <p>Destroys the icon.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QIcon::~QIcon()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qicon.html#dtor.QIcon">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the icon.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QIcon_dQIcon(self as *mut crate::QIcon)
    }
}

impl ::cpp_core::CppDeletable for crate::QCursor {
    /// <p>Destroys the cursor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QCursor::~QCursor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#dtor.QCursor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the cursor.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QCursor_dQCursor(self as *mut crate::QCursor)
    }
}

impl ::cpp_core::CppDeletable for crate::QWindow {
    /// <p>Destroys the window.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QWindow::~QWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#dtor.QWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the window.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QWindow_dQWindow(self as *mut crate::QWindow)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QWindow {
    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#size">QSurface::size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSize QWindow::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qwindow.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#size">QSurface::size</a>().</p>
    /// <p>Returns the size of the window excluding any window frame</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qwindow.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QWindow_size(self as *const crate::QWindow);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QBackingStore {
    /// <p>Destroys this surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QBackingStore::~QBackingStore()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#dtor.QBackingStore">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys this surface.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QBackingStore_dQBackingStore(self as *mut crate::QBackingStore)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QBackingStore {
    /// <p>Returns the current size of the windowsurface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QBackingStore::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbackingstore.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current size of the windowsurface.</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QBackingStore_size(self as *const crate::QBackingStore);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QBitmap {
    /// <p>Destroys the bitmap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QBitmap::~QBitmap()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qbitmap.html#dtor.QBitmap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the bitmap.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QBitmap_dQBitmap(self as *mut crate::QBitmap)
    }
}

impl ::cpp_core::CppDeletable for crate::QDrag {
    /// <p>Destroys the drag object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QDrag::~QDrag()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdrag.html#dtor.QDrag">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the drag object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDrag_dQDrag(self as *mut crate::QDrag)
    }
}

impl ::cpp_core::CppDeletable for crate::QFontInfo {
    /// <p>Destroys the font info object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QFontInfo::~QFontInfo()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontinfo.html#dtor.QFontInfo">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the font info object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QFontInfo_dQFontInfo(self as *mut crate::QFontInfo)
    }
}

impl ::cpp_core::CppDeletable for crate::QFontMetrics {
    /// <p>Destroys the font metrics object and frees all allocated resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QFontMetrics::~QFontMetrics()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#dtor.QFontMetrics">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the font metrics object and frees all allocated resources.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_dQFontMetrics(self as *mut crate::QFontMetrics)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QFontMetrics>> for crate::QFontMetrics {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this object; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontMetrics::operator==(const QFontMetrics& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetrics.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this object; otherwise returns <code>false</code>.</p>
    /// <p>Two font metrics are considered equal if they were constructed from the same <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> and the paint devices they were constructed for are considered compatible.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qfontmetrics.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QFontMetrics>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QFontMetrics_operator__(
                self as *const crate::QFontMetrics,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QFontMetricsF {
    /// <p>Destroys the font metrics object and frees all allocated resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QFontMetricsF::~QFontMetricsF()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#dtor.QFontMetricsF">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the font metrics object and frees all allocated resources.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_dQFontMetricsF(self as *mut crate::QFontMetricsF)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QFontMetricsF>> for crate::QFontMetricsF {
    /// <p>Returns <code>true</code> if the font metrics are equal to the <i>other</i> font metrics; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QFontMetricsF::operator==(const QFontMetricsF& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontmetricsf.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the font metrics are equal to the <i>other</i> font metrics; otherwise returns <code>false</code>.</p>
    /// <p>Two font metrics are considered equal if they were constructed from the same <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> and the paint devices they were constructed for are considered to be compatible.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QFontMetricsF>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QFontMetricsF_operator__(
                self as *const crate::QFontMetricsF,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QGenericPlugin {
    /// <p>Destroys the plugin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QGenericPlugin::~QGenericPlugin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgenericplugin.html#dtor.QGenericPlugin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the plugin.</p>
    /// <p>Note that Qt destroys a plugin automatically when it is no longer used, so there is no need for calling the destructor explicitly.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QGenericPlugin_dQGenericPlugin(
            self as *mut crate::QGenericPlugin,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QGuiApplication {
    /// <p>Destructs the application.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QGuiApplication::~QGuiApplication()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qguiapplication.html#dtor.QGuiApplication">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the application.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QGuiApplication_dQGuiApplication(
            self as *mut crate::QGuiApplication,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QIconEngine {
    /// <p>Destroys the icon engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QIconEngine::~QIconEngine()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengine.html#dtor.QIconEngine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the icon engine.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QIconEngine_dQIconEngine(self as *mut crate::QIconEngine)
    }
}

impl ::cpp_core::CppDeletable for crate::QIconEnginePlugin {
    /// <p>Destroys the icon engine plugin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QIconEnginePlugin::~QIconEnginePlugin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qiconengineplugin.html#dtor.QIconEnginePlugin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the icon engine plugin.</p>
    /// <p>You never have to call this explicitly. Qt destroys a plugin automatically when it is no longer used.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QIconEnginePlugin_dQIconEnginePlugin(
            self as *mut crate::QIconEnginePlugin,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QImageIOHandler {
    /// <p>Destructs the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QImageIOHandler::~QImageIOHandler()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageiohandler.html#dtor.QImageIOHandler">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the <a href="http://doc.qt.io/qt-5/qimageiohandler.html">QImageIOHandler</a> object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOHandler_dQImageIOHandler(
            self as *mut crate::QImageIOHandler,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QImageIOPlugin {
    /// <p>Destroys the picture format plugin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QImageIOPlugin::~QImageIOPlugin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimageioplugin.html#dtor.QImageIOPlugin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the picture format plugin.</p>
    /// <p>You never have to call this explicitly. Qt destroys a plugin automatically when it is no longer used.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QImageIOPlugin_dQImageIOPlugin(
            self as *mut crate::QImageIOPlugin,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QImageReader {
    /// <p>Destructs the <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QImageReader::~QImageReader()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#dtor.QImageReader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the <a href="http://doc.qt.io/qt-5/qimagereader.html">QImageReader</a> object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QImageReader_dQImageReader(self as *mut crate::QImageReader)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QImageReader {
    /// <p>Returns the size of the image, without actually reading the image contents.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QImageReader::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagereader.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the image, without actually reading the image contents.</p>
    /// <p>If the image format does not support this feature, this function returns an invalid size. Qt's built-in image handlers all support this feature, but custom image format plugins are not required to do so.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qimageiohandler.html#ImageOption-enum">QImageIOHandler::ImageOption</a>, <a href="http://doc.qt.io/qt-5/qimageiohandler.html#option">QImageIOHandler::option</a>(), and <a href="http://doc.qt.io/qt-5/qimageiohandler.html#supportsOption">QImageIOHandler::supportsOption</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QImageReader_size(self as *const crate::QImageReader);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QImageWriter {
    /// <p>Destructs the <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QImageWriter::~QImageWriter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qimagewriter.html#dtor.QImageWriter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the <a href="http://doc.qt.io/qt-5/qimagewriter.html">QImageWriter</a> object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QImageWriter_dQImageWriter(self as *mut crate::QImageWriter)
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVector3D>> for crate::QVector3D {
    /// <p>Adds the given <i>vector</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D& QVector3D::operator+=(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>vector</i> to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#operator--eq">operator-=</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector3D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator__2(
                self as *mut crate::QVector3D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<crate::QVector3D>> for crate::QVector3D {
    /// <p>Subtracts the given <i>vector</i> from this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D& QVector3D::operator-=(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Subtracts the given <i>vector</i> from this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector3D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator__3(
                self as *mut crate::QVector3D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::std::os::raw::c_float> for crate::QVector3D {
    /// <p>Multiplies this vector's coordinates by the given <i>factor</i>, and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D& QVector3D::operator*=(float factor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2a-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this vector's coordinates by the given <i>factor</i>, and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2f-eq">operator/=</a>().</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, factor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator__4(
                self as *mut crate::QVector3D,
                factor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::cpp_core::Ref<crate::QVector3D>> for crate::QVector3D {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D& QVector3D::operator*=(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2a-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies the components of this vector by the corresponding components in <i>vector</i>.</p>
    /// <p>Note: this is not the same as the <a href="http://doc.qt.io/qt-5/qvector3d.html#crossProduct">crossProduct</a>() of this vector and <i>vector</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#crossProduct">crossProduct</a>().</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector3D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator__5(
                self as *mut crate::QVector3D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::std::os::raw::c_float> for crate::QVector3D {
    /// <p>Divides this vector's coordinates by the given <i>divisor</i>, and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D& QVector3D::operator/=(float divisor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2f-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Divides this vector's coordinates by the given <i>divisor</i>, and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2a-eq">operator*=</a>().</p></div>
    #[inline(always)]
    fn div_assign(&mut self, divisor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator__6(
                self as *mut crate::QVector3D,
                divisor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::cpp_core::Ref<crate::QVector3D>> for crate::QVector3D {
    /// <p>Divides the components of this vector by the corresponding components in <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D& QVector3D::operator/=(const QVector3D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2f-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Divides the components of this vector by the corresponding components in <i>vector</i>.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector3d.html#operator-2a-eq">operator*=</a>().</p></div>
    #[inline(always)]
    fn div_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector3D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector3D_operator__7(
                self as *mut crate::QVector3D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVector3D>> for crate::QVector3D {
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QVector3D& v1, const QVector3D& v2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v2: &::cpp_core::Ref<crate::QVector3D>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__73(
                self as *const crate::QVector3D,
                v2.as_raw_ptr(),
            )
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVector3D>> for &crate::QVector3D {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator+(const QVector3D& v1, const QVector3D& v2)```</span>.
    #[inline(always)]
    fn add(self, v2: ::cpp_core::Ref<crate::QVector3D>) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_55(
                self as *const crate::QVector3D,
                v2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::cpp_core::Ref<crate::QVector3D>> for &crate::QVector3D {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator-(const QVector3D& v1, const QVector3D& v2)```</span>.
    #[inline(always)]
    fn sub(self, v2: ::cpp_core::Ref<crate::QVector3D>) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_56(
                self as *const crate::QVector3D,
                v2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::std::os::raw::c_float> for &crate::QVector3D {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator*(const QVector3D& vector, float factor)```</span>.
    #[inline(always)]
    fn mul(self, factor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_58(self as *const crate::QVector3D, factor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QVector3D>> for &crate::QVector3D {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator*(const QVector3D& v1, const QVector3D& v2)```</span>.
    #[inline(always)]
    fn mul(self, v2: ::cpp_core::Ref<crate::QVector3D>) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_59(
                self as *const crate::QVector3D,
                v2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Div<::std::os::raw::c_float> for &crate::QVector3D {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator/(const QVector3D& vector, float divisor)```</span>.
    #[inline(always)]
    fn div(self, divisor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_61(self as *const crate::QVector3D, divisor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Div<::cpp_core::Ref<crate::QVector3D>> for &crate::QVector3D {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator/(const QVector3D& vector, const QVector3D& divisor)```</span>.
    #[inline(always)]
    fn div(
        self,
        divisor: ::cpp_core::Ref<crate::QVector3D>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_62(
                self as *const crate::QVector3D,
                divisor.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVector4D>> for crate::QVector4D {
    /// <p>Adds the given <i>vector</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D& QVector4D::operator+=(const QVector4D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>vector</i> to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#operator--eq">operator-=</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector4D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator__2(
                self as *mut crate::QVector4D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<crate::QVector4D>> for crate::QVector4D {
    /// <p>Subtracts the given <i>vector</i> from this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D& QVector4D::operator-=(const QVector4D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Subtracts the given <i>vector</i> from this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector4D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator__3(
                self as *mut crate::QVector4D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::std::os::raw::c_float> for crate::QVector4D {
    /// <p>Multiplies this vector's coordinates by the given <i>factor</i>, and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D& QVector4D::operator*=(float factor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2a-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this vector's coordinates by the given <i>factor</i>, and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2f-eq">operator/=</a>().</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, factor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator__4(
                self as *mut crate::QVector4D,
                factor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::cpp_core::Ref<crate::QVector4D>> for crate::QVector4D {
    /// <p>Multiplies the components of this vector by the corresponding components in <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D& QVector4D::operator*=(const QVector4D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2a-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies the components of this vector by the corresponding components in <i>vector</i>.</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector4D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator__5(
                self as *mut crate::QVector4D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::std::os::raw::c_float> for crate::QVector4D {
    /// <p>Divides this vector's coordinates by the given <i>divisor</i>, and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D& QVector4D::operator/=(float divisor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2f-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Divides this vector's coordinates by the given <i>divisor</i>, and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2a-eq">operator*=</a>().</p></div>
    #[inline(always)]
    fn div_assign(&mut self, divisor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator__6(
                self as *mut crate::QVector4D,
                divisor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::cpp_core::Ref<crate::QVector4D>> for crate::QVector4D {
    /// <p>Divides the components of this vector by the corresponding components in <i>vector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector4D& QVector4D::operator/=(const QVector4D& vector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2f-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Divides the components of this vector by the corresponding components in <i>vector</i>.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector4d.html#operator-2a-eq">operator*=</a>().</p></div>
    #[inline(always)]
    fn div_assign(&mut self, vector: ::cpp_core::Ref<crate::QVector4D>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector4D_operator__7(
                self as *mut crate::QVector4D,
                vector.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVector4D>> for crate::QVector4D {
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QVector4D& v1, const QVector4D& v2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v2: &::cpp_core::Ref<crate::QVector4D>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__78(
                self as *const crate::QVector4D,
                v2.as_raw_ptr(),
            )
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVector4D>> for &crate::QVector4D {
    type Output = ::cpp_core::CppBox<crate::QVector4D>;
    /// Calls C++ function: <span style='color: green;'>```QVector4D operator+(const QVector4D& v1, const QVector4D& v2)```</span>.
    #[inline(always)]
    fn add(self, v2: ::cpp_core::Ref<crate::QVector4D>) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_63(
                self as *const crate::QVector4D,
                v2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::cpp_core::Ref<crate::QVector4D>> for &crate::QVector4D {
    type Output = ::cpp_core::CppBox<crate::QVector4D>;
    /// Calls C++ function: <span style='color: green;'>```QVector4D operator-(const QVector4D& v1, const QVector4D& v2)```</span>.
    #[inline(always)]
    fn sub(self, v2: ::cpp_core::Ref<crate::QVector4D>) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_64(
                self as *const crate::QVector4D,
                v2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::std::os::raw::c_float> for &crate::QVector4D {
    type Output = ::cpp_core::CppBox<crate::QVector4D>;
    /// Calls C++ function: <span style='color: green;'>```QVector4D operator*(const QVector4D& vector, float factor)```</span>.
    #[inline(always)]
    fn mul(self, factor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_66(self as *const crate::QVector4D, factor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QVector4D>> for &crate::QVector4D {
    type Output = ::cpp_core::CppBox<crate::QVector4D>;
    /// Calls C++ function: <span style='color: green;'>```QVector4D operator*(const QVector4D& v1, const QVector4D& v2)```</span>.
    #[inline(always)]
    fn mul(self, v2: ::cpp_core::Ref<crate::QVector4D>) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_67(
                self as *const crate::QVector4D,
                v2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Div<::std::os::raw::c_float> for &crate::QVector4D {
    type Output = ::cpp_core::CppBox<crate::QVector4D>;
    /// Calls C++ function: <span style='color: green;'>```QVector4D operator/(const QVector4D& vector, float divisor)```</span>.
    #[inline(always)]
    fn div(self, divisor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_69(self as *const crate::QVector4D, divisor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Div<::cpp_core::Ref<crate::QVector4D>> for &crate::QVector4D {
    type Output = ::cpp_core::CppBox<crate::QVector4D>;
    /// Calls C++ function: <span style='color: green;'>```QVector4D operator/(const QVector4D& vector, const QVector4D& divisor)```</span>.
    #[inline(always)]
    fn div(
        self,
        divisor: ::cpp_core::Ref<crate::QVector4D>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_70(
                self as *const crate::QVector4D,
                divisor.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QQuaternion>> for crate::QQuaternion {
    /// <p>Adds the given <i>quaternion</i> to this quaternion and returns a reference to this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion& QQuaternion::operator+=(const QQuaternion& quaternion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the given <i>quaternion</i> to this quaternion and returns a reference to this quaternion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#operator--eq">operator-=</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, quaternion: ::cpp_core::Ref<crate::QQuaternion>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_operator__(
                self as *mut crate::QQuaternion,
                quaternion.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<crate::QQuaternion>> for crate::QQuaternion {
    /// <p>Subtracts the given <i>quaternion</i> from this quaternion and returns a reference to this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion& QQuaternion::operator-=(const QQuaternion& quaternion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Subtracts the given <i>quaternion</i> from this quaternion and returns a reference to this quaternion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, quaternion: ::cpp_core::Ref<crate::QQuaternion>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_operator__1(
                self as *mut crate::QQuaternion,
                quaternion.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::std::os::raw::c_float> for crate::QQuaternion {
    /// <p>Multiplies this quaternion's components by the given <i>factor</i>, and returns a reference to this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion& QQuaternion::operator*=(float factor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#operator-2a-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this quaternion's components by the given <i>factor</i>, and returns a reference to this quaternion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#operator-2f-eq">operator/=</a>().</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, factor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_operator__2(
                self as *mut crate::QQuaternion,
                factor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::cpp_core::Ref<crate::QQuaternion>> for crate::QQuaternion {
    /// <p>Multiplies this quaternion by <i>quaternion</i> and returns a reference to this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion& QQuaternion::operator*=(const QQuaternion& quaternion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#operator-2a-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies this quaternion by <i>quaternion</i> and returns a reference to this quaternion.</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, quaternion: ::cpp_core::Ref<crate::QQuaternion>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_operator__3(
                self as *mut crate::QQuaternion,
                quaternion.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::std::os::raw::c_float> for crate::QQuaternion {
    /// <p>Divides this quaternion's components by the given <i>divisor</i>, and returns a reference to this quaternion.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion& QQuaternion::operator/=(float divisor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html#operator-2f-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Divides this quaternion's components by the given <i>divisor</i>, and returns a reference to this quaternion.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qquaternion.html#operator-2a-eq">operator*=</a>().</p></div>
    #[inline(always)]
    fn div_assign(&mut self, divisor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QQuaternion_operator__4(
                self as *mut crate::QQuaternion,
                divisor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QQuaternion>> for crate::QQuaternion {
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QQuaternion& q1, const QQuaternion& q2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, q2: &::cpp_core::Ref<crate::QQuaternion>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__83(
                self as *const crate::QQuaternion,
                q2.as_raw_ptr(),
            )
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QQuaternion>> for &crate::QQuaternion {
    type Output = ::cpp_core::CppBox<crate::QQuaternion>;
    /// Calls C++ function: <span style='color: green;'>```QQuaternion operator*(const QQuaternion& q1, const QQuaternion& q2)```</span>.
    #[inline(always)]
    fn mul(
        self,
        q2: ::cpp_core::Ref<crate::QQuaternion>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_71(
                self as *const crate::QQuaternion,
                q2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QQuaternion>> for &crate::QQuaternion {
    type Output = ::cpp_core::CppBox<crate::QQuaternion>;
    /// Calls C++ function: <span style='color: green;'>```QQuaternion operator+(const QQuaternion& q1, const QQuaternion& q2)```</span>.
    #[inline(always)]
    fn add(
        self,
        q2: ::cpp_core::Ref<crate::QQuaternion>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_72(
                self as *const crate::QQuaternion,
                q2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::cpp_core::Ref<crate::QQuaternion>> for &crate::QQuaternion {
    type Output = ::cpp_core::CppBox<crate::QQuaternion>;
    /// Calls C++ function: <span style='color: green;'>```QQuaternion operator-(const QQuaternion& q1, const QQuaternion& q2)```</span>.
    #[inline(always)]
    fn sub(
        self,
        q2: ::cpp_core::Ref<crate::QQuaternion>,
    ) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_73(
                self as *const crate::QQuaternion,
                q2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::std::os::raw::c_float> for &crate::QQuaternion {
    type Output = ::cpp_core::CppBox<crate::QQuaternion>;
    /// Calls C++ function: <span style='color: green;'>```QQuaternion operator*(const QQuaternion& quaternion, float factor)```</span>.
    #[inline(always)]
    fn mul(self, factor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_75(self as *const crate::QQuaternion, factor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Div<::std::os::raw::c_float> for &crate::QQuaternion {
    type Output = ::cpp_core::CppBox<crate::QQuaternion>;
    /// Calls C++ function: <span style='color: green;'>```QQuaternion operator/(const QQuaternion& quaternion, float divisor)```</span>.
    #[inline(always)]
    fn div(self, divisor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QQuaternion> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_77(self as *const crate::QQuaternion, divisor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QVector3D>> for &crate::QQuaternion {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator*(const QQuaternion& quaternion, const QVector3D& vec)```</span>.
    #[inline(always)]
    fn mul(self, vec: ::cpp_core::Ref<crate::QVector3D>) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_78(
                self as *const crate::QQuaternion,
                vec.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QMatrix4X4>> for crate::QMatrix4X4 {
    /// <p>Adds the contents of <i>other</i> to this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4& QMatrix4x4::operator+=(const QMatrix4x4& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds the contents of <i>other</i> to this matrix.</p></div>
    #[inline(always)]
    fn add_assign(&mut self, other: ::cpp_core::Ref<crate::QMatrix4X4>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator__2(
                self as *mut crate::QMatrix4X4,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<crate::QMatrix4X4>> for crate::QMatrix4X4 {
    /// <p>Subtracts the contents of <i>other</i> from this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4& QMatrix4x4::operator-=(const QMatrix4x4& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Subtracts the contents of <i>other</i> from this matrix.</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, other: ::cpp_core::Ref<crate::QMatrix4X4>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator__3(
                self as *mut crate::QMatrix4X4,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::cpp_core::Ref<crate::QMatrix4X4>> for crate::QMatrix4X4 {
    /// <p>Multiplies the contents of <i>other</i> by this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4& QMatrix4x4::operator*=(const QMatrix4x4& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-2a-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Multiplies the contents of <i>other</i> by this matrix.</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, other: ::cpp_core::Ref<crate::QMatrix4X4>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator__4(
                self as *mut crate::QMatrix4X4,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::MulAssign<::std::os::raw::c_float> for crate::QMatrix4X4 {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4& QMatrix4x4::operator*=(float factor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-2a-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Multiplies all elements of this matrix by <i>factor</i>.</p></div>
    #[inline(always)]
    fn mul_assign(&mut self, factor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator__5(
                self as *mut crate::QMatrix4X4,
                factor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::DivAssign<::std::os::raw::c_float> for crate::QMatrix4X4 {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4& QMatrix4x4::operator/=(float divisor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-2f-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Divides all elements of this matrix by <i>divisor</i>.</p></div>
    #[inline(always)]
    fn div_assign(&mut self, divisor: ::std::os::raw::c_float) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator__6(
                self as *mut crate::QMatrix4X4,
                divisor,
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QMatrix4X4>> for crate::QMatrix4X4 {
    /// <p>Returns <code>true</code> if this matrix is identical to <i>other</i>; false otherwise. This operator uses an exact floating-point comparison.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QMatrix4x4::operator==(const QMatrix4x4& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this matrix is identical to <i>other</i>; false otherwise. This operator uses an exact floating-point comparison.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QMatrix4X4>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_operator__7(
                self as *const crate::QMatrix4X4,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QMatrix4X4 {
    type Output = ::cpp_core::MutPtr<::std::os::raw::c_float>;
    /// <p>Returns a pointer to the raw data of this matrix.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float* QMatrix4x4::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the raw data of this matrix.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#optimize">optimize</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_data(self as *mut crate::QMatrix4X4);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QMatrix4X4 {
    type Output = ::cpp_core::Ptr<::std::os::raw::c_float>;
    /// <p>Returns a constant pointer to the raw data of this matrix. This raw data is stored in column-major format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float* QMatrix4x4::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a constant pointer to the raw data of this matrix. This raw data is stored in column-major format.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">constData</a>().</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_data1(self as *const crate::QMatrix4X4);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Div<::std::os::raw::c_float> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<crate::QMatrix4X4>;
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 operator/(const QMatrix4x4& matrix, float divisor)```</span>.
    #[inline(always)]
    fn div(self, divisor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_79(self as *const crate::QMatrix4X4, divisor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QMatrix4X4>> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<crate::QMatrix4X4>;
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 operator+(const QMatrix4x4& m1, const QMatrix4x4& m2)```</span>.
    #[inline(always)]
    fn add(self, m2: ::cpp_core::Ref<crate::QMatrix4X4>) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_80(
                self as *const crate::QMatrix4X4,
                m2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::cpp_core::Ref<crate::QMatrix4X4>> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<crate::QMatrix4X4>;
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 operator-(const QMatrix4x4& m1, const QMatrix4x4& m2)```</span>.
    #[inline(always)]
    fn sub(self, m2: ::cpp_core::Ref<crate::QMatrix4X4>) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_81(
                self as *const crate::QMatrix4X4,
                m2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QMatrix4X4>> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<crate::QMatrix4X4>;
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 operator*(const QMatrix4x4& m1, const QMatrix4x4& m2)```</span>.
    #[inline(always)]
    fn mul(self, m2: ::cpp_core::Ref<crate::QMatrix4X4>) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_82(
                self as *const crate::QMatrix4X4,
                m2.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QMatrix4X4>> for &crate::QVector3D {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator*(const QVector3D& vector, const QMatrix4x4& matrix)```</span>.
    #[inline(always)]
    fn mul(
        self,
        matrix: ::cpp_core::Ref<crate::QMatrix4X4>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_83(
                self as *const crate::QVector3D,
                matrix.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QVector3D>> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<crate::QVector3D>;
    /// Calls C++ function: <span style='color: green;'>```QVector3D operator*(const QMatrix4x4& matrix, const QVector3D& vector)```</span>.
    #[inline(always)]
    fn mul(
        self,
        vector: ::cpp_core::Ref<crate::QVector3D>,
    ) -> ::cpp_core::CppBox<crate::QVector3D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_84(
                self as *const crate::QMatrix4X4,
                vector.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QMatrix4X4>> for &crate::QVector4D {
    type Output = ::cpp_core::CppBox<crate::QVector4D>;
    /// Calls C++ function: <span style='color: green;'>```QVector4D operator*(const QVector4D& vector, const QMatrix4x4& matrix)```</span>.
    #[inline(always)]
    fn mul(
        self,
        matrix: ::cpp_core::Ref<crate::QMatrix4X4>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_85(
                self as *const crate::QVector4D,
                matrix.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<crate::QVector4D>> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<crate::QVector4D>;
    /// Calls C++ function: <span style='color: green;'>```QVector4D operator*(const QMatrix4x4& matrix, const QVector4D& vector)```</span>.
    #[inline(always)]
    fn mul(
        self,
        vector: ::cpp_core::Ref<crate::QVector4D>,
    ) -> ::cpp_core::CppBox<crate::QVector4D> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_86(
                self as *const crate::QMatrix4X4,
                vector.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<::qt_core::QPoint>> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<::qt_core::QPoint>;
    /// Calls C++ function: <span style='color: green;'>```QPoint operator*(const QMatrix4x4& matrix, const QPoint& point)```</span>.
    #[inline(always)]
    fn mul(
        self,
        point: ::cpp_core::Ref<::qt_core::QPoint>,
    ) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_89(
                self as *const crate::QMatrix4X4,
                point.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::cpp_core::Ref<::qt_core::QPointF>> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<::qt_core::QPointF>;
    /// Calls C++ function: <span style='color: green;'>```QPointF operator*(const QMatrix4x4& matrix, const QPointF& point)```</span>.
    #[inline(always)]
    fn mul(
        self,
        point: ::cpp_core::Ref<::qt_core::QPointF>,
    ) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_90(
                self as *const crate::QMatrix4X4,
                point.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Mul<::std::os::raw::c_float> for &crate::QMatrix4X4 {
    type Output = ::cpp_core::CppBox<crate::QMatrix4X4>;
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 operator*(const QMatrix4x4& matrix, float factor)```</span>.
    #[inline(always)]
    fn mul(self, factor: ::std::os::raw::c_float) -> ::cpp_core::CppBox<crate::QMatrix4X4> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator_93(self as *const crate::QMatrix4X4, factor)
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QMovie {
    /// <p>Destructs the <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QMovie::~QMovie()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmovie.html#dtor.QMovie">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the <a href="http://doc.qt.io/qt-5/qmovie.html">QMovie</a> object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMovie_dQMovie(self as *mut crate::QMovie)
    }
}

impl ::cpp_core::CppDeletable for crate::QOffscreenSurface {
    /// <p>Destroys the offscreen surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOffscreenSurface::~QOffscreenSurface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#dtor.QOffscreenSurface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the offscreen surface.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_dQOffscreenSurface(
            self as *mut crate::QOffscreenSurface,
        )
    }
}

impl ::cpp_core::vector_ops::Size for crate::QOffscreenSurface {
    /// <p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#size">QSurface::size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual QSize QOffscreenSurface::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qoffscreensurface.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplemented from <a href="http://doc.qt.io/qt-5/qsurface.html#size">QSurface::size</a>().</p>
    /// <p>Returns the size of the offscreen surface.</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOffscreenSurface_size(
            self as *const crate::QOffscreenSurface,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLBuffer {
    /// <p>Destroys this buffer object, including the storage being used in the OpenGL server.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLBuffer::~QOpenGLBuffer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#dtor.QOpenGLBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys this buffer object, including the storage being used in the OpenGL server.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_dQOpenGLBuffer(self as *mut crate::QOpenGLBuffer)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QOpenGLBuffer {
    /// <p>Returns the size of the data in this buffer, for reading operations. Returns -1 if fetching the buffer size is not supported, or the buffer has not been created.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QOpenGLBuffer::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the data in this buffer, for reading operations. Returns -1 if fetching the buffer size is not supported, or the buffer has not been created.</p>
    /// <p>It is assumed that this buffer has been bound to the current context.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglbuffer.html#isCreated">isCreated</a>() and <a href="http://doc.qt.io/qt-5/qopenglbuffer.html#bind">bind</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLBuffer_size(self as *const crate::QOpenGLBuffer);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QAbstractOpenGLFunctions {
    /// <p>Destroys a <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html#dtor.QAbstractOpenGLFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys a <a href="http://doc.qt.io/qt-5/qabstractopenglfunctions.html">QAbstractOpenGLFunctions</a> object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAbstractOpenGLFunctions_dQAbstractOpenGLFunctions(
            self as *mut crate::QAbstractOpenGLFunctions,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLVersionProfile {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLVersionProfile::~QOpenGLVersionProfile()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html#dtor.QOpenGLVersionProfile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglversionprofile.html">QOpenGLVersionProfile</a> object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVersionProfile_dQOpenGLVersionProfile(
            self as *mut crate::QOpenGLVersionProfile,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QOpenGLVersionProfile>>
    for crate::QOpenGLVersionProfile
{
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QOpenGLVersionProfile& lhs, const QOpenGLVersionProfile& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, rhs: &::cpp_core::Ref<crate::QOpenGLVersionProfile>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__91(
                self as *const crate::QOpenGLVersionProfile,
                rhs.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLContextGroup {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLContextGroup::~QOpenGLContextGroup()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContextGroup_dQOpenGLContextGroup(
            self as *mut crate::QOpenGLContextGroup,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLContext {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLContext::~QOpenGLContext()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglcontext.html#dtor.QOpenGLContext">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglcontext.html">QOpenGLContext</a> object.</p>
    /// <p>If this is the current context for the thread, <a href="http://doc.qt.io/qt-5/qopenglcontext.html#doneCurrent">doneCurrent</a>() is also called.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLContext_dQOpenGLContext(
            self as *mut crate::QOpenGLContext,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLDebugMessage {
    /// <p>Destroys this debug message.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLDebugMessage::~QOpenGLDebugMessage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#dtor.QOpenGLDebugMessage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys this debug message.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_dQOpenGLDebugMessage(
            self as *mut crate::QOpenGLDebugMessage,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QOpenGLDebugMessage>>
    for crate::QOpenGLDebugMessage
{
    /// <p>Returns <code>true</code> if this debug message is equal to <i>debugMessage</i>, or false otherwise. Two debugging messages are equal if they have the same textual message, the same id, the same source, the same type and the same severity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLDebugMessage::operator==(const QOpenGLDebugMessage& debugMessage) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this debug message is equal to <i>debugMessage</i>, or false otherwise. Two debugging messages are equal if they have the same textual message, the same id, the same source, the same type and the same severity.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengldebugmessage.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, debug_message: &::cpp_core::Ref<crate::QOpenGLDebugMessage>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugMessage_operator__(
                self as *const crate::QOpenGLDebugMessage,
                debug_message.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLDebugLogger {
    /// <p>Destroys the logger object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLDebugLogger::~QOpenGLDebugLogger()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengldebuglogger.html#dtor.QOpenGLDebugLogger">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the logger object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLDebugLogger_dQOpenGLDebugLogger(
            self as *mut crate::QOpenGLDebugLogger,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLFunctions {
    /// <p>Destroys this function resolver.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLFunctions::~QOpenGLFunctions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglfunctions.html#dtor.QOpenGLFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys this function resolver.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFunctions_dQOpenGLFunctions(
            self as *mut crate::QOpenGLFunctions,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLExtraFunctions {
    /// <p>Destroys the instance of QOpenGLExtraFunctions.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLExtraFunctions::~QOpenGLExtraFunctions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglextrafunctions.html#dtor.QOpenGLExtraFunctions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QOpenGLExtraFunctions.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLExtraFunctions_dQOpenGLExtraFunctions(
            self as *mut crate::QOpenGLExtraFunctions,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLFramebufferObject {
    /// <p>Destroys the framebuffer object and frees any allocated resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLFramebufferObject::~QOpenGLFramebufferObject()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#dtor.QOpenGLFramebufferObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the framebuffer object and frees any allocated resources.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_dQOpenGLFramebufferObject(
            self as *mut crate::QOpenGLFramebufferObject,
        )
    }
}

impl ::cpp_core::vector_ops::Size for crate::QOpenGLFramebufferObject {
    /// <p>Returns the size of the color and depth/stencil attachments attached to this framebuffer object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QOpenGLFramebufferObject::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobject.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the color and depth/stencil attachments attached to this framebuffer object.</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObject_size(
            self as *const crate::QOpenGLFramebufferObject,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLFramebufferObjectFormat {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html">QOpenGLFramebufferObjectFormat</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLFramebufferObjectFormat::~QOpenGLFramebufferObjectFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#dtor.QOpenGLFramebufferObjectFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html">QOpenGLFramebufferObjectFormat</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_dQOpenGLFramebufferObjectFormat(
            self as *mut crate::QOpenGLFramebufferObjectFormat,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>>
    for crate::QOpenGLFramebufferObjectFormat
{
    /// <p>Returns <code>true</code> if all the options of this framebuffer object format are the same as <i>other</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QOpenGLFramebufferObjectFormat::operator==(const QOpenGLFramebufferObjectFormat& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglframebufferobjectformat.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if all the options of this framebuffer object format are the same as <i>other</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QOpenGLFramebufferObjectFormat>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QOpenGLFramebufferObjectFormat_operator__(
                self as *const crate::QOpenGLFramebufferObjectFormat,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLPaintDevice {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLPaintDevice::~QOpenGLPaintDevice()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#dtor.QOpenGLPaintDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html">QOpenGLPaintDevice</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_dQOpenGLPaintDevice(
            self as *mut crate::QOpenGLPaintDevice,
        )
    }
}

impl ::cpp_core::vector_ops::Size for crate::QOpenGLPaintDevice {
    /// <p>Returns the pixel size of the paint device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QOpenGLPaintDevice::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixel size of the paint device.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglpaintdevice.html#setSize">setSize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QOpenGLPaintDevice_size(
            self as *const crate::QOpenGLPaintDevice,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLPixelTransferOptions {
    /// <p>Destructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLPixelTransferOptions::~QOpenGLPixelTransferOptions()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglpixeltransferoptions.html#dtor.QOpenGLPixelTransferOptions">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructor.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLPixelTransferOptions_dQOpenGLPixelTransferOptions(
            self as *mut crate::QOpenGLPixelTransferOptions,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLShader {
    /// <p>Deletes this shader. If the shader has been attached to a <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> object, then the actual shader will stay around until the <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> is destroyed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLShader::~QOpenGLShader()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshader.html#dtor.QOpenGLShader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Deletes this shader. If the shader has been attached to a <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> object, then the actual shader will stay around until the <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a> is destroyed.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShader_dQOpenGLShader(self as *mut crate::QOpenGLShader)
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLShaderProgram {
    /// <p>Deletes this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLShaderProgram::~QOpenGLShaderProgram()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html#dtor.QOpenGLShaderProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Deletes this shader program.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLShaderProgram_dQOpenGLShaderProgram(
            self as *mut crate::QOpenGLShaderProgram,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLTexture {
    /// <p>Destroys the instance of QOpenGLTexture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLTexture::~QOpenGLTexture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltexture.html#dtor.QOpenGLTexture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QOpenGLTexture.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTexture_dQOpenGLTexture(
            self as *mut crate::QOpenGLTexture,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLTextureBlitter {
    /// <p>Destructs the instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QOpenGLTextureBlitter::~QOpenGLTextureBlitter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#dtor.QOpenGLTextureBlitter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the instance.</p>
    /// <p><b>Note: </b>When the OpenGL context - or a context sharing resources with it - that was current when calling <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#create">create</a>() is not current, graphics resources will not be released. Therefore, it is recommended to call <a href="http://doc.qt.io/qt-5/qopengltextureblitter.html#destroy">destroy</a>() manually instead of relying on the destructor to perform OpenGL resource cleanup.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTextureBlitter_dQOpenGLTextureBlitter(
            self as *mut crate::QOpenGLTextureBlitter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLTimerQuery {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> and the underlying OpenGL resource.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLTimerQuery::~QOpenGLTimerQuery()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#dtor.QOpenGLTimerQuery">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopengltimerquery.html">QOpenGLTimerQuery</a> and the underlying OpenGL resource.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_dQOpenGLTimerQuery(
            self as *mut crate::QOpenGLTimerQuery,
        )
    }
}

impl ::cpp_core::ops::BeginMut for crate::QOpenGLTimerQuery {
    type Output = ();
    /// <p>Marks the start point in the OpenGL command queue for a sequence of commands to be timed by this query object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimerQuery::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the start point in the OpenGL command queue for a sequence of commands to be timed by this query object.</p>
    /// <p>This is useful for simple use-cases. Usually it is better to use <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">end</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(), and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_begin(self as *mut crate::QOpenGLTimerQuery)
    }
}

impl ::cpp_core::ops::EndMut for crate::QOpenGLTimerQuery {
    type Output = ();
    /// <p>Marks the end point in the OpenGL command queue for a sequence of commands to be timed by this query object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QOpenGLTimerQuery::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Marks the end point in the OpenGL command queue for a sequence of commands to be timed by this query object.</p>
    /// <p>This is useful for simple use-cases. Usually it is better to use <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopengltimerquery.html#begin">begin</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#isResultAvailable">isResultAvailable</a>(), <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#waitForResult">waitForResult</a>(), and <a href="http://doc.qt.io/qt-5/qopengltimerquery.html#recordTimestamp">recordTimestamp</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimerQuery_end(self as *mut crate::QOpenGLTimerQuery)
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLTimeMonitor {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> and any underlying OpenGL resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLTimeMonitor::~QOpenGLTimeMonitor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html#dtor.QOpenGLTimeMonitor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopengltimemonitor.html">QOpenGLTimeMonitor</a> and any underlying OpenGL resources.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLTimeMonitor_dQOpenGLTimeMonitor(
            self as *mut crate::QOpenGLTimeMonitor,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLVertexArrayObject {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> and the underlying OpenGL resource.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html#dtor.QOpenGLVertexArrayObject">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglvertexarrayobject.html">QOpenGLVertexArrayObject</a> and the underlying OpenGL resource.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLVertexArrayObject_dQOpenGLVertexArrayObject(
            self as *mut crate::QOpenGLVertexArrayObject,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QOpenGLWindow {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> instance, freeing its resources.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QOpenGLWindow::~QOpenGLWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qopenglwindow.html#dtor.QOpenGLWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> instance, freeing its resources.</p>
    /// <p>The OpenGLWindow's context is made current in the destructor, allowing for safe destruction of any child object that may need to release OpenGL resources belonging to the context provided by this window.</p>
    /// <p><b>Warning:</b> if you have objects wrapping OpenGL resources (such as <a href="http://doc.qt.io/qt-5/qopenglbuffer.html">QOpenGLBuffer</a>, <a href="http://doc.qt.io/qt-5/qopenglshaderprogram.html">QOpenGLShaderProgram</a>, etc.) as members of a <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a> subclass, you may need to add a call to <a href="http://doc.qt.io/qt-5/qopenglwindow.html#makeCurrent">makeCurrent</a>() in that subclass' destructor as well. Due to the rules of C++ object destruction, those objects will be destroyed <i>before</i> calling this function (but after that the destructor of the subclass has run), therefore making the OpenGL context current in this function happens too late for their safe disposal.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qopenglwindow.html#makeCurrent">makeCurrent</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QOpenGLWindow_dQOpenGLWindow(self as *mut crate::QOpenGLWindow)
    }
}

impl ::cpp_core::CppDeletable for crate::QPageSize {
    /// <p>Destroys the page.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPageSize::~QPageSize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagesize.html#dtor.QPageSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the page.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPageSize_dQPageSize(self as *mut crate::QPageSize)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPageSize>> for crate::QPageSize {
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QPageSize& lhs, const QPageSize& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(const QPageLayout &lhs, const QPageLayout &rhs)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, rhs: &::cpp_core::Ref<crate::QPageSize>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__97(
                self as *const crate::QPageSize,
                rhs.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QPageLayout {
    /// <p>Destroys the page layout.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPageLayout::~QPageLayout()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#dtor.QPageLayout">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the page layout.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPageLayout_dQPageLayout(self as *mut crate::QPageLayout)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPageLayout>> for crate::QPageLayout {
    /// <p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QPageLayout& lhs, const QPageLayout& rhs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagelayout.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if page layout <i>lhs</i> is equal to page layout <i>rhs</i>, i.e. if all the attributes are exactly equal.</p>
    /// <p>Note that this is a strict equality, especially for page size where the <a href="http://doc.qt.io/qt-5/qpagesize.html">QPageSize</a> ID, name and size must exactly match, and the margins where the units must match.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpagelayout.html#isEquivalentTo">QPageLayout::isEquivalentTo</a>().</p></div>
    #[inline(always)]
    fn eq(&self, rhs: &::cpp_core::Ref<crate::QPageLayout>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__100(
                self as *const crate::QPageLayout,
                rhs.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QPagedPaintDevice {
    /// <p>Destroys the object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPagedPaintDevice::~QPagedPaintDevice()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpagedpaintdevice.html#dtor.QPagedPaintDevice">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPagedPaintDevice_dQPagedPaintDevice(
            self as *mut crate::QPagedPaintDevice,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPainter {
    /// <p>Destroys the painter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPainter::~QPainter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#dtor.QPainter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the painter.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_dQPainter(self as *mut crate::QPainter)
    }
}

impl ::cpp_core::ops::EndMut for crate::QPainter {
    type Output = bool;
    /// <p>Ends painting. Any resources used while painting are released. You don't normally need to call this since it is called by the destructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QPainter::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpainter.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Ends painting. Any resources used while painting are released. You don't normally need to call this since it is called by the destructor.</p>
    /// <p>Returns <code>true</code> if the painter is no longer active; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpainter.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpainter.html#isActive">isActive</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPainter_end(self as *mut crate::QPainter)
    }
}

impl ::cpp_core::CppDeletable for crate::QPaintEngine {
    /// <p>Destroys the paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPaintEngine::~QPaintEngine()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#dtor.QPaintEngine">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the paint engine.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_dQPaintEngine(self as *mut crate::QPaintEngine)
    }
}

impl ::cpp_core::ops::EndMut for crate::QPaintEngine {
    type Output = bool;
    /// <p>Reimplement this function to finish painting on the current paint device. Return true if painting was finished successfully; otherwise return false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool QPaintEngine::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintengine.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Reimplement this function to finish painting on the current paint device. Return true if painting was finished successfully; otherwise return false.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpaintengine.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qpaintengine.html#isActive">isActive</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngine_end(self as *mut crate::QPaintEngine)
    }
}

impl ::cpp_core::CppDeletable for crate::QPdfWriter {
    /// <p>Destroys the pdf writer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPdfWriter::~QPdfWriter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpdfwriter.html#dtor.QPdfWriter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the pdf writer.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPdfWriter_dQPdfWriter(self as *mut crate::QPdfWriter)
    }
}

impl ::cpp_core::CppDeletable for crate::QPicture {
    /// <p>Destroys the picture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPicture::~QPicture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#dtor.QPicture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the picture.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPicture_dQPicture(self as *mut crate::QPicture)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QPicture {
    /// <p>Returns the size of the picture data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int QPicture::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the picture data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#data">data</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_size(self as *const crate::QPicture);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Data for crate::QPicture {
    type Output = ::cpp_core::Ptr<::std::os::raw::c_char>;
    /// <p>Returns a pointer to the picture data. The pointer is only valid until the next non-const function is called on this picture. The returned pointer is 0 if the picture contains no data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const char* QPicture::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpicture.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the picture data. The pointer is only valid until the next non-const function is called on this picture. The returned pointer is 0 if the picture contains no data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpicture.html#setData">setData</a>(), <a href="http://doc.qt.io/qt-5/qpicture.html#size">size</a>(), and <a href="http://doc.qt.io/qt-5/qpicture.html#isNull">isNull</a>().</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_char> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QPicture_data(self as *const crate::QPicture);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::CppDeletable for crate::QPictureIO {
    /// <p>Destroys the object and all related data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPictureIO::~QPictureIO()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureio.html#dtor.QPictureIO">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the object and all related data.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureIO_dQPictureIO(self as *mut crate::QPictureIO)
    }
}

impl ::cpp_core::CppDeletable for crate::QPictureFormatPlugin {
    /// <p>Destroys the picture format plugin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QPictureFormatPlugin::~QPictureFormatPlugin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpictureformatplugin.html#dtor.QPictureFormatPlugin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the picture format plugin.</p>
    /// <p>You never have to call this explicitly. Qt destroys a plugin automatically when it is no longer used.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPictureFormatPlugin_dQPictureFormatPlugin(
            self as *mut crate::QPictureFormatPlugin,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRasterWindow {
    /// <p>Destroys the instance of QRasterWindow.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QRasterWindow::~QRasterWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrasterwindow.html#dtor.QRasterWindow">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QRasterWindow.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QRasterWindow_dQRasterWindow(self as *mut crate::QRasterWindow)
    }
}

impl ::cpp_core::CppDeletable for crate::QScreen {
    /// <p>Destroys the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QScreen::~QScreen()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#dtor.QScreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the screen.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QScreen_dQScreen(self as *mut crate::QScreen)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QScreen {
    /// <p>This property holds the pixel resolution of the screen</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize QScreen::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qscreen.html#size-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the pixel resolution of the screen</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>size</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qscreen.html#geometryChanged">geometryChanged</a></b></span>(const QRect &amp;<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QScreen_size(self as *const crate::QScreen);
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QStandardItem {
    /// <p>Destructs the item. This causes the item's children to be destructed as well.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QStandardItem::~QStandardItem()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#dtor.QStandardItem">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the item. This causes the item's children to be destructed as well.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_dQStandardItem(self as *mut crate::QStandardItem)
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QStandardItem>> for crate::QStandardItem {
    /// <p>Returns <code>true</code> if this item is less than <i>other</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual bool QStandardItem::operator<(const QStandardItem& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditem.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this item is less than <i>other</i>; otherwise returns <code>false</code>.</p>
    /// <p>The default implementation uses the data for the item's sort role (see <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sortRole-prop">QStandardItemModel::sortRole</a>) to perform the comparison if the item belongs to a model; otherwise, the data for the item's <a href="http://doc.qt.io/qt-5/qt.html#ItemDataRole-enum">Qt::DisplayRole</a> (<a href="http://doc.qt.io/qt-5/qstandarditem.html#text">text</a>()) is used to perform the comparison.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qstandarditem.html#sortChildren">sortChildren</a>() and <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#sort">QStandardItemModel::sort</a>() use this function when sorting items. If you want custom sorting, you can subclass <a href="http://doc.qt.io/qt-5/qstandarditem.html">QStandardItem</a> and reimplement this function.</p></div>
    #[inline(always)]
    unsafe fn lt(&self, other: &::cpp_core::Ref<crate::QStandardItem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItem_operator_(
            self as *const crate::QStandardItem,
            other.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QStandardItemModel {
    /// <p>Destructs the model. The model destroys all its items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QStandardItemModel::~QStandardItemModel()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstandarditemmodel.html#dtor.QStandardItemModel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructs the model. The model destroys all its items.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QStandardItemModel_dQStandardItemModel(
            self as *mut crate::QStandardItemModel,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QStaticText {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QStaticText::~QStaticText()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#dtor.QStaticText">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QStaticText_dQStaticText(self as *mut crate::QStaticText)
    }
}

impl ::cpp_core::vector_ops::Size for crate::QStaticText {
    /// <p>Returns the size of the bounding rect for this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSizeF QStaticText::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the size of the bounding rect for this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qstatictext.html#textWidth">textWidth</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QStaticText_size(self as *const crate::QStaticText);
        ffi_result as usize
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QStaticText>> for crate::QStaticText {
    /// <p>Compares <i>other</i> to this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>. Returns <code>true</code> if the texts, fonts and text widths are equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QStaticText::operator==(const QStaticText& arg1) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstatictext.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Compares <i>other</i> to this <a href="http://doc.qt.io/qt-5/qstatictext.html">QStaticText</a>. Returns <code>true</code> if the texts, fonts and text widths are equal.</p></div>
    #[inline(always)]
    fn eq(&self, arg1: &::cpp_core::Ref<crate::QStaticText>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QStaticText_operator__(
                self as *const crate::QStaticText,
                arg1.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QTextFrame {
    /// <p>Destroys the text frame.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QTextFrame::~QTextFrame()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#dtor.QTextFrame">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the text frame.</p>
    /// <p><b>Warning:</b> Text frames are owned by the document, so you should never destroy them yourself. In order to remove a frame from its document, remove its contents using a <code>QTextCursor</code>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrame_dQTextFrame(self as *mut crate::QTextFrame)
    }
}

impl ::cpp_core::ops::Begin for crate::QTextFrame {
    type Output = ::cpp_core::CppBox<crate::q_text_frame::Iterator>;
    /// <p>Returns an iterator pointing to the first document element inside the frame. Please see the document <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style-Iterators</a> for more information.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextFrame::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an iterator pointing to the first document element inside the frame. Please see the document <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style-Iterators</a> for more information.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_begin(self as *const crate::QTextFrame);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QTextFrame {
    type Output = ::cpp_core::CppBox<crate::q_text_frame::Iterator>;
    /// <p>Returns an iterator pointing to the position past the last document element inside the frame. Please see the document <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-Style Iterators</a> for more information.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextFrame::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframe.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an iterator pointing to the position past the last document element inside the frame. Please see the document <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-Style Iterators</a> for more information.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextframe.html#begin">begin</a>().</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextFrame_end(self as *const crate::QTextFrame);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::CppDeletable for crate::QTextBlockUserData {
    /// <p>Destroys the user data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QTextBlockUserData::~QTextBlockUserData()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockuserdata.html#dtor.QTextBlockUserData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the user data.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockUserData_dQTextBlockUserData(
            self as *mut crate::QTextBlockUserData,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextBlock>> for crate::QTextBlock {
    /// <p>Returns <code>true</code> if this text block is the same as the <i>other</i> text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextBlock::operator==(const QTextBlock& o) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text block is the same as the <i>other</i> text block.</p></div>
    #[inline(always)]
    fn eq(&self, o: &::cpp_core::Ref<crate::QTextBlock>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_operator__(
                self as *const crate::QTextBlock,
                o.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QTextBlock>> for crate::QTextBlock {
    /// <p>Returns <code>true</code> if this text block occurs before the <i>other</i> text block in the document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextBlock::operator<(const QTextBlock& o) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text block occurs before the <i>other</i> text block in the document.</p></div>
    #[inline(always)]
    unsafe fn lt(&self, o: &::cpp_core::Ref<crate::QTextBlock>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_operator_1(
            self as *const crate::QTextBlock,
            o.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::ops::Begin for crate::QTextBlock {
    type Output = ::cpp_core::CppBox<crate::q_text_block::Iterator>;
    /// <p>Returns a text block iterator pointing to the beginning of the text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator QTextBlock::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a text block iterator pointing to the beginning of the text block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_text_block::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_begin(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QTextBlock {
    type Output = ::cpp_core::CppBox<crate::q_text_block::Iterator>;
    /// <p>Returns a text block iterator pointing to the end of the text block.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextBlock::iterator QTextBlock::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a text block iterator pointing to the end of the text block.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtextblock.html#begin">begin</a>(), <a href="http://doc.qt.io/qt-5/qtextblock.html#next">next</a>(), and <a href="http://doc.qt.io/qt-5/qtextblock.html#previous">previous</a>().</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_text_block::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextBlock_end(self as *const crate::QTextBlock);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextFragment>> for crate::QTextFragment {
    /// <p>Returns <code>true</code> if this text fragment is the same (at the same position) as the <i>other</i> text fragment; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFragment::operator==(const QTextFragment& o) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text fragment is the same (at the same position) as the <i>other</i> text fragment; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, o: &::cpp_core::Ref<crate::QTextFragment>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTextFragment_operator__(
                self as *const crate::QTextFragment,
                o.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QTextFragment>> for crate::QTextFragment {
    /// <p>Returns <code>true</code> if this text fragment appears earlier in the document than the <i>other</i> text fragment; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextFragment::operator<(const QTextFragment& o) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html#operator-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this text fragment appears earlier in the document than the <i>other</i> text fragment; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn lt(&self, o: &::cpp_core::Ref<crate::QTextFragment>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_QTextFragment_operator_1(
            self as *const crate::QTextFragment,
            o.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QSyntaxHighlighter {
    /// <p>Destructor. Uninstalls this syntax highlighter from the text document.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QSyntaxHighlighter::~QSyntaxHighlighter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qsyntaxhighlighter.html#dtor.QSyntaxHighlighter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructor. Uninstalls this syntax highlighter from the text document.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSyntaxHighlighter_dQSyntaxHighlighter(
            self as *mut crate::QSyntaxHighlighter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextDocumentFragment {
    /// <p>Destroys the document fragment.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextDocumentFragment::~QTextDocumentFragment()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentfragment.html#dtor.QTextDocumentFragment">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the document fragment.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentFragment_dQTextDocumentFragment(
            self as *mut crate::QTextDocumentFragment,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextDocumentWriter {
    /// <p>Destroys the <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextDocumentWriter::~QTextDocumentWriter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html#dtor.QTextDocumentWriter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the <a href="http://doc.qt.io/qt-5/qtextdocumentwriter.html">QTextDocumentWriter</a> object.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextDocumentWriter_dQTextDocumentWriter(
            self as *mut crate::QTextDocumentWriter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextList {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QTextList::~QTextList()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextList_dQTextList(self as *mut crate::QTextList)
    }
}

impl ::cpp_core::CppDeletable for crate::QTextTableCell {
    /// <p>Destroys the table cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextTableCell::~QTextTableCell()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#dtor.QTextTableCell">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the table cell.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_dQTextTableCell(
            self as *mut crate::QTextTableCell,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextTableCell>> for crate::QTextTableCell {
    /// <p>Returns <code>true</code> if this cell object and the <i>other</i> cell object describe the same cell; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QTextTableCell::operator==(const QTextTableCell& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this cell object and the <i>other</i> cell object describe the same cell; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QTextTableCell>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_operator__(
                self as *const crate::QTextTableCell,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::ops::Begin for crate::QTextTableCell {
    type Output = ::cpp_core::CppBox<crate::q_text_frame::Iterator>;
    /// <p>Returns a frame iterator pointing to the beginning of the table's cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextTableCell::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a frame iterator pointing to the beginning of the table's cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_begin(self as *const crate::QTextTableCell);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QTextTableCell {
    type Output = ::cpp_core::CppBox<crate::q_text_frame::Iterator>;
    /// <p>Returns a frame iterator pointing to the end of the table's cell.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFrame::iterator QTextTableCell::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecell.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a frame iterator pointing to the end of the table's cell.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qtexttablecell.html#begin">begin</a>().</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_text_frame::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QTextTableCell_end(self as *const crate::QTextTableCell);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::CppDeletable for crate::QTextTable {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QTextTable::~QTextTable()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTable_dQTextTable(self as *mut crate::QTextTable)
    }
}

impl ::cpp_core::CppDeletable for crate::QValidator {
    /// <p>Destroys the validator, freeing any storage and other resources used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QValidator::~QValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvalidator.html#dtor.QValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the validator, freeing any storage and other resources used.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QValidator_dQValidator(self as *mut crate::QValidator)
    }
}

impl ::cpp_core::CppDeletable for crate::QIntValidator {
    /// <p>Destroys the validator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QIntValidator::~QIntValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qintvalidator.html#dtor.QIntValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the validator.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QIntValidator_dQIntValidator(self as *mut crate::QIntValidator)
    }
}

impl ::cpp_core::CppDeletable for crate::QDoubleValidator {
    /// <p>Destroys the validator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QDoubleValidator::~QDoubleValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdoublevalidator.html#dtor.QDoubleValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the validator.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDoubleValidator_dQDoubleValidator(
            self as *mut crate::QDoubleValidator,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRegExpValidator {
    /// <p>Destroys the validator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QRegExpValidator::~QRegExpValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregexpvalidator.html#dtor.QRegExpValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the validator.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QRegExpValidator_dQRegExpValidator(
            self as *mut crate::QRegExpValidator,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRegularExpressionValidator {
    /// <p>Destroys the validator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void QRegularExpressionValidator::~QRegularExpressionValidator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qregularexpressionvalidator.html#dtor.QRegularExpressionValidator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the validator.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QRegularExpressionValidator_dQRegularExpressionValidator(
            self as *mut crate::QRegularExpressionValidator,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRgba64 {
    /// <p>The <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct contains a 64-bit RGB color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QRgba64::~QRgba64()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qrgba64.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct contains a 64-bit RGB color.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> is a 64-bit data-structure containing four 16-bit color channels: Red, green, blue and alpha.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> can be used a replacement for <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> when higher precision is needed. In particular a premultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> can operate on unpremultiplied <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> without loss of precision except for alpha 0.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QRgba64_dQRgba64(self as *mut crate::QRgba64)
    }
}

impl ::cpp_core::CppDeletable for crate::QColor {
    /// <p>The <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> class provides colors based on RGB, HSV or CMYK values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QColor::~QColor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcolor.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> class provides colors based on RGB, HSV or CMYK values.</p>
    /// <p>A color is normally specified in terms of RGB (red, green, and blue) components, but it is also possible to specify it in terms of HSV (hue, saturation, and value) and CMYK (cyan, magenta, yellow and black) components. In addition a color can be specified using a color name. The color name can be any of the SVG 1.0 color names.</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>RGB</th><th>HSV</th><th>CMYK</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qcolor-rgb.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qcolor-hsv.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qcolor-cmyk.png" alt=""></td></tr>
    /// </tbody></table></div>
    /// <p>The <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> constructor creates the color based on RGB values. To create a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> based on either HSV or CMYK values, use the <a href="http://doc.qt.io/qt-5/qcolor.html#toHsv">toHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#toCmyk">toCmyk</a>() functions respectively. These functions return a copy of the color using the desired format. In addition the static <a href="http://doc.qt.io/qt-5/qcolor.html#fromRgb">fromRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#fromHsv">fromHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#fromCmyk">fromCmyk</a>() functions create colors from the specified values. Alternatively, a color can be converted to any of the three formats using the <a href="http://doc.qt.io/qt-5/qcolor.html#convertTo">convertTo</a>() function (returning a copy of the color in the desired format), or any of the <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">setCmyk</a>() functions altering <i>this</i> color's format. The <a href="http://doc.qt.io/qt-5/qcolor.html#spec">spec</a>() function tells how the color was specified.</p>
    /// <p>A color can be set by passing an RGB string (such as "#112233"), or an ARGB string (such as "#ff112233") or a color name (such as "blue"), to the <a href="http://doc.qt.io/qt-5/qcolor.html#setNamedColor">setNamedColor</a>() function. The color names are taken from the SVG 1.0 color names. The <a href="http://doc.qt.io/qt-5/qcolor.html#name">name</a>() function returns the name of the color in the format "#RRGGBB". Colors can also be set using <a href="http://doc.qt.io/qt-5/qcolor.html#setRgb">setRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#setHsv">setHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#setCmyk">setCmyk</a>(). To get a lighter or darker color use the <a href="http://doc.qt.io/qt-5/qcolor.html#lighter">lighter</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#darker">darker</a>() functions respectively.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qcolor.html#isValid">isValid</a>() function indicates whether a <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> is legal at all. For example, a RGB color with RGB values out of range is illegal. For performance reasons, <a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> mostly disregards illegal colors, and for that reason, the result of using an invalid color is undefined.</p>
    /// <p>The color components can be retrieved individually, e.g with <a href="http://doc.qt.io/qt-5/qcolor.html#red">red</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#hue">hue</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#cyan">cyan</a>(). The values of the color components can also be retrieved in one go using the <a href="http://doc.qt.io/qt-5/qcolor.html#getRgb">getRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#getHsv">getHsv</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#getCmyk">getCmyk</a>() functions. Using the RGB color model, the color components can in addition be accessed with <a href="http://doc.qt.io/qt-5/qcolor.html#rgb">rgb</a>().</p>
    /// <p>There are several related non-members: <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> is a typdef for an unsigned int representing the RGB value triplet (r, g, b). Note that it also can hold a value for the alpha-channel (for more information, see the <a href="http://doc.qt.io/qt-5/qcolor.html#alpha-blended-drawing">Alpha-Blended Drawing</a> section). The <a href="http://doc.qt.io/qt-5/qcolor.html#qRed">qRed</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue">qBlue</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen">qGreen</a>() functions return the respective component of the given <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> value, while the <a href="http://doc.qt.io/qt-5/qcolor.html#qRgb">qRgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#qRgba">qRgba</a>() functions create and return the <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a> triplet based on the given component values. Finally, the <a href="http://doc.qt.io/qt-5/qcolor.html#qAlpha">qAlpha</a>() function returns the alpha component of the provided <a href="http://doc.qt.io/qt-5/qcolor.html#QRgb-typedef">QRgb</a>, and the <a href="http://doc.qt.io/qt-5/qcolor.html#qGray">qGray</a>() function calculates and return a gray value based on the given value.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a> is platform and device independent. The <a href="http://doc.qt.io/qt-5/qcolormap.html">QColormap</a> class maps the color to the hardware.</p>
    /// <p>For more information about painting in general, see the <a href="http://doc.qt.io/qt-5/paintsystem.html">Paint System</a> documentation.</p>
    /// <a name="integer-vs-floating-point-precision"></a></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QColor_dQColor(self as *mut crate::QColor)
    }
}

impl ::cpp_core::CppDeletable for crate::QVector2D {
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class represents a vector or vertex in 2D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector2D::~QVector2D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector2d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class represents a vector or vertex in 2D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector2d.html">QVector2D</a> class can also be used to represent vertices in 2D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector2D_dQVector2D(self as *mut crate::QVector2D)
    }
}

impl ::cpp_core::CppDeletable for crate::QNativeGestureEvent {
    /// <p>The <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> class contains parameters that describe a gesture event.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QNativeGestureEvent::~QNativeGestureEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qnativegestureevent.html">QNativeGestureEvent</a> class contains parameters that describe a gesture event.</p>
    /// <p>Native gesture events are generated by the operating system, typically by interpreting touch events. Gesture events are high-level events such as zoom or rotate.</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Event Type</th><th>Description</th><th>Touch equence</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::ZoomNativeGesture</a></td><td>Magnification delta in percent.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger pinch.</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::SmartZoomNativeGesture</a></td><td>Boolean magnification state.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger douple tap (trackpad) / One-finger douple tap (magic mouse).</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt.html#NativeGestureType-enum">Qt::RotateNativeGesture</a></td><td>Rotation delta in degrees.</td><td><a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a>: Two-finger rotate.</td></tr>
    /// </tbody></table></div>
    /// <p>In addition, BeginNativeGesture and EndNativeGesture are sent before and after gesture event streams:</p>
    /// <p>BeginNativeGesture ZoomNativeGesture ZoomNativeGesture ZoomNativeGesture EndNativeGesture</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QNativeGestureEvent_dQNativeGestureEvent(
            self as *mut crate::QNativeGestureEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPointingDeviceUniqueId {
    /// <p><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">QPointingDeviceUniqueId</a> identifies a unique object, such as a tagged token or stylus, which is used with a pointing device.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPointingDeviceUniqueId::~QPointingDeviceUniqueId()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html">QPointingDeviceUniqueId</a> identifies a unique object, such as a tagged token or stylus, which is used with a pointing device.</p>
    /// <p>QPointingDeviceUniqueIds can be compared for equality, and can be used as keys in a <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a>. You get access to the numerical ID via <a href="http://doc.qt.io/qt-5/qpointingdeviceuniqueid.html#numericId-prop">numericId</a>(), if the device supports such IDs. For future extensions, though, you should not use that function, but compare objects of this type using the equality operator.</p>
    /// <p>This class is a thin wrapper around an integer ID. You pass it into and out of functions by value.</p>
    /// <p>This type actively prevents you from holding it in a <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, because doing so would be very inefficient. Use a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> instead, which has the same API as <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>, but more efficient storage.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPointingDeviceUniqueId_dQPointingDeviceUniqueId(
            self as *mut crate::QPointingDeviceUniqueId,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QApplicationStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QApplicationStateChangeEvent::~QApplicationStateChangeEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QApplicationStateChangeEvent_dQApplicationStateChangeEvent(
            self as *mut crate::QApplicationStateChangeEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QMatrix {
    /// <p>The <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> class specifies 2D transformations of a coordinate system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QMatrix::~QMatrix()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> class specifies 2D transformations of a coordinate system.</p>
    /// <p>A matrix specifies how to translate, scale, shear or rotate the coordinate system, and is typically used when rendering graphics. <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a>, in contrast to <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a>, does not allow perspective transformations. <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> is the recommended transformation class in Qt.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> object can be built using the <a href="http://doc.qt.io/qt-5/qmatrix.html#setMatrix">setMatrix</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qmatrix.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qmatrix.html#shear">shear</a>() functions. Alternatively, it can be built by applying <a href="http://doc.qt.io/qt-5/qmatrix.html#basic-matrix-operations">basic matrix operations</a>. The matrix can also be defined when constructed, and it can be reset to the identity matrix (the default) using the <a href="http://doc.qt.io/qt-5/qmatrix.html#reset">reset</a>() function.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> class supports mapping of graphic primitives: A given point, line, polygon, region, or painter path can be mapped to the coordinate system defined by <i>this</i> matrix using the <a href="http://doc.qt.io/qt-5/qmatrix.html#map">map</a>() function. In case of a rectangle, its coordinates can be transformed using the <a href="http://doc.qt.io/qt-5/qmatrix.html#mapRect">mapRect</a>() function. A rectangle can also be transformed into a <i>polygon</i> (mapped to the coordinate system defined by <i>this</i> matrix), using the <a href="http://doc.qt.io/qt-5/qmatrix.html#mapToPolygon">mapToPolygon</a>() function.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> provides the <a href="http://doc.qt.io/qt-5/qmatrix.html#isIdentity">isIdentity</a>() function which returns <code>true</code> if the matrix is the identity matrix, and the <a href="http://doc.qt.io/qt-5/qmatrix.html#isInvertible">isInvertible</a>() function which returns <code>true</code> if the matrix is non-singular (i.e. AB = BA = I). The <a href="http://doc.qt.io/qt-5/qmatrix.html#inverted">inverted</a>() function returns an inverted copy of <i>this</i> matrix if it is invertible (otherwise it returns the identity matrix). In addition, <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> provides the <a href="http://doc.qt.io/qt-5/qmatrix.html#determinant">determinant</a>() function returning the matrix's determinant.</p>
    /// <p>Finally, the <a href="http://doc.qt.io/qt-5/qmatrix.html">QMatrix</a> class supports matrix multiplication, and objects of the class can be streamed as well as compared.</p>
    /// <a name="rendering-graphics"></a></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix_dQMatrix(self as *mut crate::QMatrix)
    }
}

impl ::cpp_core::CppDeletable for crate::QTransform {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> class specifies 2D transformations of a coordinate system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTransform::~QTransform()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtransform.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> class specifies 2D transformations of a coordinate system.</p>
    /// <p>A transformation specifies how to translate, scale, shear, rotate or project the coordinate system, and is typically used when rendering graphics.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> differs from QMatrix in that it is a true 3x3 matrix, allowing perspective transformations. <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a>'s <a href="http://doc.qt.io/qt-5/qtransform.html#toAffine">toAffine</a>() method allows casting <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> to QMatrix. If a perspective transformation has been specified on the matrix, then the conversion will cause loss of data.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> is the recommended transformation class in Qt.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> object can be built using the <a href="http://doc.qt.io/qt-5/qtransform.html#setMatrix">setMatrix</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#scale">scale</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#rotate">rotate</a>(), <a href="http://doc.qt.io/qt-5/qtransform.html#translate">translate</a>() and <a href="http://doc.qt.io/qt-5/qtransform.html#shear">shear</a>() functions. Alternatively, it can be built by applying <a href="http://doc.qt.io/qt-5/qtransform.html#basic-matrix-operations">basic matrix operations</a>. The matrix can also be defined when constructed, and it can be reset to the identity matrix (the default) using the <a href="http://doc.qt.io/qt-5/qtransform.html#reset">reset</a>() function.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> class supports mapping of graphic primitives: A given point, line, polygon, region, or painter path can be mapped to the coordinate system defined by <i>this</i> matrix using the <a href="http://doc.qt.io/qt-5/qtransform.html#map">map</a>() function. In case of a rectangle, its coordinates can be transformed using the <a href="http://doc.qt.io/qt-5/qtransform.html#mapRect">mapRect</a>() function. A rectangle can also be transformed into a <i>polygon</i> (mapped to the coordinate system defined by <i>this</i> matrix), using the <a href="http://doc.qt.io/qt-5/qtransform.html#mapToPolygon">mapToPolygon</a>() function.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> provides the <a href="http://doc.qt.io/qt-5/qtransform.html#isIdentity">isIdentity</a>() function which returns <code>true</code> if the matrix is the identity matrix, and the <a href="http://doc.qt.io/qt-5/qtransform.html#isInvertible">isInvertible</a>() function which returns <code>true</code> if the matrix is non-singular (i.e. AB = BA = I). The <a href="http://doc.qt.io/qt-5/qtransform.html#inverted">inverted</a>() function returns an inverted copy of <i>this</i> matrix if it is invertible (otherwise it returns the identity matrix), and <a href="http://doc.qt.io/qt-5/qtransform.html#adjoint">adjoint</a>() returns the matrix's classical adjoint. In addition, <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> provides the <a href="http://doc.qt.io/qt-5/qtransform.html#determinant">determinant</a>() function which returns the matrix's determinant.</p>
    /// <p>Finally, the <a href="http://doc.qt.io/qt-5/qtransform.html">QTransform</a> class supports matrix multiplication, addition and subtraction, and objects of the class can be streamed as well as compared.</p>
    /// <a name="rendering-graphics"></a></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTransform_dQTransform(self as *mut crate::QTransform)
    }
}

impl ::cpp_core::CppDeletable for crate::QPixelFormat {
    /// <p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is a class for describing different pixel layouts in graphics buffers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPixelFormat::~QPixelFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixelformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is a class for describing different pixel layouts in graphics buffers</p>
    /// <p>In Qt there is a often a need to represent the layout of the pixels in a graphics buffer. Internally <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> stores everything in a 64 bit datastructure. This gives performance but also some limitations.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> can describe 5 color channels and 1 alpha channel, each can use 6 bits to describe the size of the color channel.</p>
    /// <p>The position of the alpha channel is described with a separate enum. This is to make it possible to describe <a href="http://doc.qt.io/qt-5/qimage.html">QImage</a> formats like ARGB32, and also describe typical OpenGL formats like RBGA8888.</p>
    /// <p>How pixels are suppose to be read is determined by the <a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">TypeInterpretation</a> enum. It describes if color values are suppose to be read byte per byte, or if a pixel is suppose to be read as a complete int and then masked.</p>
    /// <p>There is no support for describing YUV's macro pixels. Instead a list of YUV formats has been made. When a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> is describing a YUV format, the <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">bitsPerPixel</a> value has been deduced by the YUV Layout enum. Also, the color channels should all be set to zero except the fifth color channel that should store the <a href="http://doc.qt.io/qt-5/qpixelformat.html#bitsPerPixel">bitsPerPixel</a> value.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPixelFormat_dQPixelFormat(self as *mut crate::QPixelFormat)
    }
}

impl ::cpp_core::CppDeletable for crate::QGradient {
    /// <p>The <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify gradient fills.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QGradient::~QGradient()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify gradient fills.</p>
    /// <p>Qt currently supports three types of gradient fills:</p>
    /// <ul>
    /// <li><i>Linear</i> gradients interpolate colors between start and end points.</li>
    /// <li><i>Simple</i> radial gradients interpolate colors between a focal point and end points on a circle surrounding it.</li>
    /// <li><i>Extended</i> radial gradients interpolate colors between a center and a focal circle.</li>
    /// <li><i>Conical</i> gradients interpolate colors around a center point.</li>
    /// </ul>
    /// <p>A gradient's type can be retrieved using the <a href="http://doc.qt.io/qt-5/qgradient.html#type">type</a>() function. Each of the types is represented by a subclass of <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></th><th><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></th><th><a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a></th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qgradient-linear.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qgradient-radial.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qgradient-conical.png" alt=""></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient are defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type; i.e., a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">setColorAt</a>() function to define a single stop point. Alternatively, use the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">setStops</a>() function to define several stop points in one go. Note that the latter function <i>replaces</i> the current set of stop points.</p>
    /// <p>It is the gradient's complete set of stop points (accessible through the <a href="http://doc.qt.io/qt-5/qgradient.html#stops">stops</a>() function) that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>A diagonal linear gradient from black at (100, 100) to white at (200, 200) could be specified like this:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a></span> linearGrad(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">100</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">200</span><span class="operator">,</span> <span class="number">200</span>));
    /// &#32;     linearGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>black);
    /// &#32;     linearGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>white);
    ///
    /// </pre>
    /// <p>A gradient can have an arbitrary number of stop points. The following would create a radial gradient starting with red in the center, blue and then green on the edges:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a></span> radialGrad(<span class="type"><a href="http://doc.qt.io/qt-5/qpointf.html">QPointF</a></span>(<span class="number">100</span><span class="operator">,</span> <span class="number">100</span>)<span class="operator">,</span> <span class="number">100</span>);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">0</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>red);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">0.5</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>blue);
    /// &#32;     radialGrad<span class="operator">.</span>setColorAt(<span class="number">1</span><span class="operator">,</span> <span class="type">Qt</span><span class="operator">::</span>green);
    ///
    /// </pre>
    /// <p>It is possible to repeat or reflect the gradient outside its area by specifiying the <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread method</a> using the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function. The default is to pad the outside area with the color at the closest stop point. The currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread method</a> can be retrieved using the <a href="http://doc.qt.io/qt-5/qgradient.html#spread">spread</a>() function. The <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">QGradient::Spread</a> enum defines three different methods:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-repeat.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-reflect.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function only has effect for linear and radial gradients. The reason is that the conical gradient is closed by definition, i.e. the <i>conical</i> gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.</p>
    /// <p>The gradient coordinates can be specified in logical coordinates, relative to device coordinates, or relative to object bounding box coordinates. The <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">coordinate mode</a> can be set using the <a href="http://doc.qt.io/qt-5/qgradient.html#setCoordinateMode">setCoordinateMode</a>() function. The default is <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">LogicalMode</a>, where the gradient coordinates are specified in the same way as the object coordinates. To retrieve the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#CoordinateMode-enum">coordinate mode</a> use <a href="http://doc.qt.io/qt-5/qgradient.html#coordinateMode">coordinateMode</a>().</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QGradient_dQGradient(self as *mut crate::QGradient)
    }
}

impl ::cpp_core::CppDeletable for crate::QLinearGradient {
    /// <p>The <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a linear gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QLinearGradient::~QLinearGradient()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlineargradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a linear gradient brush.</p>
    /// <p>Linear gradients interpolate colors between start and end points. Outside these points the gradient is either padded, reflected or repeated depending on the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread</a> method:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-reflect.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qlineargradient-repeat.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a> (default)</td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qlineargradient.html">QLinearGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qlineargradient.html#finalStop">finalStop</a>() function which returns the final stop point of the gradient, and the <a href="http://doc.qt.io/qt-5/qlineargradient.html#start">start</a>() function returning the start point of the gradient.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QLinearGradient_dQLinearGradient(
            self as *mut crate::QLinearGradient,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRadialGradient {
    /// <p>The <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a radial gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QRadialGradient::~QRadialGradient()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qradialgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a radial gradient brush.</p>
    /// <p>Qt supports both simple and extended radial gradients.</p>
    /// <p>Simple radial gradients interpolate colors between a focal point and end points on a circle surrounding it. Extended radial gradients interpolate colors between a focal circle and a center circle. Points outside the cone defined by the two circles will be transparent. For simple radial gradients the focal point is adjusted to lie inside the center circle, whereas the focal point can have any position in an extended radial gradient.</p>
    /// <p>Outside the end points the gradient is either padded, reflected or repeated depending on the currently set <a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">spread</a> method:</p>
    /// <div class="table"><table class="generic">
    ///  <tbody><tr valign="top" class="odd"><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-pad.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-reflect.png" alt=""></td><td><img src="http://doc.qt.io/qt-5/images/qradialgradient-repeat.png" alt=""></td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">PadSpread</a> (default)</td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">ReflectSpread</a></td><td><a href="http://doc.qt.io/qt-5/qgradient.html#Spread-enum">RepeatSpread</a></td></tr>
    /// </tbody></table></div>
    /// <p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qradialgradient.html">QRadialGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qradialgradient.html#center">center</a>(), <a href="http://doc.qt.io/qt-5/qradialgradient.html#focalPoint">focalPoint</a>() and <a href="http://doc.qt.io/qt-5/qradialgradient.html#radius">radius</a>() functions returning the gradient's center, focal point and radius respectively.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QRadialGradient_dQRadialGradient(
            self as *mut crate::QRadialGradient,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QConicalGradient {
    /// <p>The <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a conical gradient brush.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QConicalGradient::~QConicalGradient()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qconicalgradient.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class is used in combination with <a href="http://doc.qt.io/qt-5/qbrush.html">QBrush</a> to specify a conical gradient brush.</p>
    /// <p>Conical gradients interpolate interpolate colors counter-clockwise around a center point.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qconicalgradient.png" alt=""></p><p>The colors in a gradient is defined using stop points of the <a href="http://doc.qt.io/qt-5/qgradient.html#QGradientStop-typedef">QGradientStop</a> type, i.e. a position and a color. Use the <a href="http://doc.qt.io/qt-5/qgradient.html#setColorAt">QGradient::setColorAt</a>() or the <a href="http://doc.qt.io/qt-5/qgradient.html#setStops">QGradient::setStops</a>() function to define the stop points. It is the gradient's complete set of stop points that describes how the gradient area should be filled. If no stop points have been specified, a gradient of black at 0 to white at 1 is used.</p>
    /// <p>In addition to the functions inherited from <a href="http://doc.qt.io/qt-5/qgradient.html">QGradient</a>, the <a href="http://doc.qt.io/qt-5/qconicalgradient.html">QConicalGradient</a> class provides the <a href="http://doc.qt.io/qt-5/qconicalgradient.html#angle">angle</a>() and <a href="http://doc.qt.io/qt-5/qconicalgradient.html#center">center</a>() functions returning the start angle and center of the gradient.</p>
    /// <p>Note that the <a href="http://doc.qt.io/qt-5/qgradient.html#setSpread">setSpread</a>() function has no effect for conical gradients. The reason is that the conical gradient is closed by definition, i.e. the conical gradient fills the entire circle from 0 - 360 degrees, while the boundary of a radial or a linear gradient can be specified through its radius or final stop points, respectively.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QConicalGradient_dQConicalGradient(
            self as *mut crate::QConicalGradient,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextLength {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a> class encapsulates the different types of length used in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextLength::~QTextLength()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlength.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a> class encapsulates the different types of length used in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>When we specify a value for the length of an element in a text document, we often need to provide some other information so that the length is used in the way we expect. For example, when we specify a table width, the value can represent a fixed number of pixels, or it can be a percentage value. This information changes both the meaning of the value and the way it is used.</p>
    /// <p>Generally, this class is used to specify table widths. These can be specified either as a fixed amount of pixels, as a percentage of the containing frame's width, or by a variable width that allows it to take up just the space it requires.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLength_dQTextLength(self as *mut crate::QTextLength)
    }
}

impl ::cpp_core::CppDeletable for crate::QTextCharFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> class provides formatting information for characters in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextCharFormat::~QTextCharFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextcharformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a> class provides formatting information for characters in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>The character format of text in a document specifies the visual properties of the text, as well as information about its role in a hypertext document.</p>
    /// <p>The font used can be set by supplying a font to the <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFont">setFont</a>() function, and each aspect of its appearance can be adjusted to give the desired effect. <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFamily">setFontFamily</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontPointSize">setFontPointSize</a>() define the font's family (e.g. Times) and printed size; <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontWeight">setFontWeight</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontItalic">setFontItalic</a>() provide control over the style of the font. <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontUnderline">setFontUnderline</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontOverline">setFontOverline</a>(), <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontStrikeOut">setFontStrikeOut</a>(), and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setFontFixedPitch">setFontFixedPitch</a>() provide additional effects for text.</p>
    /// <p>The color is set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setForeground">setForeground</a>(). If the text is intended to be used as an anchor (for hyperlinks), this can be enabled with <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchor">setAnchor</a>(). The <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorHref">setAnchorHref</a>() and <a href="http://doc.qt.io/qt-5/qtextcharformat.html#setAnchorNames">setAnchorNames</a>() functions are used to specify the information about the hyperlink's destination and the anchor's name.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextCharFormat_dQTextCharFormat(
            self as *mut crate::QTextCharFormat,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextBlockFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> class provides formatting information for blocks of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextBlockFormat::~QTextBlockFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblockformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> class provides formatting information for blocks of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A document is composed of a list of blocks, represented by <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> objects. Each block can contain an item of some kind, such as a paragraph of text, a table, a list, or an image. Every block has an associated <a href="http://doc.qt.io/qt-5/qtextblockformat.html">QTextBlockFormat</a> that specifies its characteristics.</p>
    /// <p>To cater for left-to-right and right-to-left languages you can set a block's direction with setDirection(). Paragraph alignment is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setAlignment">setAlignment</a>(). Margins are controlled by <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTopMargin">setTopMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setBottomMargin">setBottomMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLeftMargin">setLeftMargin</a>(), <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setRightMargin">setRightMargin</a>(). Overall indentation is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setIndent">setIndent</a>(), the indentation of the first line with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setTextIndent">setTextIndent</a>().</p>
    /// <p>Line spacing is set with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setLineHeight">setLineHeight</a>() and retrieved via <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeight-1">lineHeight</a>() and <a href="http://doc.qt.io/qt-5/qtextblockformat.html#lineHeightType">lineHeightType</a>(). The types of line spacing available are in the <a href="http://doc.qt.io/qt-5/qtextblockformat.html#LineHeightTypes-enum">LineHeightTypes</a> enum.</p>
    /// <p>Line breaking can be enabled and disabled with <a href="http://doc.qt.io/qt-5/qtextblockformat.html#setNonBreakableLines">setNonBreakableLines</a>().</p>
    /// <p>The brush used to paint the paragraph's background is set with <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground()</a>, and other aspects of the text's appearance can be customized by using the <a href="http://doc.qt.io/qt-5/qtextformat.html#setProperty">setProperty()</a> function with the <code>OutlinePen</code>, <code>ForegroundBrush</code>, and <code>BackgroundBrush</code> <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">QTextFormat::Property</a> values.</p>
    /// <p>If a text block is part of a list, it can also have a list format that is accessible with the listFormat() function.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlockFormat_dQTextBlockFormat(
            self as *mut crate::QTextBlockFormat,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextListFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> class provides formatting information for lists in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextListFormat::~QTextListFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextlistformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextlistformat.html">QTextListFormat</a> class provides formatting information for lists in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A list is composed of one or more items, represented as text blocks. The list's format specifies the appearance of items in the list. In particular, it determines the indentation and the style of each item.</p>
    /// <p>The indentation of the items is an integer value that causes each item to be offset from the left margin by a certain amount. This value is read with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#indent">indent</a>() and set with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setIndent">setIndent</a>().</p>
    /// <p>The style used to decorate each item is set with <a href="http://doc.qt.io/qt-5/qtextlistformat.html#setStyle">setStyle</a>() and can be read with the <a href="http://doc.qt.io/qt-5/qtextlistformat.html#style">style</a>() function. The style controls the type of bullet points and numbering scheme used for items in the list. Note that lists that use the decimal numbering scheme begin counting at 1 rather than 0.</p>
    /// <p>Style properties can be set to further configure the appearance of list items; for example, the <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">ListNumberPrefix</a> and <a href="http://doc.qt.io/qt-5/qtextformat.html#Property-enum">ListNumberSuffix</a> properties can be used to customize the numbers used in an ordered list so that they appear as (1), (2), (3), etc.:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">QTextListFormat</a></span> listFormat;
    ///
    ///   listFormat<span class="operator">.</span>setStyle(<span class="type"><a href="http://doc.qt.io/qt-5/qtextlistformat.html#QTextListFormat">QTextListFormat</a></span><span class="operator">::</span>ListDecimal);
    ///   listFormat<span class="operator">.</span>setNumberPrefix(<span class="string">"("</span>);
    ///   listFormat<span class="operator">.</span>setNumberSuffix(<span class="string">")"</span>);
    ///
    ///   cursor<span class="operator">.</span>insertList(listFormat);
    ///
    /// </pre></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextListFormat_dQTextListFormat(
            self as *mut crate::QTextListFormat,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextImageFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> class provides formatting information for images in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextImageFormat::~QTextImageFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextimageformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a> class provides formatting information for images in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>Inline images are represented by a Unicode value U+FFFC (OBJECT REPLACEMENT CHARACTER) which has an associated <a href="http://doc.qt.io/qt-5/qtextimageformat.html">QTextImageFormat</a>. The image format specifies a name with <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setName">setName</a>() that is used to locate the image. The size of the rectangle that the image will occupy is specified using <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setWidth">setWidth</a>() and <a href="http://doc.qt.io/qt-5/qtextimageformat.html#setHeight">setHeight</a>().</p>
    /// <p>Images can be supplied in any format for which Qt has an image reader, so SVG drawings can be included alongside PNG, TIFF and other bitmap formats.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextImageFormat_dQTextImageFormat(
            self as *mut crate::QTextImageFormat,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextFrameFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> class provides formatting information for frames in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextFrameFormat::~QTextFrameFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextframeformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> class provides formatting information for frames in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A text frame groups together one or more blocks of text, providing a layer of structure larger than the paragraph. The format of a frame specifies how it is rendered and positioned on the screen. It does not directly specify the behavior of the text formatting within, but provides constraints on the layout of its children.</p>
    /// <p>The frame format defines the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextframeformat.html#height">height</a>() of the frame on the screen. Each frame can have a <a href="http://doc.qt.io/qt-5/qtextframeformat.html#border">border</a>() that surrounds its contents with a rectangular box. The border is surrounded by a <a href="http://doc.qt.io/qt-5/qtextframeformat.html#margin">margin</a>() around the frame, and the contents of the frame are kept separate from the border by the frame's <a href="http://doc.qt.io/qt-5/qtextframeformat.html#padding">padding</a>(). This scheme is similar to the box model used by Cascading Style Sheets for HTML pages.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtextframe-style.png" alt=""></p><p>The <a href="http://doc.qt.io/qt-5/qtextframeformat.html#position">position</a>() of a frame is set using <a href="http://doc.qt.io/qt-5/qtextframeformat.html#setPosition">setPosition</a>() and determines how it is located relative to the surrounding text.</p>
    /// <p>The validity of a <a href="http://doc.qt.io/qt-5/qtextframeformat.html">QTextFrameFormat</a> object can be determined with the <a href="http://doc.qt.io/qt-5/qtextframeformat.html#isValid">isValid</a>() function.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFrameFormat_dQTextFrameFormat(
            self as *mut crate::QTextFrameFormat,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextTableFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> class provides formatting information for tables in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextTableFormat::~QTextTableFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttableformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttableformat.html">QTextTableFormat</a> class provides formatting information for tables in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A table is a group of cells ordered into rows and columns. Each table contains at least one row and one column. Each cell contains a block. Tables in rich text documents are formatted using the properties defined in this class.</p>
    /// <p>Tables are horizontally justified within their parent frame according to the table's alignment. This can be read with the <a href="http://doc.qt.io/qt-5/qtexttableformat.html#alignment">alignment</a>() function and set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setAlignment">setAlignment</a>().</p>
    /// <p>Cells within the table are separated by cell spacing. The number of pixels between cells is set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellSpacing">setCellSpacing</a>() and read with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellSpacing">cellSpacing</a>(). The contents of each cell is surrounded by cell padding. The number of pixels between each cell edge and its contents is set with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setCellPadding">setCellPadding</a>() and read with <a href="http://doc.qt.io/qt-5/qtexttableformat.html#cellPadding">cellPadding</a>().</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtexttableformat-cell.png" alt=""></p><p>The table's background color can be read with the <a href="http://doc.qt.io/qt-5/qtextformat.html#background">background</a>() function, and can be specified with <a href="http://doc.qt.io/qt-5/qtextformat.html#setBackground">setBackground</a>(). The background color of each cell can be set independently, and will control the color of the cell within the padded area.</p>
    /// <p>The table format also provides a way to constrain the widths of the columns in the table. Columns can be assigned a fixed width, a variable width, or a percentage of the available width (see <a href="http://doc.qt.io/qt-5/qtextlength.html">QTextLength</a>). The <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columns">columns</a>() function returns the number of columns with constraints, and the <a href="http://doc.qt.io/qt-5/qtexttableformat.html#columnWidthConstraints">columnWidthConstraints</a>() function returns the constraints defined for the table. These quantities can also be set by calling <a href="http://doc.qt.io/qt-5/qtexttableformat.html#setColumnWidthConstraints">setColumnWidthConstraints</a>() with a vector containing new constraints. If no constraints are required, <a href="http://doc.qt.io/qt-5/qtexttableformat.html#clearColumnWidthConstraints">clearColumnWidthConstraints</a>() can be used to remove them.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableFormat_dQTextTableFormat(
            self as *mut crate::QTextTableFormat,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextTableCellFormat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">QTextTableCellFormat</a> class provides formatting information for table cells in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextTableCellFormat::~QTextTableCellFormat()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html">QTextTableCellFormat</a> class provides formatting information for table cells in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>The table cell format of a table cell in a document specifies the visual properties of the table cell.</p>
    /// <p>The padding properties of a table cell are controlled by <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setLeftPadding">setLeftPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setRightPadding">setRightPadding</a>(), <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setTopPadding">setTopPadding</a>(), and <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setBottomPadding">setBottomPadding</a>(). All the paddings can be set at once using <a href="http://doc.qt.io/qt-5/qtexttablecellformat.html#setPadding">setPadding</a>().</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextTableCellFormat_dQTextTableCellFormat(
            self as *mut crate::QTextTableCellFormat,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QFontDatabase {
    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class provides information about the fonts available in the underlying window system.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QFontDatabase::~QFontDatabase()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qfontdatabase.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class provides information about the fonts available in the underlying window system.</p>
    /// <p>The most common uses of this class are to query the database for the list of font <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>() and for the <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styles">styles</a>() that are available for each family. An alternative to <a href="http://doc.qt.io/qt-5/qfontdatabase.html#pointSizes">pointSizes</a>() is <a href="http://doc.qt.io/qt-5/qfontdatabase.html#smoothSizes">smoothSizes</a>() which returns the sizes at which a given family and style will look attractive.</p>
    /// <p>If the font family is available from two or more foundries the foundry name is included in the family name; for example: "Helvetica [Adobe]" and "Helvetica [Cronyx]". When you specify a family, you can either use the old hyphenated "foundry-family" format or the bracketed "family [foundry]" format; for example: "Cronyx-Helvetica" or "Helvetica [Cronyx]". If the family has a foundry it is always returned using the bracketed format, as is the case with the value returned by <a href="http://doc.qt.io/qt-5/qfontdatabase.html#families">families</a>().</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html#font">font</a>() function returns a <a href="http://doc.qt.io/qt-5/qfont.html">QFont</a> given a family, style and point size.</p>
    /// <p>A family and style combination can be checked to see if it is <a href="http://doc.qt.io/qt-5/qfontdatabase.html#italic">italic</a>() or <a href="http://doc.qt.io/qt-5/qfontdatabase.html#bold">bold</a>(), and to retrieve its <a href="http://doc.qt.io/qt-5/qfontdatabase.html#weight">weight</a>(). Similarly we can call <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isBitmapScalable">isBitmapScalable</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isSmoothlyScalable">isSmoothlyScalable</a>(), <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isScalable">isScalable</a>() and <a href="http://doc.qt.io/qt-5/qfontdatabase.html#isFixedPitch">isFixedPitch</a>().</p>
    /// <p>Use the <a href="http://doc.qt.io/qt-5/qfontdatabase.html#styleString">styleString</a>() to obtain a text version of a style.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qfontdatabase.html">QFontDatabase</a> class also supports some static functions, for example, <a href="http://doc.qt.io/qt-5/qfontdatabase.html#standardSizes">standardSizes</a>(). You can retrieve the description of a writing system using <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemName">writingSystemName</a>(), and a sample of characters in a writing system with <a href="http://doc.qt.io/qt-5/qfontdatabase.html#writingSystemSample">writingSystemSample</a>().</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qfontdatabase.html#QFontDatabase">QFontDatabase</a></span> database;
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidget.html">QTreeWidget</a></span> fontTree;
    /// &#32;     fontTree<span class="operator">.</span>setColumnCount(<span class="number">2</span>);
    /// &#32;     fontTree<span class="operator">.</span>setHeaderLabels(<span class="type"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></span>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Font"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Smooth Sizes"</span>);
    ///
    /// &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>family<span class="operator">,</span> database<span class="operator">.</span>families()) {
    /// &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span> <span class="operator">*</span>familyItem <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span>(<span class="operator">&amp;</span>fontTree);
    /// &#32;   &#32;     familyItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">0</span><span class="operator">,</span> family);
    ///
    /// &#32;   &#32;     foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>style<span class="operator">,</span> database<span class="operator">.</span>styles(family)) {
    /// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span> <span class="operator">*</span>styleItem <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qtreewidgetitem.html">QTreeWidgetItem</a></span>(familyItem);
    /// &#32;   &#32;   &#32;     styleItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">0</span><span class="operator">,</span> style);
    ///
    /// &#32;   &#32;   &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> sizes;
    /// &#32;   &#32;   &#32;     foreach (<span class="type">int</span> points<span class="operator">,</span> database<span class="operator">.</span>smoothSizes(family<span class="operator">,</span> style))
    /// &#32;   &#32;   &#32;   &#32;     sizes <span class="operator">+</span><span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">::</span>number(points) <span class="operator">+</span> <span class="char">' '</span>;
    ///
    /// &#32;   &#32;   &#32;     styleItem<span class="operator">-</span><span class="operator">&gt;</span>setText(<span class="number">1</span><span class="operator">,</span> sizes<span class="operator">.</span>trimmed());
    /// &#32;   &#32;     }
    /// &#32;     }
    ///
    /// </pre>
    /// <p>This example gets the list of font families, the list of styles for each family, and the point sizes that are available for each combination of family and style, displaying this information in a tree view.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QFontDatabase_dQFontDatabase(self as *mut crate::QFontDatabase)
    }
}

impl ::cpp_core::CppDeletable for crate::QTextInlineObject {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a> class represents an inline object in a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> and its implementations.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextInlineObject::~QTextInlineObject()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a> class represents an inline object in a <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> and its implementations.</p>
    /// <p>Normally, you do not need to create a <a href="http://doc.qt.io/qt-5/qtextinlineobject.html">QTextInlineObject</a>. It is used by <a href="http://doc.qt.io/qt-5/qabstracttextdocumentlayout.html">QAbstractTextDocumentLayout</a> to handle inline objects when implementing a custom layout.</p>
    /// <p>The inline object has various attributes that can be set, for example using, <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setWidth">setWidth</a>(), <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setAscent">setAscent</a>(), and <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#setDescent">setDescent</a>(). The rectangle it occupies is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#rect">rect</a>(), and its direction by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textDirection">textDirection</a>(). Its position in the text layout is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#textPosition">textPosition</a>(), and its format is given by <a href="http://doc.qt.io/qt-5/qtextinlineobject.html#format">format</a>().</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextInlineObject_dQTextInlineObject(
            self as *mut crate::QTextInlineObject,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextLine {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> class represents a line of text inside a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextLine::~QTextLine()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextline.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextline.html">QTextLine</a> class represents a line of text inside a <a href="http://doc.qt.io/qt-5/qtextlayout.html">QTextLayout</a>.</p>
    /// <p>A text line is usually created by <a href="http://doc.qt.io/qt-5/qtextlayout.html#createLine">QTextLayout::createLine</a>().</p>
    /// <p>After being created, the line can be filled using the <a href="http://doc.qt.io/qt-5/qtextline.html#setLineWidth">setLineWidth</a>() or <a href="http://doc.qt.io/qt-5/qtextline.html#setNumColumns">setNumColumns</a>() functions. A line has a number of attributes including the rectangle it occupies, <a href="http://doc.qt.io/qt-5/qtextline.html#rect">rect</a>(), its coordinates, <a href="http://doc.qt.io/qt-5/qtextline.html#x">x</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#y">y</a>(), its <a href="http://doc.qt.io/qt-5/qtextline.html#textLength">textLength</a>(), <a href="http://doc.qt.io/qt-5/qtextline.html#width">width</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#naturalTextWidth">naturalTextWidth</a>(), and its <a href="http://doc.qt.io/qt-5/qtextline.html#ascent">ascent</a>() and <a href="http://doc.qt.io/qt-5/qtextline.html#descent">descent</a>() relative to the text. The position of the cursor in terms of the line is available from <a href="http://doc.qt.io/qt-5/qtextline.html#cursorToX">cursorToX</a>() and its inverse from <a href="http://doc.qt.io/qt-5/qtextline.html#xToCursor">xToCursor</a>(). A line can be moved with <a href="http://doc.qt.io/qt-5/qtextline.html#setPosition">setPosition</a>().</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextLine_dQTextLine(self as *mut crate::QTextLine)
    }
}

impl ::cpp_core::CppDeletable for crate::QAccessible {
    /// <p>The <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a> class provides enums and static functions related to accessibility.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QAccessible::~QAccessible()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qaccessible.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a> class provides enums and static functions related to accessibility.</p>
    /// <p>This class is part of <a href="http://doc.qt.io/qt-5/accessible-qwidget.html">Accessibility for QWidget Applications</a>.</p>
    /// <p>Accessible applications can be used by people who are not able to use applications by conventional means.</p>
    /// <p>The functions in this class are used for communication between accessible applications (also called AT Servers) and accessibility tools (AT Clients), such as screen readers and braille displays. Clients and servers communicate in the following way:</p>
    /// <ul>
    /// <li><i>AT Servers</i> notify the clients about events through calls to the <a href="http://doc.qt.io/qt-5/qaccessible.html#updateAccessibility">updateAccessibility</a>() function.</li>
    /// <li><i>AT Clients</i> request information about the objects in the server. The <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> class is the core interface, and encapsulates this information in a pure virtual API. Implementations of the interface are provided by Qt through the <a href="http://doc.qt.io/qt-5/qaccessible.html#queryAccessibleInterface">queryAccessibleInterface</a>() API.</li>
    /// </ul>
    /// <p>The communication between servers and clients is initialized by the <a href="http://doc.qt.io/qt-5/qaccessible.html#setRootObject">setRootObject</a>() function. Function pointers can be installed to replace or extend the default behavior of the static functions in <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a>.</p>
    /// <p>Qt supports Microsoft Active Accessibility (MSAA), <a href="http://doc.qt.io/qt-5/internationalization.html#macos">macOS</a> Accessibility, and the Unix/X11 AT-SPI standard. Other backends can be supported using QAccessibleBridge.</p>
    /// <p>In the Unix/X11 AT-SPI implementation, applications become accessible when two conditions are met:</p>
    /// <ul>
    /// <li>org.a11y.Status.IsEnabled DBus property is true</li>
    /// <li>org.a11y.Status.ScreenReaderEnabled DBus property is true</li>
    /// </ul>
    /// <p>An alternative to setting the DBus AT-SPI properties is to set the QT_LINUX_ACCESSIBILITY_ALWAYS_ON environment variable.</p>
    /// <p>In addition to <a href="http://doc.qt.io/qt-5/qaccessible.html">QAccessible</a>'s static functions, Qt offers one generic interface, <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a>, that can be used to wrap all widgets and objects (e.g., <a href="http://doc.qt.io/qt-5/qpushbutton.html">QPushButton</a>). This single interface provides all the metadata necessary for the assistive technologies. Qt provides implementations of this interface for its built-in widgets as plugins.</p>
    /// <p>When you develop custom widgets, you can create custom subclasses of <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and distribute them as plugins (using <a href="http://doc.qt.io/qt-5/qaccessibleplugin.html">QAccessiblePlugin</a>) or compile them into the application. Likewise, Qt's predefined accessibility support can be built as plugin (the default) or directly into the Qt library. The main advantage of using plugins is that the accessibility classes are only loaded into memory if they are actually used; they don't slow down the common case where no assistive technology is being used.</p>
    /// <p>Qt also includes two convenience classes, <a href="http://doc.qt.io/qt-5/qaccessibleobject.html">QAccessibleObject</a> and <a href="http://doc.qt.io/qt-5/qaccessiblewidget.html">QAccessibleWidget</a>, that inherit from <a href="http://doc.qt.io/qt-5/qaccessibleinterface.html">QAccessibleInterface</a> and provide the lowest common denominator of metadata (e.g., widget geometry, window title, basic help text). You can use them as base classes when wrapping your custom <a href="http://doc.qt.io/qt-5/qobject.html">QObject</a> or <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> subclasses.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QAccessible_dQAccessible(self as *mut crate::QAccessible)
    }
}

impl ::cpp_core::CppDeletable for crate::QDesktopServices {
    /// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QDesktopServices::~QDesktopServices()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qdesktopservices.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html">QDesktopServices</a> class provides methods for accessing common desktop services.</p>
    /// <p>Many desktop environments provide services that can be used by applications to perform common tasks, such as opening a web page, in a way that is both consistent and takes into account the user's application preferences.</p>
    /// <p>This class contains functions that provide simple interfaces to these services that indicate whether they succeeded or failed.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qdesktopservices.html#openUrl">openUrl</a>() function is used to open files located at arbitrary URLs in external applications. For URLs that correspond to resources on the local filing system (where the URL scheme is "file"), a suitable application will be used to open the file; otherwise, a web browser will be used to fetch and display the file.</p>
    /// <p>The user's desktop settings control whether certain executable file types are opened for browsing, or if they are executed instead. Some desktop environments are configured to prevent users from executing files obtained from non-local URLs, or to ask the user's permission before doing so.</p>
    /// <a name="url-handlers"></a></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QDesktopServices_dQDesktopServices(
            self as *mut crate::QDesktopServices,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QGenericPluginFactory {
    /// <p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QGenericPluginFactory::~QGenericPluginFactory()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qgenericpluginfactory.html">QGenericPluginFactory</a> class creates plugin drivers.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QGenericPluginFactory_dQGenericPluginFactory(
            self as *mut crate::QGenericPluginFactory,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVector3D {
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class represents a vector or vertex in 3D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector3D::~QVector3D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector3d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class represents a vector or vertex in 3D space.</p>
    /// <p>Vectors are one of the main building blocks of 3D representation and drawing. They consist of three coordinates, traditionally called x, y, and z.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector3d.html">QVector3D</a> class can also be used to represent vertices in 3D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector3D_dQVector3D(self as *mut crate::QVector3D)
    }
}

impl ::cpp_core::CppDeletable for crate::QVector4D {
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class represents a vector or vertex in 4D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector4D::~QVector4D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector4d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class represents a vector or vertex in 4D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qvector4d.html">QVector4D</a> class can also be used to represent vertices in 4D space. We therefore do not need to provide a separate vertex class.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector4D_dQVector4D(self as *mut crate::QVector4D)
    }
}

impl ::cpp_core::CppDeletable for crate::QQuaternion {
    /// <p>The <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a> class represents a quaternion consisting of a vector and scalar.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QQuaternion::~QQuaternion()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qquaternion.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qquaternion.html">QQuaternion</a> class represents a quaternion consisting of a vector and scalar.</p>
    /// <p>Quaternions are used to represent rotations in 3D space, and consist of a 3D rotation axis specified by the x, y, and z coordinates, and a scalar representing the rotation angle.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QQuaternion_dQQuaternion(self as *mut crate::QQuaternion)
    }
}

impl ::cpp_core::CppDeletable for crate::QMatrix4X4 {
    /// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class represents a 4x4 transformation matrix in 3D space.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QMatrix4x4::~QMatrix4x4()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class represents a 4x4 transformation matrix in 3D space.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html">QMatrix4x4</a> class in general is treated as a row-major matrix, in that the constructors and <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#operator-28-29">operator</a>() functions take data in row-major format, as is familiar in C-style usage.</p>
    /// <p>Internally the data is stored as column-major format, so as to be optimal for passing to OpenGL functions, which expect column-major data.</p>
    /// <p>When using these functions be aware that they return data in <b>column-major</b> format:</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#data">data</a>()</li>
    /// <li><a href="http://doc.qt.io/qt-5/qmatrix4x4.html#constData">constData</a>()</li>
    /// </ul></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QMatrix4x4_dQMatrix4x4(self as *mut crate::QMatrix4X4)
    }
}

impl ::cpp_core::CppDeletable for crate::QPaintDeviceWindow {
    /// <p>Convenience subclass of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> that is also a <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPaintDeviceWindow::~QPaintDeviceWindow()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience subclass of <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> that is also a <a href="http://doc.qt.io/qt-5/qpaintdevice.html">QPaintDevice</a>.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html">QPaintDeviceWindow</a> is like a regular <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a>, with the added functionality of being a paint device too. Whenever the content needs to be updated, the virtual <a href="http://doc.qt.io/qt-5/qpaintdevicewindow.html#paintEvent">paintEvent</a>() function is called. Subclasses, that reimplement this function, can then simply open a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a> on the window.</p>
    /// <p><b>Note: </b>This class cannot directly be used in applications. It rather serves as a base for subclasses like <a href="http://doc.qt.io/qt-5/qopenglwindow.html">QOpenGLWindow</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintDeviceWindow_dQPaintDeviceWindow(
            self as *mut crate::QPaintDeviceWindow,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextItem {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextItem::~QTextItem()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextitem.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> class provides all the information required to draw text in a custom paint engine.</p>
    /// <p>When you reimplement your own paint engine, you must reimplement <a href="http://doc.qt.io/qt-5/qpaintengine.html#drawTextItem">QPaintEngine::drawTextItem</a>(), a function that takes a <a href="http://doc.qt.io/qt-5/qtextitem.html">QTextItem</a> as one of its arguments.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextItem_dQTextItem(self as *mut crate::QTextItem)
    }
}

impl ::cpp_core::CppDeletable for crate::QPaintEngineState {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPaintEngineState::~QPaintEngineState()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class provides information about the active paint engine's current state.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> records which properties that have changed since the last time the paint engine was updated, as well as their current value.</p>
    /// <p>Which properties that have changed can at any time be retrieved using the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#state">state</a>() function. This function returns an instance of the <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlags</a> type which stores an OR combination of <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> values. The <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFlag</a> enum defines whether a property has changed since the last update or not.</p>
    /// <p>If a property is marked with a dirty flag, its current value can be retrieved using the corresponding get function:</p>
    /// <a name="getfunction"></a><div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>Property Flag</th><th>Current Property Value</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackground</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundBrush">backgroundBrush</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBackgroundMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#backgroundMode">backgroundMode</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrush</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brush">brush</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyBrushOrigin</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#brushOrigin">brushOrigin</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a> <i>or</i> <a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipOperation">clipOperation</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipPath</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipPath">clipPath</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipRegion</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#clipRegion">clipRegion</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyCompositionMode</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#compositionMode">compositionMode</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyFont</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#font">font</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyTransform</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#transform">transform</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyClipEnabled</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#isClipEnabled">isClipEnabled</a>()</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyPen</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#pen">pen</a>()</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qpaintengine.html#DirtyFlag-enum">QPaintEngine::DirtyHints</a></td><td><a href="http://doc.qt.io/qt-5/qpaintenginestate.html#renderHints">renderHints</a>()</td></tr>
    /// </tbody></table></div>
    /// <p>The <a href="http://doc.qt.io/qt-5/qpaintenginestate.html">QPaintEngineState</a> class also provide the <a href="http://doc.qt.io/qt-5/qpaintenginestate.html#painter">painter</a>() function which returns a pointer to the painter that is currently updating the paint engine.</p>
    /// <p>An instance of this class, representing the current state of the active paint engine, is passed as argument to the <a href="http://doc.qt.io/qt-5/qpaintengine.html#updateState">QPaintEngine::updateState</a>() function. The only situation in which you will have to use this class directly is when implementing your own paint engine.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPaintEngineState_dQPaintEngineState(
            self as *mut crate::QPaintEngineState,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPixmapCache {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPixmapCache::~QPixmapCache()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpixmapcache.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> class provides an application-wide cache for pixmaps.</p>
    /// <p>This class is a tool for optimized drawing with <a href="http://doc.qt.io/qt-5/qpixmap.html">QPixmap</a>. You can use it to store temporary pixmaps that are expensive to generate without using more storage space than <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). Use <a href="http://doc.qt.io/qt-5/qpixmapcache.html#insert">insert</a>() to insert pixmaps, <a href="http://doc.qt.io/qt-5/qpixmapcache.html#find">find</a>() to find them, and <a href="http://doc.qt.io/qt-5/qpixmapcache.html#clear">clear</a>() to empty the cache.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> contains no member data, only static functions to access the global pixmap cache. It creates an internal <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> object for caching the pixmaps.</p>
    /// <p>The cache associates a pixmap with a user-provided string as a key, or with a <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> that the cache generates. Using <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> for keys is faster than using strings. The string API is very convenient for complex keys but the <a href="http://doc.qt.io/qt-5/qpixmapcache-key.html">QPixmapCache::Key</a> API will be very efficient and convenient for a one-to-one object-to-pixmap mapping - in this case, you can store the keys as members of an object.</p>
    /// <p>If two pixmaps are inserted into the cache using equal keys then the last pixmap will replace the first pixmap in the cache. This follows the behavior of the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> and <a href="http://doc.qt.io/qt-5/qcache.html">QCache</a> classes.</p>
    /// <p>The cache becomes full when the total size of all pixmaps in the cache exceeds <a href="http://doc.qt.io/qt-5/qpixmapcache.html#cacheLimit">cacheLimit</a>(). The initial cache limit is 10240 KB (10 MB); you can change this by calling <a href="http://doc.qt.io/qt-5/qpixmapcache.html#setCacheLimit">setCacheLimit</a>() with the required value. A pixmap takes roughly (<i>width</i> * <i>height</i> * <i>depth</i>)/8 bytes of memory.</p>
    /// <p>The <i>Qt Quarterly</i> article <a href="http://doc.qt.io/archives/qq/qq12-qpixmapcache.html">Optimizing with QPixmapCache</a> explains how to use <a href="http://doc.qt.io/qt-5/qpixmapcache.html">QPixmapCache</a> to speed up applications by caching the results of painting.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPixmapCache_dQPixmapCache(self as *mut crate::QPixmapCache)
    }
}

impl ::cpp_core::CppDeletable for crate::QStyleHints {
    /// <p>The <a href="http://doc.qt.io/qt-5/qstylehints.html">QStyleHints</a> class contains platform specific hints and settings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QStyleHints::~QStyleHints()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qstylehints.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qstylehints.html">QStyleHints</a> class contains platform specific hints and settings.</p>
    /// <p>An object of this class, obtained from <a href="http://doc.qt.io/qt-5/qguiapplication.html">QGuiApplication</a>, provides access to certain global user interface parameters of the current platform.</p>
    /// <p>Access is read only; typically the platform itself provides the user a way to tune these parameters.</p>
    /// <p>Access to these parameters are useful when implementing custom user interface components, in that they allow the components to exhibit the same behaviour and feel as other components.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QStyleHints_dQStyleHints(self as *mut crate::QStyleHints)
    }
}

impl ::cpp_core::CppDeletable for crate::QTextBlock {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> class provides a container for text fragments in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextBlock::~QTextBlock()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextblock.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> class provides a container for text fragments in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>.</p>
    /// <p>A text block encapsulates a block or paragraph of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>. <a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> provides read-only access to the block/paragraph structure of QTextDocuments. It is mainly of use if you want to implement your own layouts for the visual representation of a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a>, or if you want to iterate over a document and write out the contents in your own custom format.</p>
    /// <p>Text blocks are created by their parent documents. If you need to create a new text block, or modify the contents of a document while examining its contents, use the cursor-based interface provided by <a href="http://doc.qt.io/qt-5/qtextcursor.html">QTextCursor</a> instead.</p>
    /// <p>Each text block is located at a specific <a href="http://doc.qt.io/qt-5/qtextblock.html#position">position</a>() in a <a href="http://doc.qt.io/qt-5/qtextblock.html#document">document</a>(). The contents of the block can be obtained by using the <a href="http://doc.qt.io/qt-5/qtextblock.html#text">text</a>() function. The <a href="http://doc.qt.io/qt-5/qtextblock.html#length">length</a>() function determines the block's size within the document (including formatting characters). The visual properties of the block are determined by its text <a href="http://doc.qt.io/qt-5/qtextblock.html#layout">layout</a>(), its <a href="http://doc.qt.io/qt-5/qtextblock.html#charFormat">charFormat</a>(), and its <a href="http://doc.qt.io/qt-5/qtextblock.html#blockFormat">blockFormat</a>().</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextblock.html#next">next</a>() and <a href="http://doc.qt.io/qt-5/qtextblock.html#previous">previous</a>() functions enable iteration over consecutive valid blocks in a document under the condition that the document is not modified by other means during the iteration process. Note that, although blocks are returned in sequence, adjacent blocks may come from different places in the document structure. The validity of a block can be determined by calling <a href="http://doc.qt.io/qt-5/qtextblock.html#isValid">isValid</a>().</p>
    /// <p><a href="http://doc.qt.io/qt-5/qtextblock.html">QTextBlock</a> provides comparison operators to make it easier to work with blocks: <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-eq-eq">operator==</a>() compares two block for equality, <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-not-eq">operator!=</a>() compares two blocks for inequality, and <a href="http://doc.qt.io/qt-5/qtextblock.html#operator-lt">operator&lt;</a>() determines whether a block precedes another in the same document.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtextblock-sequence.png" alt=""></p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextBlock_dQTextBlock(self as *mut crate::QTextBlock)
    }
}

impl ::cpp_core::CppDeletable for crate::QTextFragment {
    /// <p>The <a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a> class holds a piece of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> with a single <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QTextFragment::~QTextFragment()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qtextfragment.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qtextfragment.html">QTextFragment</a> class holds a piece of text in a <a href="http://doc.qt.io/qt-5/qtextdocument.html">QTextDocument</a> with a single <a href="http://doc.qt.io/qt-5/qtextcharformat.html">QTextCharFormat</a>.</p>
    /// <p>A text fragment describes a piece of text that is stored with a single character format. Text in which the character format changes can be represented by sequences of text fragments with different formats.</p>
    /// <p>If the user edits the text in a fragment and introduces a different character format, the fragment's text will be split at each point where the format changes, and new fragments will be created. For example, changing the style of some text in the middle of a sentence will cause the fragment to be broken into three separate fragments: the first and third with the same format as before, and the second with the new style. The first fragment will contain the text from the beginning of the sentence, the second will contain the text from the middle, and the third takes the text from the end of the sentence.</p>
    /// <p class="centerAlign"><img src="http://doc.qt.io/qt-5/images/qtextfragment-split.png" alt=""></p><p>A fragment's text and character format can be obtained with the <a href="http://doc.qt.io/qt-5/qtextfragment.html#text">text</a>() and <a href="http://doc.qt.io/qt-5/qtextfragment.html#charFormat">charFormat</a>() functions. The <a href="http://doc.qt.io/qt-5/qtextfragment.html#length">length</a>() function gives the length of the text in the fragment. <a href="http://doc.qt.io/qt-5/qtextfragment.html#position">position</a>() gives the position in the document of the start of the fragment. To determine whether the fragment contains a particular position within the document, use the <a href="http://doc.qt.io/qt-5/qtextfragment.html#contains">contains</a>() function.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QTextFragment_dQTextFragment(self as *mut crate::QTextFragment)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPairOfDoubleQColor>>
    for crate::QPairOfDoubleQColor
{
    /// <p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QPair<double, QColor>& p1, const QPair<double, QColor>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, p2: &::cpp_core::Ref<crate::QPairOfDoubleQColor>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__108(
                self as *const crate::QPairOfDoubleQColor,
                p2.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPairOfIntInt>> for crate::QPairOfIntInt {
    /// <p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QPair<int, int>& p1, const QPair<int, int>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, p2: &::cpp_core::Ref<crate::QPairOfIntInt>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__109(
                self as *const crate::QPairOfIntInt,
                p2.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p1, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(
        &self,
        p2: &::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__110(
                self as *const crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag,
                p2.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPairOfFilterFilter>>
    for crate::QPairOfFilterFilter
{
    /// <p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p1, const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, p2: &::cpp_core::Ref<crate::QPairOfFilterFilter>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__111(
                self as *const crate::QPairOfFilterFilter,
                p2.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QPairOfFloatFloat>> for crate::QPairOfFloatFloat {
    /// <p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QPair<float, float>& p1, const QPair<float, float>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-eq-eq">C++ documentation</a> for <span style='color: green;'>```bool operator==(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>c1</i> and <i>c2</i> are the same Unicode character; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    fn eq(&self, p2: &::cpp_core::Ref<crate::QPairOfFloatFloat>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__112(
                self as *const crate::QPairOfFloatFloat,
                p2.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QPairOfIntInt>> for crate::QPairOfIntInt {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QPair<int, int>& p1, const QPair<int, int>& p2)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, p2: &::cpp_core::Ref<crate::QPairOfIntInt>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_128(
            self as *const crate::QPairOfIntInt,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p1, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p2)```</span>.
    #[inline(always)]
    unsafe fn lt(
        &self,
        p2: &::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_129(
            self as *const crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QPairOfFilterFilter>>
    for crate::QPairOfFilterFilter
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p1, const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p2)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, p2: &::cpp_core::Ref<crate::QPairOfFilterFilter>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_130(
            self as *const crate::QPairOfFilterFilter,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QPairOfFloatFloat>> for crate::QPairOfFloatFloat {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QPair<float, float>& p1, const QPair<float, float>& p2)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, p2: &::cpp_core::Ref<crate::QPairOfFloatFloat>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_131(
            self as *const crate::QPairOfFloatFloat,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QPairOfIntInt>> for crate::QPairOfIntInt {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QPair<int, int>& p1, const QPair<int, int>& p2)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, p2: &::cpp_core::Ref<crate::QPairOfIntInt>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_133(
            self as *const crate::QPairOfIntInt,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p1, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p2)```</span>.
    #[inline(always)]
    unsafe fn gt(
        &self,
        p2: &::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_134(
            self as *const crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QPairOfFilterFilter>>
    for crate::QPairOfFilterFilter
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p1, const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p2)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, p2: &::cpp_core::Ref<crate::QPairOfFilterFilter>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_135(
            self as *const crate::QPairOfFilterFilter,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QPairOfFloatFloat>> for crate::QPairOfFloatFloat {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QPair<float, float>& p1, const QPair<float, float>& p2)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, p2: &::cpp_core::Ref<crate::QPairOfFloatFloat>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_136(
            self as *const crate::QPairOfFloatFloat,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QPairOfIntInt>> for crate::QPairOfIntInt {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QPair<int, int>& p1, const QPair<int, int>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, p2: &::cpp_core::Ref<crate::QPairOfIntInt>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__119(
            self as *const crate::QPairOfIntInt,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p1, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(
        &self,
        p2: &::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__120(
            self as *const crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QPairOfFilterFilter>>
    for crate::QPairOfFilterFilter
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p1, const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, p2: &::cpp_core::Ref<crate::QPairOfFilterFilter>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__121(
            self as *const crate::QPairOfFilterFilter,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QPairOfFloatFloat>> for crate::QPairOfFloatFloat {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QPair<float, float>& p1, const QPair<float, float>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, p2: &::cpp_core::Ref<crate::QPairOfFloatFloat>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__122(
            self as *const crate::QPairOfFloatFloat,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QPairOfIntInt>> for crate::QPairOfIntInt {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QPair<int, int>& p1, const QPair<int, int>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, p2: &::cpp_core::Ref<crate::QPairOfIntInt>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__124(
            self as *const crate::QPairOfIntInt,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p1, const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(
        &self,
        p2: &::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__125(
            self as *const crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QPairOfFilterFilter>>
    for crate::QPairOfFilterFilter
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p1, const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, p2: &::cpp_core::Ref<crate::QPairOfFilterFilter>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__126(
            self as *const crate::QPairOfFilterFilter,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QPairOfFloatFloat>> for crate::QPairOfFloatFloat {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QPair<float, float>& p1, const QPair<float, float>& p2)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, p2: &::cpp_core::Ref<crate::QPairOfFloatFloat>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__127(
            self as *const crate::QPairOfFloatFloat,
            p2.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfAttribute {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QInputMethodEvent::Attribute>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_dQList(
            self as *mut crate::QListOfAttribute,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfTouchPoint {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTouchEvent::TouchPoint>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_dQList(
            self as *mut crate::QListOfTouchPoint,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQSize {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QSize>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QSize_dQList(self as *mut crate::QListOfQSize)
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQKeySequence {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QKeySequence>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_dQList(
            self as *mut crate::QListOfQKeySequence,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQTouchDevice {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<const QTouchDevice*>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_dQList(
            self as *mut crate::QListOfQTouchDevice,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQPolygonF {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QPolygonF>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_dQList(self as *mut crate::QListOfQPolygonF)
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfDouble {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<double>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_double_dQList(self as *mut crate::QListOfDouble)
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfTab {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextOption::Tab>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_dQList(self as *mut crate::QListOfTab)
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfWritingSystem {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QFontDatabase::WritingSystem>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_dQList(
            self as *mut crate::QListOfWritingSystem,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfFormatRange {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextLayout::FormatRange>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_dQList(
            self as *mut crate::QListOfFormatRange,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQGlyphRun {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QGlyphRun>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_dQList(self as *mut crate::QListOfQGlyphRun)
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQAccessibleInterface {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QAccessibleInterface*>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_dQList(
            self as *mut crate::QListOfQAccessibleInterface,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQWindow {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QWindow*>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_dQList(self as *mut crate::QListOfQWindow)
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQScreen {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QScreen*>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_dQList(self as *mut crate::QListOfQScreen)
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQOpenglContext {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLContext*>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_dQList(
            self as *mut crate::QListOfQOpenglContext,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQOpenglDebugMessage {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLDebugMessage>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_dQList(
            self as *mut crate::QListOfQOpenglDebugMessage,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQOpenglShader {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QOpenGLShader*>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_dQList(
            self as *mut crate::QListOfQOpenglShader,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQStandardItem {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QStandardItem*>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_dQList(
            self as *mut crate::QListOfQStandardItem,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQTextBlock {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextBlock>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_dQList(self as *mut crate::QListOfQTextBlock)
    }
}

impl ::cpp_core::CppDeletable for crate::QListOfQTextFrame {
    /// <p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QList<QTextFrame*>::~QList()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#dtor.QList">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the list. References to the values in the list and all iterators of this list become invalid.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_dQList(
            self as *mut crate::QListOfQTextFrame,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQSize>> for crate::QListOfQSize {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QSize>::operator==(const QList<QSize>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQSize>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator__(
                self as *const crate::QListOfQSize,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQKeySequence>>
    for crate::QListOfQKeySequence
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QKeySequence>::operator==(const QList<QKeySequence>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQKeySequence>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator__(
                self as *const crate::QListOfQKeySequence,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQTouchDevice>>
    for crate::QListOfQTouchDevice
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<const QTouchDevice*>::operator==(const QList<const QTouchDevice*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQTouchDevice>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_operator__(
                self as *const crate::QListOfQTouchDevice,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQPolygonF>> for crate::QListOfQPolygonF {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QPolygonF>::operator==(const QList<QPolygonF>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQPolygonF>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator__(
                self as *const crate::QListOfQPolygonF,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfDouble>> for crate::QListOfDouble {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<double>::operator==(const QList<double>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfDouble>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_operator__(
                self as *const crate::QListOfDouble,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfTab>> for crate::QListOfTab {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextOption::Tab>::operator==(const QList<QTextOption::Tab>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfTab>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator__(
                self as *const crate::QListOfTab,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfWritingSystem>>
    for crate::QListOfWritingSystem
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QFontDatabase::WritingSystem>::operator==(const QList<QFontDatabase::WritingSystem>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfWritingSystem>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator__(
                self as *const crate::QListOfWritingSystem,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfFormatRange>>
    for crate::QListOfFormatRange
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextLayout::FormatRange>::operator==(const QList<QTextLayout::FormatRange>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfFormatRange>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator__(
                self as *const crate::QListOfFormatRange,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQGlyphRun>> for crate::QListOfQGlyphRun {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QGlyphRun>::operator==(const QList<QGlyphRun>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQGlyphRun>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator__(
                self as *const crate::QListOfQGlyphRun,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>
    for crate::QListOfQAccessibleInterface
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QAccessibleInterface*>::operator==(const QList<QAccessibleInterface*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQAccessibleInterface>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_operator__(
                self as *const crate::QListOfQAccessibleInterface,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQWindow>> for crate::QListOfQWindow {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QWindow*>::operator==(const QList<QWindow*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQWindow>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_operator__(
                self as *const crate::QListOfQWindow,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQScreen>> for crate::QListOfQScreen {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QScreen*>::operator==(const QList<QScreen*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQScreen>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_operator__(
                self as *const crate::QListOfQScreen,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQOpenglContext>>
    for crate::QListOfQOpenglContext
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLContext*>::operator==(const QList<QOpenGLContext*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQOpenglContext>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_operator__(
                self as *const crate::QListOfQOpenglContext,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>
    for crate::QListOfQOpenglDebugMessage
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLDebugMessage>::operator==(const QList<QOpenGLDebugMessage>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator__(
                self as *const crate::QListOfQOpenglDebugMessage,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQOpenglShader>>
    for crate::QListOfQOpenglShader
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QOpenGLShader*>::operator==(const QList<QOpenGLShader*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQOpenglShader>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_operator__(
                self as *const crate::QListOfQOpenglShader,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQStandardItem>>
    for crate::QListOfQStandardItem
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QStandardItem*>::operator==(const QList<QStandardItem*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQStandardItem>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_operator__(
                self as *const crate::QListOfQStandardItem,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQTextBlock>> for crate::QListOfQTextBlock {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextBlock>::operator==(const QList<QTextBlock>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQTextBlock>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator__(
                self as *const crate::QListOfQTextBlock,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QListOfQTextFrame>> for crate::QListOfQTextFrame {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QList<QTextFrame*>::operator==(const QList<QTextFrame*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this list; otherwise returns false.</p>
    /// <p>Two lists are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, l: &::cpp_core::Ref<crate::QListOfQTextFrame>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_operator__(
                self as *const crate::QListOfQTextFrame,
                l.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfAttribute {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QInputMethodEvent::Attribute>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_size(
            self as *const crate::QListOfAttribute,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfTouchPoint {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTouchEvent::TouchPoint>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_size(
            self as *const crate::QListOfTouchPoint,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQSize {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QSize>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_size(self as *const crate::QListOfQSize);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQKeySequence {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QKeySequence>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_size(
            self as *const crate::QListOfQKeySequence,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQTouchDevice {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<const QTouchDevice*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_size(
            self as *const crate::QListOfQTouchDevice,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQPolygonF {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QPolygonF>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_size(
            self as *const crate::QListOfQPolygonF,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfDouble {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<double>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_size(self as *const crate::QListOfDouble);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfTab {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextOption::Tab>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_size(
            self as *const crate::QListOfTab,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfWritingSystem {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QFontDatabase::WritingSystem>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_size(
            self as *const crate::QListOfWritingSystem,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfFormatRange {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextLayout::FormatRange>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_size(
            self as *const crate::QListOfFormatRange,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQGlyphRun {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QGlyphRun>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_size(
            self as *const crate::QListOfQGlyphRun,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQAccessibleInterface {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QAccessibleInterface*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_size(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQWindow {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QWindow*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_size(
            self as *const crate::QListOfQWindow,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQScreen {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QScreen*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_size(
            self as *const crate::QListOfQScreen,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQOpenglContext {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLContext*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_size(
            self as *const crate::QListOfQOpenglContext,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQOpenglDebugMessage {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLDebugMessage>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_size(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQOpenglShader {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QOpenGLShader*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_size(
            self as *const crate::QListOfQOpenglShader,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQStandardItem {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QStandardItem*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_size(
            self as *const crate::QListOfQStandardItem,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQTextBlock {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextBlock>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_size(
            self as *const crate::QListOfQTextBlock,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QListOfQTextFrame {
    /// <p>Returns the number of items in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QList<QTextFrame*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#count-1">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_size(
            self as *const crate::QListOfQTextFrame,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfAttribute {
    type Output = ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_begin(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfTouchPoint {
    type Output = ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_begin(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQSize {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_begin(self as *mut crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQKeySequence {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_begin(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQTouchDevice {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_begin(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQPolygonF {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_begin(
            self as *mut crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfDouble {
    type Output = ::cpp_core::CppBox<crate::q_list_of_double::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_begin(self as *mut crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfTab {
    type Output = ::cpp_core::CppBox<crate::q_list_of_tab::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_begin(
            self as *mut crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfWritingSystem {
    type Output = ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_begin(
            self as *mut crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfFormatRange {
    type Output = ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_begin(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQGlyphRun {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_begin(
            self as *mut crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQAccessibleInterface {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_begin(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQWindow {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_begin(
            self as *mut crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQScreen {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_begin(
            self as *mut crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQOpenglContext {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_begin(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQOpenglDebugMessage {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_begin(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQOpenglShader {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_begin(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQStandardItem {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_begin(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQTextBlock {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_begin(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::BeginMut for crate::QListOfQTextFrame {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the first item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_begin(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfAttribute {
    type Output = ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_begin1(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfTouchPoint {
    type Output = ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_begin1(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQSize {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_begin1(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQKeySequence {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_begin1(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQTouchDevice {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_begin1(
            self as *const crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQPolygonF {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_begin1(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfDouble {
    type Output = ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_begin1(self as *const crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfTab {
    type Output = ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_begin1(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfWritingSystem {
    type Output = ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_begin1(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfFormatRange {
    type Output = ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_begin1(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQGlyphRun {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_begin1(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQAccessibleInterface {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_begin1(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQWindow {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_begin1(
            self as *const crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQScreen {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_begin1(
            self as *const crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQOpenglContext {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_begin1(
            self as *const crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQOpenglDebugMessage {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_begin1(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQOpenglShader {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_begin1(
            self as *const crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQStandardItem {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_begin1(
            self as *const crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQTextBlock {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_begin1(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QListOfQTextFrame {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_begin1(
            self as *const crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfAttribute {
    type Output = ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::iterator QList<QInputMethodEvent::Attribute>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_end(
            self as *mut crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfTouchPoint {
    type Output = ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::iterator QList<QTouchEvent::TouchPoint>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_end(
            self as *mut crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQSize {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::iterator QList<QSize>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_end(self as *mut crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQKeySequence {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::iterator QList<QKeySequence>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_end(
            self as *mut crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQTouchDevice {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::iterator QList<const QTouchDevice*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_end(
            self as *mut crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQPolygonF {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::iterator QList<QPolygonF>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_end(self as *mut crate::QListOfQPolygonF);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfDouble {
    type Output = ::cpp_core::CppBox<crate::q_list_of_double::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::iterator QList<double>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_double::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_end(self as *mut crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfTab {
    type Output = ::cpp_core::CppBox<crate::q_list_of_tab::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::iterator QList<QTextOption::Tab>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_tab::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_end(self as *mut crate::QListOfTab);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfWritingSystem {
    type Output = ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::iterator QList<QFontDatabase::WritingSystem>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_end(
            self as *mut crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfFormatRange {
    type Output = ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::iterator QList<QTextLayout::FormatRange>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_format_range::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_end(
            self as *mut crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQGlyphRun {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::iterator QList<QGlyphRun>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_end(self as *mut crate::QListOfQGlyphRun);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQAccessibleInterface {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::iterator QList<QAccessibleInterface*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_end(
            self as *mut crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQWindow {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::iterator QList<QWindow*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_end(self as *mut crate::QListOfQWindow);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQScreen {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::iterator QList<QScreen*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_end(self as *mut crate::QListOfQScreen);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQOpenglContext {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::iterator QList<QOpenGLContext*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_end(
            self as *mut crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQOpenglDebugMessage {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::iterator QList<QOpenGLDebugMessage>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(
        &mut self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_end(
            self as *mut crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQOpenglShader {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::iterator QList<QOpenGLShader*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_end(
            self as *mut crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQStandardItem {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::iterator QList<QStandardItem*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_end(
            self as *mut crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQTextBlock {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::iterator QList<QTextBlock>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_end(
            self as *mut crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QListOfQTextFrame {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator>;
    /// <p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::iterator QList<QTextFrame*>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns an <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#begin">begin</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#constEnd">constEnd</a>().</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_end(
            self as *mut crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfAttribute {
    type Output = ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>::const_iterator QList<QInputMethodEvent::Attribute>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_attribute::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_end1(
            self as *const crate::QListOfAttribute,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfTouchPoint {
    type Output = ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>::const_iterator QList<QTouchEvent::TouchPoint>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_touch_point::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_end1(
            self as *const crate::QListOfTouchPoint,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQSize {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>::const_iterator QList<QSize>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_size::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_end1(self as *const crate::QListOfQSize);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQKeySequence {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>::const_iterator QList<QKeySequence>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_key_sequence::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_end1(
            self as *const crate::QListOfQKeySequence,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQTouchDevice {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>::const_iterator QList<const QTouchDevice*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_touch_device::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_end1(
            self as *const crate::QListOfQTouchDevice,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQPolygonF {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>::const_iterator QList<QPolygonF>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_polygon_f::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_end1(
            self as *const crate::QListOfQPolygonF,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfDouble {
    type Output = ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>::const_iterator QList<double>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_double::ConstIterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QList_double_end1(self as *const crate::QListOfDouble);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfTab {
    type Output = ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>::const_iterator QList<QTextOption::Tab>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_tab::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_end1(
            self as *const crate::QListOfTab,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfWritingSystem {
    type Output = ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>::const_iterator QList<QFontDatabase::WritingSystem>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_writing_system::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_end1(
            self as *const crate::QListOfWritingSystem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfFormatRange {
    type Output = ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>::const_iterator QList<QTextLayout::FormatRange>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_format_range::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_end1(
            self as *const crate::QListOfFormatRange,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQGlyphRun {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>::const_iterator QList<QGlyphRun>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_glyph_run::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_end1(
            self as *const crate::QListOfQGlyphRun,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQAccessibleInterface {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>::const_iterator QList<QAccessibleInterface*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_accessible_interface::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_end1(
            self as *const crate::QListOfQAccessibleInterface,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQWindow {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>::const_iterator QList<QWindow*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_window::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_end1(
            self as *const crate::QListOfQWindow,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQScreen {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>::const_iterator QList<QScreen*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_screen::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_end1(
            self as *const crate::QListOfQScreen,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQOpenglContext {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>::const_iterator QList<QOpenGLContext*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_context::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_end1(
            self as *const crate::QListOfQOpenglContext,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQOpenglDebugMessage {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>::const_iterator QList<QOpenGLDebugMessage>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(
        &self,
    ) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_debug_message::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_end1(
            self as *const crate::QListOfQOpenglDebugMessage,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQOpenglShader {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>::const_iterator QList<QOpenGLShader*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_opengl_shader::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_end1(
            self as *const crate::QListOfQOpenglShader,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQStandardItem {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>::const_iterator QList<QStandardItem*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_standard_item::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_end1(
            self as *const crate::QListOfQStandardItem,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQTextBlock {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>::const_iterator QList<QTextBlock>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_block::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_end1(
            self as *const crate::QListOfQTextBlock,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QListOfQTextFrame {
    type Output = ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>::const_iterator QList<QTextFrame*>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_list_of_q_text_frame::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_end1(
            self as *const crate::QListOfQTextFrame,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfAttribute>> for crate::QListOfAttribute {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>& QList<QInputMethodEvent::Attribute>::operator+=(const QList<QInputMethodEvent::Attribute>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfAttribute>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_operator__4(
                self as *mut crate::QListOfAttribute,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfTouchPoint>> for crate::QListOfTouchPoint {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>& QList<QTouchEvent::TouchPoint>::operator+=(const QList<QTouchEvent::TouchPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfTouchPoint>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_operator__4(
                self as *mut crate::QListOfTouchPoint,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQSize>> for crate::QListOfQSize {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>& QList<QSize>::operator+=(const QList<QSize>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQSize>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator__4(
                self as *mut crate::QListOfQSize,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQKeySequence>>
    for crate::QListOfQKeySequence
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>& QList<QKeySequence>::operator+=(const QList<QKeySequence>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQKeySequence>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator__4(
                self as *mut crate::QListOfQKeySequence,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQTouchDevice>>
    for crate::QListOfQTouchDevice
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>& QList<const QTouchDevice*>::operator+=(const QList<const QTouchDevice*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQTouchDevice>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_operator__4(
                self as *mut crate::QListOfQTouchDevice,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQPolygonF>> for crate::QListOfQPolygonF {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>& QList<QPolygonF>::operator+=(const QList<QPolygonF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQPolygonF>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator__4(
                self as *mut crate::QListOfQPolygonF,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfDouble>> for crate::QListOfDouble {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>& QList<double>::operator+=(const QList<double>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfDouble>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_operator__4(
                self as *mut crate::QListOfDouble,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfTab>> for crate::QListOfTab {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>& QList<QTextOption::Tab>::operator+=(const QList<QTextOption::Tab>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfTab>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator__4(
                self as *mut crate::QListOfTab,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfWritingSystem>>
    for crate::QListOfWritingSystem
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>& QList<QFontDatabase::WritingSystem>::operator+=(const QList<QFontDatabase::WritingSystem>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfWritingSystem>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator__4(
                self as *mut crate::QListOfWritingSystem,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfFormatRange>>
    for crate::QListOfFormatRange
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>& QList<QTextLayout::FormatRange>::operator+=(const QList<QTextLayout::FormatRange>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfFormatRange>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator__4(
                self as *mut crate::QListOfFormatRange,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQGlyphRun>> for crate::QListOfQGlyphRun {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>& QList<QGlyphRun>::operator+=(const QList<QGlyphRun>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQGlyphRun>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator__4(
                self as *mut crate::QListOfQGlyphRun,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>
    for crate::QListOfQAccessibleInterface
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>& QList<QAccessibleInterface*>::operator+=(const QList<QAccessibleInterface*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQAccessibleInterface>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_operator__4(
                self as *mut crate::QListOfQAccessibleInterface,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQWindow>> for crate::QListOfQWindow {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>& QList<QWindow*>::operator+=(const QList<QWindow*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQWindow>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_operator__4(
                self as *mut crate::QListOfQWindow,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQScreen>> for crate::QListOfQScreen {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>& QList<QScreen*>::operator+=(const QList<QScreen*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQScreen>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_operator__4(
                self as *mut crate::QListOfQScreen,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQOpenglContext>>
    for crate::QListOfQOpenglContext
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>& QList<QOpenGLContext*>::operator+=(const QList<QOpenGLContext*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQOpenglContext>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_operator__4(
                self as *mut crate::QListOfQOpenglContext,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>
    for crate::QListOfQOpenglDebugMessage
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>& QList<QOpenGLDebugMessage>::operator+=(const QList<QOpenGLDebugMessage>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator__4(
                self as *mut crate::QListOfQOpenglDebugMessage,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQOpenglShader>>
    for crate::QListOfQOpenglShader
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>& QList<QOpenGLShader*>::operator+=(const QList<QOpenGLShader*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQOpenglShader>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_operator__4(
                self as *mut crate::QListOfQOpenglShader,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQStandardItem>>
    for crate::QListOfQStandardItem
{
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>& QList<QStandardItem*>::operator+=(const QList<QStandardItem*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQStandardItem>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_operator__4(
                self as *mut crate::QListOfQStandardItem,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQTextBlock>> for crate::QListOfQTextBlock {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>& QList<QTextBlock>::operator+=(const QList<QTextBlock>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQTextBlock>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator__4(
                self as *mut crate::QListOfQTextBlock,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QListOfQTextFrame>> for crate::QListOfQTextFrame {
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>& QList<QTextFrame*>::operator+=(const QList<QTextFrame*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QListOfQTextFrame>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_operator__4(
                self as *mut crate::QListOfQTextFrame,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfAttribute>> for &crate::QListOfAttribute {
    type Output = ::cpp_core::CppBox<crate::QListOfAttribute>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute> QList<QInputMethodEvent::Attribute>::operator+(const QList<QInputMethodEvent::Attribute>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfAttribute>,
    ) -> ::cpp_core::CppBox<crate::QListOfAttribute> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_operator_2(
                self as *const crate::QListOfAttribute,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfTouchPoint>> for &crate::QListOfTouchPoint {
    type Output = ::cpp_core::CppBox<crate::QListOfTouchPoint>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint> QList<QTouchEvent::TouchPoint>::operator+(const QList<QTouchEvent::TouchPoint>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfTouchPoint>,
    ) -> ::cpp_core::CppBox<crate::QListOfTouchPoint> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_operator_2(
                self as *const crate::QListOfTouchPoint,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQSize>> for &crate::QListOfQSize {
    type Output = ::cpp_core::CppBox<crate::QListOfQSize>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize> QList<QSize>::operator+(const QList<QSize>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQSize>,
    ) -> ::cpp_core::CppBox<crate::QListOfQSize> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator_2(
                self as *const crate::QListOfQSize,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQKeySequence>> for &crate::QListOfQKeySequence {
    type Output = ::cpp_core::CppBox<crate::QListOfQKeySequence>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence> QList<QKeySequence>::operator+(const QList<QKeySequence>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQKeySequence>,
    ) -> ::cpp_core::CppBox<crate::QListOfQKeySequence> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator_2(
                self as *const crate::QListOfQKeySequence,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQTouchDevice>> for &crate::QListOfQTouchDevice {
    type Output = ::cpp_core::CppBox<crate::QListOfQTouchDevice>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*> QList<const QTouchDevice*>::operator+(const QList<const QTouchDevice*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQTouchDevice>,
    ) -> ::cpp_core::CppBox<crate::QListOfQTouchDevice> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_operator_2(
                self as *const crate::QListOfQTouchDevice,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQPolygonF>> for &crate::QListOfQPolygonF {
    type Output = ::cpp_core::CppBox<crate::QListOfQPolygonF>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF> QList<QPolygonF>::operator+(const QList<QPolygonF>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQPolygonF>,
    ) -> ::cpp_core::CppBox<crate::QListOfQPolygonF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator_2(
                self as *const crate::QListOfQPolygonF,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfDouble>> for &crate::QListOfDouble {
    type Output = ::cpp_core::CppBox<crate::QListOfDouble>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double> QList<double>::operator+(const QList<double>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfDouble>,
    ) -> ::cpp_core::CppBox<crate::QListOfDouble> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_operator_2(
                self as *const crate::QListOfDouble,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfTab>> for &crate::QListOfTab {
    type Output = ::cpp_core::CppBox<crate::QListOfTab>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab> QList<QTextOption::Tab>::operator+(const QList<QTextOption::Tab>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(self, l: ::cpp_core::Ref<crate::QListOfTab>) -> ::cpp_core::CppBox<crate::QListOfTab> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator_2(
                self as *const crate::QListOfTab,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfWritingSystem>>
    for &crate::QListOfWritingSystem
{
    type Output = ::cpp_core::CppBox<crate::QListOfWritingSystem>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem> QList<QFontDatabase::WritingSystem>::operator+(const QList<QFontDatabase::WritingSystem>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfWritingSystem>,
    ) -> ::cpp_core::CppBox<crate::QListOfWritingSystem> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator_2(
                self as *const crate::QListOfWritingSystem,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfFormatRange>> for &crate::QListOfFormatRange {
    type Output = ::cpp_core::CppBox<crate::QListOfFormatRange>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange> QList<QTextLayout::FormatRange>::operator+(const QList<QTextLayout::FormatRange>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfFormatRange>,
    ) -> ::cpp_core::CppBox<crate::QListOfFormatRange> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator_2(
                self as *const crate::QListOfFormatRange,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQGlyphRun>> for &crate::QListOfQGlyphRun {
    type Output = ::cpp_core::CppBox<crate::QListOfQGlyphRun>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun> QList<QGlyphRun>::operator+(const QList<QGlyphRun>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQGlyphRun>,
    ) -> ::cpp_core::CppBox<crate::QListOfQGlyphRun> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator_2(
                self as *const crate::QListOfQGlyphRun,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>
    for &crate::QListOfQAccessibleInterface
{
    type Output = ::cpp_core::CppBox<crate::QListOfQAccessibleInterface>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*> QList<QAccessibleInterface*>::operator+(const QList<QAccessibleInterface*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQAccessibleInterface>,
    ) -> ::cpp_core::CppBox<crate::QListOfQAccessibleInterface> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_operator_2(
                self as *const crate::QListOfQAccessibleInterface,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQWindow>> for &crate::QListOfQWindow {
    type Output = ::cpp_core::CppBox<crate::QListOfQWindow>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*> QList<QWindow*>::operator+(const QList<QWindow*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQWindow>,
    ) -> ::cpp_core::CppBox<crate::QListOfQWindow> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_operator_2(
                self as *const crate::QListOfQWindow,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQScreen>> for &crate::QListOfQScreen {
    type Output = ::cpp_core::CppBox<crate::QListOfQScreen>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*> QList<QScreen*>::operator+(const QList<QScreen*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQScreen>,
    ) -> ::cpp_core::CppBox<crate::QListOfQScreen> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_operator_2(
                self as *const crate::QListOfQScreen,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQOpenglContext>>
    for &crate::QListOfQOpenglContext
{
    type Output = ::cpp_core::CppBox<crate::QListOfQOpenglContext>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*> QList<QOpenGLContext*>::operator+(const QList<QOpenGLContext*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQOpenglContext>,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglContext> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_operator_2(
                self as *const crate::QListOfQOpenglContext,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>
    for &crate::QListOfQOpenglDebugMessage
{
    type Output = ::cpp_core::CppBox<crate::QListOfQOpenglDebugMessage>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage> QList<QOpenGLDebugMessage>::operator+(const QList<QOpenGLDebugMessage>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator_2(
                self as *const crate::QListOfQOpenglDebugMessage,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQOpenglShader>>
    for &crate::QListOfQOpenglShader
{
    type Output = ::cpp_core::CppBox<crate::QListOfQOpenglShader>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*> QList<QOpenGLShader*>::operator+(const QList<QOpenGLShader*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQOpenglShader>,
    ) -> ::cpp_core::CppBox<crate::QListOfQOpenglShader> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_operator_2(
                self as *const crate::QListOfQOpenglShader,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQStandardItem>>
    for &crate::QListOfQStandardItem
{
    type Output = ::cpp_core::CppBox<crate::QListOfQStandardItem>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*> QList<QStandardItem*>::operator+(const QList<QStandardItem*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQStandardItem>,
    ) -> ::cpp_core::CppBox<crate::QListOfQStandardItem> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_operator_2(
                self as *const crate::QListOfQStandardItem,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQTextBlock>> for &crate::QListOfQTextBlock {
    type Output = ::cpp_core::CppBox<crate::QListOfQTextBlock>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock> QList<QTextBlock>::operator+(const QList<QTextBlock>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQTextBlock>,
    ) -> ::cpp_core::CppBox<crate::QListOfQTextBlock> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator_2(
                self as *const crate::QListOfQTextBlock,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QListOfQTextFrame>> for &crate::QListOfQTextFrame {
    type Output = ::cpp_core::CppBox<crate::QListOfQTextFrame>;
    /// <p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*> QList<QTextFrame*>::operator+(const QList<QTextFrame*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list that contains all the items in this list followed by all the items in the <i>other</i> list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QListOfQTextFrame>,
    ) -> ::cpp_core::CppBox<crate::QListOfQTextFrame> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_operator_2(
                self as *const crate::QListOfQTextFrame,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::q_input_method_event::Attribute>>
    for crate::QListOfAttribute
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>& QList<QInputMethodEvent::Attribute>::operator+=(const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::q_input_method_event::Attribute>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_operator__5(
                self as *mut crate::QListOfAttribute,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>
    for crate::QListOfTouchPoint
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>& QList<QTouchEvent::TouchPoint>::operator+=(const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::q_touch_event::TouchPoint>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_operator__5(
                self as *mut crate::QListOfTouchPoint,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QSize>> for crate::QListOfQSize {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>& QList<QSize>::operator+=(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::qt_core::QSize>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator__5(
                self as *mut crate::QListOfQSize,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QKeySequence>> for crate::QListOfQKeySequence {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>& QList<QKeySequence>::operator+=(const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::QKeySequence>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator__5(
                self as *mut crate::QListOfQKeySequence,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QPolygonF>> for crate::QListOfQPolygonF {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>& QList<QPolygonF>::operator+=(const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::QPolygonF>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator__5(
                self as *mut crate::QListOfQPolygonF,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::std::os::raw::c_double>> for crate::QListOfDouble {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>& QList<double>::operator+=(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::std::os::raw::c_double>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_operator__5(
                self as *mut crate::QListOfDouble,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::q_text_option::Tab>> for crate::QListOfTab {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>& QList<QTextOption::Tab>::operator+=(const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::q_text_option::Tab>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator__5(
                self as *mut crate::QListOfTab,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::q_font_database::WritingSystem>>
    for crate::QListOfWritingSystem
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>& QList<QFontDatabase::WritingSystem>::operator+=(const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::q_font_database::WritingSystem>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator__5(
                self as *mut crate::QListOfWritingSystem,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::q_text_layout::FormatRange>>
    for crate::QListOfFormatRange
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>& QList<QTextLayout::FormatRange>::operator+=(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::q_text_layout::FormatRange>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator__5(
                self as *mut crate::QListOfFormatRange,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QGlyphRun>> for crate::QListOfQGlyphRun {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>& QList<QGlyphRun>::operator+=(const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::QGlyphRun>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator__5(
                self as *mut crate::QListOfQGlyphRun,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QOpenGLDebugMessage>>
    for crate::QListOfQOpenglDebugMessage
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>& QList<QOpenGLDebugMessage>::operator+=(const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::QOpenGLDebugMessage>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator__5(
                self as *mut crate::QListOfQOpenglDebugMessage,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QTextBlock>> for crate::QListOfQTextBlock {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>& QList<QTextBlock>::operator+=(const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::QTextBlock>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator__5(
                self as *mut crate::QListOfQTextBlock,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::q_input_method_event::Attribute>>
    for &crate::QListOfAttribute
{
    type Output = ::cpp_core::MutRef<crate::QListOfAttribute>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>& QList<QInputMethodEvent::Attribute>::operator<<(const QInputMethodEvent::Attribute& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::q_input_method_event::Attribute>,
    ) -> ::cpp_core::MutRef<crate::QListOfAttribute> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_operator__6(
                self as *const crate::QListOfAttribute as *mut crate::QListOfAttribute,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::q_touch_event::TouchPoint>>
    for &crate::QListOfTouchPoint
{
    type Output = ::cpp_core::MutRef<crate::QListOfTouchPoint>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>& QList<QTouchEvent::TouchPoint>::operator<<(const QTouchEvent::TouchPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::q_touch_event::TouchPoint>,
    ) -> ::cpp_core::MutRef<crate::QListOfTouchPoint> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_operator__6(
                self as *const crate::QListOfTouchPoint as *mut crate::QListOfTouchPoint,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::qt_core::QSize>> for &crate::QListOfQSize {
    type Output = ::cpp_core::MutRef<crate::QListOfQSize>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>& QList<QSize>::operator<<(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(self, t: ::cpp_core::Ref<::qt_core::QSize>) -> ::cpp_core::MutRef<crate::QListOfQSize> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator__6(
                self as *const crate::QListOfQSize as *mut crate::QListOfQSize,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QKeySequence>> for &crate::QListOfQKeySequence {
    type Output = ::cpp_core::MutRef<crate::QListOfQKeySequence>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>& QList<QKeySequence>::operator<<(const QKeySequence& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QKeySequence>,
    ) -> ::cpp_core::MutRef<crate::QListOfQKeySequence> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator__6(
                self as *const crate::QListOfQKeySequence as *mut crate::QListOfQKeySequence,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QPolygonF>> for &crate::QListOfQPolygonF {
    type Output = ::cpp_core::MutRef<crate::QListOfQPolygonF>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>& QList<QPolygonF>::operator<<(const QPolygonF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QPolygonF>,
    ) -> ::cpp_core::MutRef<crate::QListOfQPolygonF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator__6(
                self as *const crate::QListOfQPolygonF as *mut crate::QListOfQPolygonF,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::std::os::raw::c_double>> for &crate::QListOfDouble {
    type Output = ::cpp_core::MutRef<crate::QListOfDouble>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>& QList<double>::operator<<(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::std::os::raw::c_double>,
    ) -> ::cpp_core::MutRef<crate::QListOfDouble> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_operator__6(
                self as *const crate::QListOfDouble as *mut crate::QListOfDouble,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::q_text_option::Tab>> for &crate::QListOfTab {
    type Output = ::cpp_core::MutRef<crate::QListOfTab>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>& QList<QTextOption::Tab>::operator<<(const QTextOption::Tab& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::q_text_option::Tab>,
    ) -> ::cpp_core::MutRef<crate::QListOfTab> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator__6(
                self as *const crate::QListOfTab as *mut crate::QListOfTab,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::q_font_database::WritingSystem>>
    for &crate::QListOfWritingSystem
{
    type Output = ::cpp_core::MutRef<crate::QListOfWritingSystem>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>& QList<QFontDatabase::WritingSystem>::operator<<(const QFontDatabase::WritingSystem& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::q_font_database::WritingSystem>,
    ) -> ::cpp_core::MutRef<crate::QListOfWritingSystem> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator__6(
                self as *const crate::QListOfWritingSystem as *mut crate::QListOfWritingSystem,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::q_text_layout::FormatRange>>
    for &crate::QListOfFormatRange
{
    type Output = ::cpp_core::MutRef<crate::QListOfFormatRange>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>& QList<QTextLayout::FormatRange>::operator<<(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::q_text_layout::FormatRange>,
    ) -> ::cpp_core::MutRef<crate::QListOfFormatRange> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator__6(
                self as *const crate::QListOfFormatRange as *mut crate::QListOfFormatRange,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QGlyphRun>> for &crate::QListOfQGlyphRun {
    type Output = ::cpp_core::MutRef<crate::QListOfQGlyphRun>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>& QList<QGlyphRun>::operator<<(const QGlyphRun& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QGlyphRun>,
    ) -> ::cpp_core::MutRef<crate::QListOfQGlyphRun> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator__6(
                self as *const crate::QListOfQGlyphRun as *mut crate::QListOfQGlyphRun,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QOpenGLDebugMessage>>
    for &crate::QListOfQOpenglDebugMessage
{
    type Output = ::cpp_core::MutRef<crate::QListOfQOpenglDebugMessage>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>& QList<QOpenGLDebugMessage>::operator<<(const QOpenGLDebugMessage& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QOpenGLDebugMessage>,
    ) -> ::cpp_core::MutRef<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator__6(
                self as *const crate::QListOfQOpenglDebugMessage
                    as *mut crate::QListOfQOpenglDebugMessage,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QTextBlock>> for &crate::QListOfQTextBlock {
    type Output = ::cpp_core::MutRef<crate::QListOfQTextBlock>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>& QList<QTextBlock>::operator<<(const QTextBlock& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the list.</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QTextBlock>,
    ) -> ::cpp_core::MutRef<crate::QListOfQTextBlock> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator__6(
                self as *const crate::QListOfQTextBlock as *mut crate::QListOfQTextBlock,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfAttribute>> for &crate::QListOfAttribute {
    type Output = ::cpp_core::MutRef<crate::QListOfAttribute>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QInputMethodEvent::Attribute>& QList<QInputMethodEvent::Attribute>::operator<<(const QList<QInputMethodEvent::Attribute>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfAttribute>,
    ) -> ::cpp_core::MutRef<crate::QListOfAttribute> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QInputMethodEvent_Attribute_operator__7(
                self as *const crate::QListOfAttribute as *mut crate::QListOfAttribute,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfTouchPoint>> for &crate::QListOfTouchPoint {
    type Output = ::cpp_core::MutRef<crate::QListOfTouchPoint>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTouchEvent::TouchPoint>& QList<QTouchEvent::TouchPoint>::operator<<(const QList<QTouchEvent::TouchPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfTouchPoint>,
    ) -> ::cpp_core::MutRef<crate::QListOfTouchPoint> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchEvent_TouchPoint_operator__7(
                self as *const crate::QListOfTouchPoint as *mut crate::QListOfTouchPoint,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQSize>> for &crate::QListOfQSize {
    type Output = ::cpp_core::MutRef<crate::QListOfQSize>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QSize>& QList<QSize>::operator<<(const QList<QSize>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQSize>,
    ) -> ::cpp_core::MutRef<crate::QListOfQSize> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QSize_operator__7(
                self as *const crate::QListOfQSize as *mut crate::QListOfQSize,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQKeySequence>> for &crate::QListOfQKeySequence {
    type Output = ::cpp_core::MutRef<crate::QListOfQKeySequence>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QKeySequence>& QList<QKeySequence>::operator<<(const QList<QKeySequence>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQKeySequence>,
    ) -> ::cpp_core::MutRef<crate::QListOfQKeySequence> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QKeySequence_operator__7(
                self as *const crate::QListOfQKeySequence as *mut crate::QListOfQKeySequence,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQTouchDevice>> for &crate::QListOfQTouchDevice {
    type Output = ::cpp_core::MutRef<crate::QListOfQTouchDevice>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<const QTouchDevice*>& QList<const QTouchDevice*>::operator<<(const QList<const QTouchDevice*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQTouchDevice>,
    ) -> ::cpp_core::MutRef<crate::QListOfQTouchDevice> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTouchDevice_const_ptr_operator__7(
                self as *const crate::QListOfQTouchDevice as *mut crate::QListOfQTouchDevice,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQPolygonF>> for &crate::QListOfQPolygonF {
    type Output = ::cpp_core::MutRef<crate::QListOfQPolygonF>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QPolygonF>& QList<QPolygonF>::operator<<(const QList<QPolygonF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQPolygonF>,
    ) -> ::cpp_core::MutRef<crate::QListOfQPolygonF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QPolygonF_operator__7(
                self as *const crate::QListOfQPolygonF as *mut crate::QListOfQPolygonF,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfDouble>> for &crate::QListOfDouble {
    type Output = ::cpp_core::MutRef<crate::QListOfDouble>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<double>& QList<double>::operator<<(const QList<double>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfDouble>,
    ) -> ::cpp_core::MutRef<crate::QListOfDouble> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_double_operator__7(
                self as *const crate::QListOfDouble as *mut crate::QListOfDouble,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfTab>> for &crate::QListOfTab {
    type Output = ::cpp_core::MutRef<crate::QListOfTab>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextOption::Tab>& QList<QTextOption::Tab>::operator<<(const QList<QTextOption::Tab>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(self, l: ::cpp_core::Ref<crate::QListOfTab>) -> ::cpp_core::MutRef<crate::QListOfTab> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextOption_Tab_operator__7(
                self as *const crate::QListOfTab as *mut crate::QListOfTab,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfWritingSystem>>
    for &crate::QListOfWritingSystem
{
    type Output = ::cpp_core::MutRef<crate::QListOfWritingSystem>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QFontDatabase::WritingSystem>& QList<QFontDatabase::WritingSystem>::operator<<(const QList<QFontDatabase::WritingSystem>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfWritingSystem>,
    ) -> ::cpp_core::MutRef<crate::QListOfWritingSystem> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QFontDatabase_WritingSystem_operator__7(
                self as *const crate::QListOfWritingSystem as *mut crate::QListOfWritingSystem,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfFormatRange>> for &crate::QListOfFormatRange {
    type Output = ::cpp_core::MutRef<crate::QListOfFormatRange>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextLayout::FormatRange>& QList<QTextLayout::FormatRange>::operator<<(const QList<QTextLayout::FormatRange>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfFormatRange>,
    ) -> ::cpp_core::MutRef<crate::QListOfFormatRange> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextLayout_FormatRange_operator__7(
                self as *const crate::QListOfFormatRange as *mut crate::QListOfFormatRange,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQGlyphRun>> for &crate::QListOfQGlyphRun {
    type Output = ::cpp_core::MutRef<crate::QListOfQGlyphRun>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QGlyphRun>& QList<QGlyphRun>::operator<<(const QList<QGlyphRun>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQGlyphRun>,
    ) -> ::cpp_core::MutRef<crate::QListOfQGlyphRun> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QGlyphRun_operator__7(
                self as *const crate::QListOfQGlyphRun as *mut crate::QListOfQGlyphRun,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>
    for &crate::QListOfQAccessibleInterface
{
    type Output = ::cpp_core::MutRef<crate::QListOfQAccessibleInterface>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QAccessibleInterface*>& QList<QAccessibleInterface*>::operator<<(const QList<QAccessibleInterface*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQAccessibleInterface>,
    ) -> ::cpp_core::MutRef<crate::QListOfQAccessibleInterface> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QAccessibleInterface_ptr_operator__7(
                self as *const crate::QListOfQAccessibleInterface
                    as *mut crate::QListOfQAccessibleInterface,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQWindow>> for &crate::QListOfQWindow {
    type Output = ::cpp_core::MutRef<crate::QListOfQWindow>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QWindow*>& QList<QWindow*>::operator<<(const QList<QWindow*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQWindow>,
    ) -> ::cpp_core::MutRef<crate::QListOfQWindow> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QWindow_ptr_operator__7(
                self as *const crate::QListOfQWindow as *mut crate::QListOfQWindow,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQScreen>> for &crate::QListOfQScreen {
    type Output = ::cpp_core::MutRef<crate::QListOfQScreen>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QScreen*>& QList<QScreen*>::operator<<(const QList<QScreen*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQScreen>,
    ) -> ::cpp_core::MutRef<crate::QListOfQScreen> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QScreen_ptr_operator__7(
                self as *const crate::QListOfQScreen as *mut crate::QListOfQScreen,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQOpenglContext>>
    for &crate::QListOfQOpenglContext
{
    type Output = ::cpp_core::MutRef<crate::QListOfQOpenglContext>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLContext*>& QList<QOpenGLContext*>::operator<<(const QList<QOpenGLContext*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQOpenglContext>,
    ) -> ::cpp_core::MutRef<crate::QListOfQOpenglContext> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLContext_ptr_operator__7(
                self as *const crate::QListOfQOpenglContext as *mut crate::QListOfQOpenglContext,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>>
    for &crate::QListOfQOpenglDebugMessage
{
    type Output = ::cpp_core::MutRef<crate::QListOfQOpenglDebugMessage>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLDebugMessage>& QList<QOpenGLDebugMessage>::operator<<(const QList<QOpenGLDebugMessage>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQOpenglDebugMessage>,
    ) -> ::cpp_core::MutRef<crate::QListOfQOpenglDebugMessage> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLDebugMessage_operator__7(
                self as *const crate::QListOfQOpenglDebugMessage
                    as *mut crate::QListOfQOpenglDebugMessage,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQOpenglShader>>
    for &crate::QListOfQOpenglShader
{
    type Output = ::cpp_core::MutRef<crate::QListOfQOpenglShader>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QOpenGLShader*>& QList<QOpenGLShader*>::operator<<(const QList<QOpenGLShader*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQOpenglShader>,
    ) -> ::cpp_core::MutRef<crate::QListOfQOpenglShader> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QOpenGLShader_ptr_operator__7(
                self as *const crate::QListOfQOpenglShader as *mut crate::QListOfQOpenglShader,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQStandardItem>>
    for &crate::QListOfQStandardItem
{
    type Output = ::cpp_core::MutRef<crate::QListOfQStandardItem>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QStandardItem*>& QList<QStandardItem*>::operator<<(const QList<QStandardItem*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQStandardItem>,
    ) -> ::cpp_core::MutRef<crate::QListOfQStandardItem> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QStandardItem_ptr_operator__7(
                self as *const crate::QListOfQStandardItem as *mut crate::QListOfQStandardItem,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQTextBlock>> for &crate::QListOfQTextBlock {
    type Output = ::cpp_core::MutRef<crate::QListOfQTextBlock>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextBlock>& QList<QTextBlock>::operator<<(const QList<QTextBlock>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQTextBlock>,
    ) -> ::cpp_core::MutRef<crate::QListOfQTextBlock> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextBlock_operator__7(
                self as *const crate::QListOfQTextBlock as *mut crate::QListOfQTextBlock,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QListOfQTextFrame>> for &crate::QListOfQTextFrame {
    type Output = ::cpp_core::MutRef<crate::QListOfQTextFrame>;
    /// <p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QList<QTextFrame*>& QList<QTextFrame*>::operator<<(const QList<QTextFrame*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qlist.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> list to this list and returns a reference to this list.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#operator-2b-eq">operator+=</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#append">append</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QListOfQTextFrame>,
    ) -> ::cpp_core::MutRef<crate::QListOfQTextFrame> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QList_QTextFrame_ptr_operator__7(
                self as *const crate::QListOfQTextFrame as *mut crate::QListOfQTextFrame,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQKeySequence>>
    for crate::QListOfQKeySequence
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QKeySequence>& lhs, const QList<QKeySequence>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQKeySequence>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_140(
            self as *const crate::QListOfQKeySequence,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQTouchDevice>>
    for crate::QListOfQTouchDevice
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<const QTouchDevice*>& lhs, const QList<const QTouchDevice*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQTouchDevice>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_141(
            self as *const crate::QListOfQTouchDevice,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfDouble>> for crate::QListOfDouble {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<double>& lhs, const QList<double>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfDouble>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_143(
            self as *const crate::QListOfDouble,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfWritingSystem>>
    for crate::QListOfWritingSystem
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QFontDatabase::WritingSystem>& lhs, const QList<QFontDatabase::WritingSystem>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfWritingSystem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_145(
            self as *const crate::QListOfWritingSystem,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>
    for crate::QListOfQAccessibleInterface
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QAccessibleInterface*>& lhs, const QList<QAccessibleInterface*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQAccessibleInterface>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_148(
            self as *const crate::QListOfQAccessibleInterface,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQWindow>> for crate::QListOfQWindow {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QWindow*>& lhs, const QList<QWindow*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQWindow>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_149(
            self as *const crate::QListOfQWindow,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQScreen>> for crate::QListOfQScreen {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QScreen*>& lhs, const QList<QScreen*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQScreen>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_150(
            self as *const crate::QListOfQScreen,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQOpenglContext>>
    for crate::QListOfQOpenglContext
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QOpenGLContext*>& lhs, const QList<QOpenGLContext*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQOpenglContext>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_151(
            self as *const crate::QListOfQOpenglContext,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQOpenglShader>>
    for crate::QListOfQOpenglShader
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QOpenGLShader*>& lhs, const QList<QOpenGLShader*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQOpenglShader>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_153(
            self as *const crate::QListOfQOpenglShader,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQStandardItem>>
    for crate::QListOfQStandardItem
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QStandardItem*>& lhs, const QList<QStandardItem*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQStandardItem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_154(
            self as *const crate::QListOfQStandardItem,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQTextBlock>> for crate::QListOfQTextBlock {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QTextBlock>& lhs, const QList<QTextBlock>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQTextBlock>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_155(
            self as *const crate::QListOfQTextBlock,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QListOfQTextFrame>> for crate::QListOfQTextFrame {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QList<QTextFrame*>& lhs, const QList<QTextFrame*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QListOfQTextFrame>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_156(
            self as *const crate::QListOfQTextFrame,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQKeySequence>>
    for crate::QListOfQKeySequence
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QKeySequence>& lhs, const QList<QKeySequence>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQKeySequence>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_160(
            self as *const crate::QListOfQKeySequence,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQTouchDevice>>
    for crate::QListOfQTouchDevice
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<const QTouchDevice*>& lhs, const QList<const QTouchDevice*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQTouchDevice>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_161(
            self as *const crate::QListOfQTouchDevice,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfDouble>> for crate::QListOfDouble {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<double>& lhs, const QList<double>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfDouble>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_163(
            self as *const crate::QListOfDouble,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfWritingSystem>>
    for crate::QListOfWritingSystem
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QFontDatabase::WritingSystem>& lhs, const QList<QFontDatabase::WritingSystem>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfWritingSystem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_165(
            self as *const crate::QListOfWritingSystem,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>
    for crate::QListOfQAccessibleInterface
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QAccessibleInterface*>& lhs, const QList<QAccessibleInterface*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQAccessibleInterface>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_168(
            self as *const crate::QListOfQAccessibleInterface,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQWindow>> for crate::QListOfQWindow {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QWindow*>& lhs, const QList<QWindow*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQWindow>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_169(
            self as *const crate::QListOfQWindow,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQScreen>> for crate::QListOfQScreen {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QScreen*>& lhs, const QList<QScreen*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQScreen>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_170(
            self as *const crate::QListOfQScreen,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQOpenglContext>>
    for crate::QListOfQOpenglContext
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QOpenGLContext*>& lhs, const QList<QOpenGLContext*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQOpenglContext>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_171(
            self as *const crate::QListOfQOpenglContext,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQOpenglShader>>
    for crate::QListOfQOpenglShader
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QOpenGLShader*>& lhs, const QList<QOpenGLShader*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQOpenglShader>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_173(
            self as *const crate::QListOfQOpenglShader,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQStandardItem>>
    for crate::QListOfQStandardItem
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QStandardItem*>& lhs, const QList<QStandardItem*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQStandardItem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_174(
            self as *const crate::QListOfQStandardItem,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQTextBlock>> for crate::QListOfQTextBlock {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QTextBlock>& lhs, const QList<QTextBlock>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQTextBlock>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_175(
            self as *const crate::QListOfQTextBlock,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QListOfQTextFrame>> for crate::QListOfQTextFrame {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QList<QTextFrame*>& lhs, const QList<QTextFrame*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QListOfQTextFrame>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_176(
            self as *const crate::QListOfQTextFrame,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQKeySequence>>
    for crate::QListOfQKeySequence
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QKeySequence>& lhs, const QList<QKeySequence>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQKeySequence>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__131(
            self as *const crate::QListOfQKeySequence,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQTouchDevice>>
    for crate::QListOfQTouchDevice
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<const QTouchDevice*>& lhs, const QList<const QTouchDevice*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQTouchDevice>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__132(
            self as *const crate::QListOfQTouchDevice,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfDouble>> for crate::QListOfDouble {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<double>& lhs, const QList<double>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfDouble>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__134(
            self as *const crate::QListOfDouble,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfWritingSystem>>
    for crate::QListOfWritingSystem
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QFontDatabase::WritingSystem>& lhs, const QList<QFontDatabase::WritingSystem>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfWritingSystem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__136(
            self as *const crate::QListOfWritingSystem,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>
    for crate::QListOfQAccessibleInterface
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QAccessibleInterface*>& lhs, const QList<QAccessibleInterface*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQAccessibleInterface>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__139(
            self as *const crate::QListOfQAccessibleInterface,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQWindow>> for crate::QListOfQWindow {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QWindow*>& lhs, const QList<QWindow*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQWindow>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__140(
            self as *const crate::QListOfQWindow,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQScreen>> for crate::QListOfQScreen {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QScreen*>& lhs, const QList<QScreen*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQScreen>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__141(
            self as *const crate::QListOfQScreen,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQOpenglContext>>
    for crate::QListOfQOpenglContext
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QOpenGLContext*>& lhs, const QList<QOpenGLContext*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQOpenglContext>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__142(
            self as *const crate::QListOfQOpenglContext,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQOpenglShader>>
    for crate::QListOfQOpenglShader
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QOpenGLShader*>& lhs, const QList<QOpenGLShader*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQOpenglShader>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__144(
            self as *const crate::QListOfQOpenglShader,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQStandardItem>>
    for crate::QListOfQStandardItem
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QStandardItem*>& lhs, const QList<QStandardItem*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQStandardItem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__145(
            self as *const crate::QListOfQStandardItem,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQTextBlock>> for crate::QListOfQTextBlock {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QTextBlock>& lhs, const QList<QTextBlock>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQTextBlock>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__146(
            self as *const crate::QListOfQTextBlock,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QListOfQTextFrame>> for crate::QListOfQTextFrame {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QList<QTextFrame*>& lhs, const QList<QTextFrame*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QListOfQTextFrame>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__147(
            self as *const crate::QListOfQTextFrame,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQKeySequence>>
    for crate::QListOfQKeySequence
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QKeySequence>& lhs, const QList<QKeySequence>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQKeySequence>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__151(
            self as *const crate::QListOfQKeySequence,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQTouchDevice>>
    for crate::QListOfQTouchDevice
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<const QTouchDevice*>& lhs, const QList<const QTouchDevice*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQTouchDevice>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__152(
            self as *const crate::QListOfQTouchDevice,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfDouble>> for crate::QListOfDouble {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<double>& lhs, const QList<double>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfDouble>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__154(
            self as *const crate::QListOfDouble,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfWritingSystem>>
    for crate::QListOfWritingSystem
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QFontDatabase::WritingSystem>& lhs, const QList<QFontDatabase::WritingSystem>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfWritingSystem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__156(
            self as *const crate::QListOfWritingSystem,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>
    for crate::QListOfQAccessibleInterface
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QAccessibleInterface*>& lhs, const QList<QAccessibleInterface*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQAccessibleInterface>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__159(
            self as *const crate::QListOfQAccessibleInterface,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQWindow>> for crate::QListOfQWindow {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QWindow*>& lhs, const QList<QWindow*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQWindow>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__160(
            self as *const crate::QListOfQWindow,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQScreen>> for crate::QListOfQScreen {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QScreen*>& lhs, const QList<QScreen*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQScreen>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__161(
            self as *const crate::QListOfQScreen,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQOpenglContext>>
    for crate::QListOfQOpenglContext
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QOpenGLContext*>& lhs, const QList<QOpenGLContext*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQOpenglContext>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__162(
            self as *const crate::QListOfQOpenglContext,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQOpenglShader>>
    for crate::QListOfQOpenglShader
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QOpenGLShader*>& lhs, const QList<QOpenGLShader*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQOpenglShader>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__164(
            self as *const crate::QListOfQOpenglShader,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQStandardItem>>
    for crate::QListOfQStandardItem
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QStandardItem*>& lhs, const QList<QStandardItem*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQStandardItem>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__165(
            self as *const crate::QListOfQStandardItem,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQTextBlock>> for crate::QListOfQTextBlock {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QTextBlock>& lhs, const QList<QTextBlock>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQTextBlock>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__166(
            self as *const crate::QListOfQTextBlock,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QListOfQTextFrame>> for crate::QListOfQTextFrame {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QList<QTextFrame*>& lhs, const QList<QTextFrame*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QListOfQTextFrame>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__167(
            self as *const crate::QListOfQTextFrame,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQPoint {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QPoint>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_dQVector(self as *mut crate::QVectorOfQPoint)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQPairOfDoubleQColor {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QPair<double, QColor>>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_dQVector(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfSelection {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QAbstractTextDocumentLayout::Selection>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_dQVector(
            self as *mut crate::QVectorOfSelection,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQRect {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QRect>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_dQVector(self as *mut crate::QVectorOfQRect)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfDouble {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<double>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_double_dQVector(self as *mut crate::QVectorOfDouble)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQTextLength {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QTextLength>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_dQVector(
            self as *mut crate::QVectorOfQTextLength,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfU32 {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<quint32>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_dQVector(self as *mut crate::QVectorOfU32)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfFormatRange {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QTextLayout::FormatRange>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_dQVector(
            self as *mut crate::QVectorOfFormatRange,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQTextFormat {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QTextFormat>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_dQVector(
            self as *mut crate::QVectorOfQTextFormat,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_dQVector(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQSize {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QSize>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_dQVector(self as *mut crate::QVectorOfQSize)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfFloat {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<float>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_float_dQVector(self as *mut crate::QVectorOfFloat)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfU64 {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<GLuint64>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_dQVector(self as *mut crate::QVectorOfU64)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQLineF {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QLineF>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_dQVector(self as *mut crate::QVectorOfQLineF)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQLine {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QLine>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_dQVector(self as *mut crate::QVectorOfQLine)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQRectF {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<QRectF>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_dQVector(self as *mut crate::QVectorOfQRectF)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQPoint>> for crate::QVectorOfQPoint {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPoint>::operator==(const QVector<QPoint>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQPoint>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator__(
                self as *const crate::QVectorOfQPoint,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>
    for crate::QVectorOfQPairOfDoubleQColor
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<double, QColor>>::operator==(const QVector<QPair<double, QColor>>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator__(
                self as *const crate::QVectorOfQPairOfDoubleQColor,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQRect>> for crate::QVectorOfQRect {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRect>::operator==(const QVector<QRect>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQRect>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator__(
                self as *const crate::QVectorOfQRect,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfDouble>> for crate::QVectorOfDouble {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<double>::operator==(const QVector<double>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfDouble>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator__(
                self as *const crate::QVectorOfDouble,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQTextLength>>
    for crate::QVectorOfQTextLength
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLength>::operator==(const QVector<QTextLength>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQTextLength>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator__(
                self as *const crate::QVectorOfQTextLength,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfU32>> for crate::QVectorOfU32 {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<quint32>::operator==(const QVector<quint32>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfU32>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator__(
                self as *const crate::QVectorOfU32,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfFormatRange>>
    for crate::QVectorOfFormatRange
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextLayout::FormatRange>::operator==(const QVector<QTextLayout::FormatRange>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfFormatRange>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator__(
                self as *const crate::QVectorOfFormatRange,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQTextFormat>>
    for crate::QVectorOfQTextFormat
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QTextFormat>::operator==(const QVector<QTextFormat>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQTextFormat>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator__(
                self as *const crate::QVectorOfQTextFormat,
                v.as_raw_ptr(),
            )
        }
    }
}

impl
    ::std::cmp::PartialEq<
        ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    > for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator==(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(
        &self,
        v: &::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator__(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, v.as_raw_ptr())
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQSize>> for crate::QVectorOfQSize {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QSize>::operator==(const QVector<QSize>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQSize>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator__(
                self as *const crate::QVectorOfQSize,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfFloat>> for crate::QVectorOfFloat {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<float>::operator==(const QVector<float>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfFloat>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator__(
                self as *const crate::QVectorOfFloat,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfU64>> for crate::QVectorOfU64 {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<GLuint64>::operator==(const QVector<GLuint64>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfU64>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator__(
                self as *const crate::QVectorOfU64,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQLineF>> for crate::QVectorOfQLineF {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLineF>::operator==(const QVector<QLineF>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQLineF>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator__(
                self as *const crate::QVectorOfQLineF,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQLine>> for crate::QVectorOfQLine {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QLine>::operator==(const QVector<QLine>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQLine>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator__(
                self as *const crate::QVectorOfQLine,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQRectF>> for crate::QVectorOfQRectF {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<QRectF>::operator==(const QVector<QRectF>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQRectF>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator__(
                self as *const crate::QVectorOfQRectF,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQPoint {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPoint>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_size(self as *const crate::QVectorOfQPoint);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQPairOfDoubleQColor {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<double, QColor>>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_size(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfSelection {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QAbstractTextDocumentLayout::Selection>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_size(
                self as *const crate::QVectorOfSelection,
            );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQRect {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRect>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_size(self as *const crate::QVectorOfQRect);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfDouble {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<double>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_size(self as *const crate::QVectorOfDouble);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQTextLength {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLength>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_size(
            self as *const crate::QVectorOfQTextLength,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfU32 {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<quint32>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_size(self as *const crate::QVectorOfU32);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfFormatRange {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextLayout::FormatRange>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_size(
            self as *const crate::QVectorOfFormatRange,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQTextFormat {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QTextFormat>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_size(
            self as *const crate::QVectorOfQTextFormat,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size
    for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_size(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQSize {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QSize>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_size(self as *const crate::QVectorOfQSize);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfFloat {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<float>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_size(self as *const crate::QVectorOfFloat);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfU64 {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<GLuint64>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_size(self as *const crate::QVectorOfU64);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQLineF {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLineF>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_size(self as *const crate::QVectorOfQLineF);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQLine {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QLine>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_size(self as *const crate::QVectorOfQLine);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQRectF {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<QRectF>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_size(self as *const crate::QVectorOfQRectF);
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQPoint {
    type Output = ::cpp_core::MutPtr<::qt_core::QPoint>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint* QVector<QPoint>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_data(self as *mut crate::QVectorOfQPoint);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQPairOfDoubleQColor {
    type Output = ::cpp_core::MutPtr<crate::QPairOfDoubleQColor>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<double, QColor>* QVector<QPair<double, QColor>>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_data(
            self as *mut crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfSelection {
    type Output = ::cpp_core::MutPtr<crate::q_abstract_text_document_layout::Selection>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout::Selection* QVector<QAbstractTextDocumentLayout::Selection>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_data(
                self as *mut crate::QVectorOfSelection,
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQRect {
    type Output = ::cpp_core::MutPtr<::qt_core::QRect>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRect* QVector<QRect>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_data(self as *mut crate::QVectorOfQRect);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfDouble {
    type Output = ::cpp_core::MutPtr<::std::os::raw::c_double>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double* QVector<double>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::std::os::raw::c_double> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_data(self as *mut crate::QVectorOfDouble);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQTextLength {
    type Output = ::cpp_core::MutPtr<crate::QTextLength>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLength* QVector<QTextLength>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_data(
            self as *mut crate::QVectorOfQTextLength,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfU32 {
    type Output = ::cpp_core::MutPtr<u32>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint32* QVector<quint32>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_data(self as *mut crate::QVectorOfU32);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfFormatRange {
    type Output = ::cpp_core::MutPtr<crate::q_text_layout::FormatRange>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextLayout::FormatRange* QVector<QTextLayout::FormatRange>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_data(
            self as *mut crate::QVectorOfFormatRange,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQTextFormat {
    type Output = ::cpp_core::MutPtr<crate::QTextFormat>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* QVector<QTextFormat>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_data(
            self as *mut crate::QVectorOfQTextFormat,
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut
    for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    type Output = ::cpp_core::MutPtr<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>* QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(
        &mut self,
    ) -> ::cpp_core::MutPtr<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_data(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQSize {
    type Output = ::cpp_core::MutPtr<::qt_core::QSize>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize* QVector<QSize>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_data(self as *mut crate::QVectorOfQSize);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfFloat {
    type Output = ::cpp_core::MutPtr<::std::os::raw::c_float>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float* QVector<float>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_data(self as *mut crate::QVectorOfFloat);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfU64 {
    type Output = ::cpp_core::MutPtr<u64>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```GLuint64* QVector<GLuint64>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_data(self as *mut crate::QVectorOfU64);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQLineF {
    type Output = ::cpp_core::MutPtr<::qt_core::QLineF>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLineF* QVector<QLineF>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QLineF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_data(self as *mut crate::QVectorOfQLineF);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQLine {
    type Output = ::cpp_core::MutPtr<::qt_core::QLine>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QLine* QVector<QLine>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_data(self as *mut crate::QVectorOfQLine);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQRectF {
    type Output = ::cpp_core::MutPtr<::qt_core::QRectF>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF* QVector<QRectF>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&mut self) -> ::cpp_core::MutPtr<::qt_core::QRectF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_data(self as *mut crate::QVectorOfQRectF);
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQPoint {
    type Output = ::cpp_core::Ptr<::qt_core::QPoint>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPoint* QVector<QPoint>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_data1(
            self as *const crate::QVectorOfQPoint,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQPairOfDoubleQColor {
    type Output = ::cpp_core::Ptr<crate::QPairOfDoubleQColor>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<double, QColor>* QVector<QPair<double, QColor>>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QPairOfDoubleQColor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_data1(
            self as *const crate::QVectorOfQPairOfDoubleQColor,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfSelection {
    type Output = ::cpp_core::Ptr<crate::q_abstract_text_document_layout::Selection>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QAbstractTextDocumentLayout::Selection* QVector<QAbstractTextDocumentLayout::Selection>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<crate::q_abstract_text_document_layout::Selection> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_data1(
                self as *const crate::QVectorOfSelection,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQRect {
    type Output = ::cpp_core::Ptr<::qt_core::QRect>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRect* QVector<QRect>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QRect> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_data1(self as *const crate::QVectorOfQRect);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfDouble {
    type Output = ::cpp_core::Ptr<::std::os::raw::c_double>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const double* QVector<double>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_double> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_double_data1(
            self as *const crate::QVectorOfDouble,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQTextLength {
    type Output = ::cpp_core::Ptr<crate::QTextLength>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLength* QVector<QTextLength>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QTextLength> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_data1(
            self as *const crate::QVectorOfQTextLength,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfU32 {
    type Output = ::cpp_core::Ptr<u32>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const quint32* QVector<quint32>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<u32> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_data1(self as *const crate::QVectorOfU32);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfFormatRange {
    type Output = ::cpp_core::Ptr<crate::q_text_layout::FormatRange>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextLayout::FormatRange* QVector<QTextLayout::FormatRange>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<crate::q_text_layout::FormatRange> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_data1(
            self as *const crate::QVectorOfFormatRange,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQTextFormat {
    type Output = ::cpp_core::Ptr<crate::QTextFormat>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QTextFormat* QVector<QTextFormat>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_data1(
            self as *const crate::QVectorOfQTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data
    for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    type Output = ::cpp_core::Ptr<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>* QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_data1(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQSize {
    type Output = ::cpp_core::Ptr<::qt_core::QSize>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QSize* QVector<QSize>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QSize> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_data1(self as *const crate::QVectorOfQSize);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfFloat {
    type Output = ::cpp_core::Ptr<::std::os::raw::c_float>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const float* QVector<float>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::std::os::raw::c_float> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_data1(self as *const crate::QVectorOfFloat);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfU64 {
    type Output = ::cpp_core::Ptr<u64>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const GLuint64* QVector<GLuint64>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<u64> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_data1(self as *const crate::QVectorOfU64);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQLineF {
    type Output = ::cpp_core::Ptr<::qt_core::QLineF>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLineF* QVector<QLineF>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QLineF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_data1(
            self as *const crate::QVectorOfQLineF,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQLine {
    type Output = ::cpp_core::Ptr<::qt_core::QLine>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QLine* QVector<QLine>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QLine> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_data1(self as *const crate::QVectorOfQLine);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQRectF {
    type Output = ::cpp_core::Ptr<::qt_core::QRectF>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const QRectF* QVector<QRectF>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<::qt_core::QRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_data1(
            self as *const crate::QVectorOfQRectF,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQPoint>> for crate::QVectorOfQPoint {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>& QVector<QPoint>::operator+=(const QVector<QPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQPoint>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator__4(
                self as *mut crate::QVectorOfQPoint,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>
    for crate::QVectorOfQPairOfDoubleQColor
{
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>>& QVector<QPair<double, QColor>>::operator+=(const QVector<QPair<double, QColor>>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator__4(
                self as *mut crate::QVectorOfQPairOfDoubleQColor,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfSelection>>
    for crate::QVectorOfSelection
{
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection>& QVector<QAbstractTextDocumentLayout::Selection>::operator+=(const QVector<QAbstractTextDocumentLayout::Selection>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfSelection>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_operator__4(
                self as *mut crate::QVectorOfSelection,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQRect>> for crate::QVectorOfQRect {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect>& QVector<QRect>::operator+=(const QVector<QRect>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQRect>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator__4(
                self as *mut crate::QVectorOfQRect,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfDouble>> for crate::QVectorOfDouble {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double>& QVector<double>::operator+=(const QVector<double>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfDouble>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator__4(
                self as *mut crate::QVectorOfDouble,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQTextLength>>
    for crate::QVectorOfQTextLength
{
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength>& QVector<QTextLength>::operator+=(const QVector<QTextLength>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQTextLength>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator__4(
                self as *mut crate::QVectorOfQTextLength,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfU32>> for crate::QVectorOfU32 {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32>& QVector<quint32>::operator+=(const QVector<quint32>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfU32>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator__4(
                self as *mut crate::QVectorOfU32,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfFormatRange>>
    for crate::QVectorOfFormatRange
{
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange>& QVector<QTextLayout::FormatRange>::operator+=(const QVector<QTextLayout::FormatRange>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfFormatRange>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator__4(
                self as *mut crate::QVectorOfFormatRange,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQTextFormat>>
    for crate::QVectorOfQTextFormat
{
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat>& QVector<QTextFormat>::operator+=(const QVector<QTextFormat>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQTextFormat>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator__4(
                self as *mut crate::QVectorOfQTextFormat,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl
    ::std::ops::AddAssign<
        ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    > for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator+=(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(
        &mut self,
        l: ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator__4(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, l.as_raw_ptr())
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQSize>> for crate::QVectorOfQSize {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize>& QVector<QSize>::operator+=(const QVector<QSize>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQSize>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator__4(
                self as *mut crate::QVectorOfQSize,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfFloat>> for crate::QVectorOfFloat {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float>& QVector<float>::operator+=(const QVector<float>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfFloat>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator__4(
                self as *mut crate::QVectorOfFloat,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfU64>> for crate::QVectorOfU64 {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64>& QVector<GLuint64>::operator+=(const QVector<GLuint64>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfU64>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator__4(
                self as *mut crate::QVectorOfU64,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQLineF>> for crate::QVectorOfQLineF {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF>& QVector<QLineF>::operator+=(const QVector<QLineF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQLineF>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator__4(
                self as *mut crate::QVectorOfQLineF,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQLine>> for crate::QVectorOfQLine {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine>& QVector<QLine>::operator+=(const QVector<QLine>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQLine>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator__4(
                self as *mut crate::QVectorOfQLine,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QVectorOfQRectF>> for crate::QVectorOfQRectF {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF>& QVector<QRectF>::operator+=(const QVector<QRectF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, l: ::cpp_core::Ref<crate::QVectorOfQRectF>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator__4(
                self as *mut crate::QVectorOfQRectF,
                l.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQPoint>> for &crate::QVectorOfQPoint {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQPoint>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint> QVector<QPoint>::operator+(const QVector<QPoint>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQPoint>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPoint> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator_2(
                self as *const crate::QVectorOfQPoint,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>
    for &crate::QVectorOfQPairOfDoubleQColor
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>> QVector<QPair<double, QColor>>::operator+(const QVector<QPair<double, QColor>>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator_2(
                self as *const crate::QVectorOfQPairOfDoubleQColor,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfSelection>> for &crate::QVectorOfSelection {
    type Output = ::cpp_core::CppBox<crate::QVectorOfSelection>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection> QVector<QAbstractTextDocumentLayout::Selection>::operator+(const QVector<QAbstractTextDocumentLayout::Selection>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfSelection>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSelection> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_operator_2(
                self as *const crate::QVectorOfSelection,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQRect>> for &crate::QVectorOfQRect {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQRect>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect> QVector<QRect>::operator+(const QVector<QRect>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRect>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRect> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator_2(
                self as *const crate::QVectorOfQRect,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfDouble>> for &crate::QVectorOfDouble {
    type Output = ::cpp_core::CppBox<crate::QVectorOfDouble>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double> QVector<double>::operator+(const QVector<double>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfDouble>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfDouble> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator_2(
                self as *const crate::QVectorOfDouble,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQTextLength>>
    for &crate::QVectorOfQTextLength
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQTextLength>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength> QVector<QTextLength>::operator+(const QVector<QTextLength>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQTextLength>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextLength> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator_2(
                self as *const crate::QVectorOfQTextLength,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfU32>> for &crate::QVectorOfU32 {
    type Output = ::cpp_core::CppBox<crate::QVectorOfU32>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32> QVector<quint32>::operator+(const QVector<quint32>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfU32>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU32> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator_2(
                self as *const crate::QVectorOfU32,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfFormatRange>>
    for &crate::QVectorOfFormatRange
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfFormatRange>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange> QVector<QTextLayout::FormatRange>::operator+(const QVector<QTextLayout::FormatRange>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfFormatRange>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFormatRange> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator_2(
                self as *const crate::QVectorOfFormatRange,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQTextFormat>>
    for &crate::QVectorOfQTextFormat
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQTextFormat>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat> QVector<QTextFormat>::operator+(const QVector<QTextFormat>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQTextFormat>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTextFormat> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator_2(
                self as *const crate::QVectorOfQTextFormat,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for &crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>> QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator+(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator_2(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, l.as_raw_ptr())
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQSize>> for &crate::QVectorOfQSize {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQSize>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize> QVector<QSize>::operator+(const QVector<QSize>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQSize>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQSize> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator_2(
                self as *const crate::QVectorOfQSize,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfFloat>> for &crate::QVectorOfFloat {
    type Output = ::cpp_core::CppBox<crate::QVectorOfFloat>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float> QVector<float>::operator+(const QVector<float>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfFloat>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfFloat> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator_2(
                self as *const crate::QVectorOfFloat,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfU64>> for &crate::QVectorOfU64 {
    type Output = ::cpp_core::CppBox<crate::QVectorOfU64>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64> QVector<GLuint64>::operator+(const QVector<GLuint64>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfU64>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfU64> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator_2(
                self as *const crate::QVectorOfU64,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQLineF>> for &crate::QVectorOfQLineF {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQLineF>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF> QVector<QLineF>::operator+(const QVector<QLineF>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQLineF>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLineF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator_2(
                self as *const crate::QVectorOfQLineF,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQLine>> for &crate::QVectorOfQLine {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQLine>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine> QVector<QLine>::operator+(const QVector<QLine>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQLine>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLine> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator_2(
                self as *const crate::QVectorOfQLine,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQRectF>> for &crate::QVectorOfQRectF {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQRectF>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF> QVector<QRectF>::operator+(const QVector<QRectF>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRectF>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRectF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator_2(
                self as *const crate::QVectorOfQRectF,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QPoint>> for crate::QVectorOfQPoint {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>& QVector<QPoint>::operator+=(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::qt_core::QPoint>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator__5(
                self as *mut crate::QVectorOfQPoint,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QPairOfDoubleQColor>>
    for crate::QVectorOfQPairOfDoubleQColor
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>>& QVector<QPair<double, QColor>>::operator+=(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::QPairOfDoubleQColor>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator__5(
                self as *mut crate::QVectorOfQPairOfDoubleQColor,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>
    for crate::QVectorOfSelection
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection>& QVector<QAbstractTextDocumentLayout::Selection>::operator+=(const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(
        &mut self,
        t: ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
    ) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_operator__5(
                self as *mut crate::QVectorOfSelection,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QRect>> for crate::QVectorOfQRect {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect>& QVector<QRect>::operator+=(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::qt_core::QRect>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator__5(
                self as *mut crate::QVectorOfQRect,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::std::os::raw::c_double>> for crate::QVectorOfDouble {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double>& QVector<double>::operator+=(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::std::os::raw::c_double>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator__5(
                self as *mut crate::QVectorOfDouble,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QTextLength>> for crate::QVectorOfQTextLength {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength>& QVector<QTextLength>::operator+=(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::QTextLength>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator__5(
                self as *mut crate::QVectorOfQTextLength,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<u32>> for crate::QVectorOfU32 {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32>& QVector<quint32>::operator+=(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<u32>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator__5(
                self as *mut crate::QVectorOfU32,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::q_text_layout::FormatRange>>
    for crate::QVectorOfFormatRange
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange>& QVector<QTextLayout::FormatRange>::operator+=(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::q_text_layout::FormatRange>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator__5(
                self as *mut crate::QVectorOfFormatRange,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QTextFormat>> for crate::QVectorOfQTextFormat {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat>& QVector<QTextFormat>::operator+=(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<crate::QTextFormat>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator__5(
                self as *mut crate::QVectorOfQTextFormat,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator+=(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(
        &mut self,
        t: ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator__5(self as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, t.as_raw_ptr())
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QSize>> for crate::QVectorOfQSize {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize>& QVector<QSize>::operator+=(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::qt_core::QSize>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator__5(
                self as *mut crate::QVectorOfQSize,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::std::os::raw::c_float>> for crate::QVectorOfFloat {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float>& QVector<float>::operator+=(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::std::os::raw::c_float>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator__5(
                self as *mut crate::QVectorOfFloat,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<u64>> for crate::QVectorOfU64 {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64>& QVector<GLuint64>::operator+=(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<u64>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator__5(
                self as *mut crate::QVectorOfU64,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QLineF>> for crate::QVectorOfQLineF {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF>& QVector<QLineF>::operator+=(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::qt_core::QLineF>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator__5(
                self as *mut crate::QVectorOfQLineF,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QLine>> for crate::QVectorOfQLine {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine>& QVector<QLine>::operator+=(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::qt_core::QLine>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator__5(
                self as *mut crate::QVectorOfQLine,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QRectF>> for crate::QVectorOfQRectF {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF>& QVector<QRectF>::operator+=(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, t: ::cpp_core::Ref<::qt_core::QRectF>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator__5(
                self as *mut crate::QVectorOfQRectF,
                t.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::qt_core::QPoint>> for &crate::QVectorOfQPoint {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQPoint>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>& QVector<QPoint>::operator<<(const QPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::qt_core::QPoint>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPoint> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator__6(
                self as *const crate::QVectorOfQPoint as *mut crate::QVectorOfQPoint,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QPairOfDoubleQColor>>
    for &crate::QVectorOfQPairOfDoubleQColor
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>>& QVector<QPair<double, QColor>>::operator<<(const QPair<double, QColor>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QPairOfDoubleQColor>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator__6(
                self as *const crate::QVectorOfQPairOfDoubleQColor
                    as *mut crate::QVectorOfQPairOfDoubleQColor,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>>
    for &crate::QVectorOfSelection
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfSelection>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection>& QVector<QAbstractTextDocumentLayout::Selection>::operator<<(const QAbstractTextDocumentLayout::Selection& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::q_abstract_text_document_layout::Selection>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfSelection> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_operator__6(
                self as *const crate::QVectorOfSelection as *mut crate::QVectorOfSelection,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::qt_core::QRect>> for &crate::QVectorOfQRect {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQRect>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect>& QVector<QRect>::operator<<(const QRect& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::qt_core::QRect>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRect> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator__6(
                self as *const crate::QVectorOfQRect as *mut crate::QVectorOfQRect,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::std::os::raw::c_double>> for &crate::QVectorOfDouble {
    type Output = ::cpp_core::MutRef<crate::QVectorOfDouble>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double>& QVector<double>::operator<<(const double& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::std::os::raw::c_double>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfDouble> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator__6(
                self as *const crate::QVectorOfDouble as *mut crate::QVectorOfDouble,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QTextLength>> for &crate::QVectorOfQTextLength {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQTextLength>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength>& QVector<QTextLength>::operator<<(const QTextLength& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QTextLength>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextLength> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator__6(
                self as *const crate::QVectorOfQTextLength as *mut crate::QVectorOfQTextLength,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<u32>> for &crate::QVectorOfU32 {
    type Output = ::cpp_core::MutRef<crate::QVectorOfU32>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32>& QVector<quint32>::operator<<(const quint32& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(self, t: ::cpp_core::Ref<u32>) -> ::cpp_core::MutRef<crate::QVectorOfU32> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator__6(
                self as *const crate::QVectorOfU32 as *mut crate::QVectorOfU32,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::q_text_layout::FormatRange>>
    for &crate::QVectorOfFormatRange
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfFormatRange>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange>& QVector<QTextLayout::FormatRange>::operator<<(const QTextLayout::FormatRange& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::q_text_layout::FormatRange>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFormatRange> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator__6(
                self as *const crate::QVectorOfFormatRange as *mut crate::QVectorOfFormatRange,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QTextFormat>> for &crate::QVectorOfQTextFormat {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQTextFormat>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat>& QVector<QTextFormat>::operator<<(const QTextFormat& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QTextFormat>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextFormat> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator__6(
                self as *const crate::QVectorOfQTextFormat as *mut crate::QVectorOfQTextFormat,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for &crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator<<(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator__6(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, t.as_raw_ptr())
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::qt_core::QSize>> for &crate::QVectorOfQSize {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQSize>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize>& QVector<QSize>::operator<<(const QSize& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::qt_core::QSize>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQSize> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator__6(
                self as *const crate::QVectorOfQSize as *mut crate::QVectorOfQSize,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::std::os::raw::c_float>> for &crate::QVectorOfFloat {
    type Output = ::cpp_core::MutRef<crate::QVectorOfFloat>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float>& QVector<float>::operator<<(const float& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::std::os::raw::c_float>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFloat> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator__6(
                self as *const crate::QVectorOfFloat as *mut crate::QVectorOfFloat,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<u64>> for &crate::QVectorOfU64 {
    type Output = ::cpp_core::MutRef<crate::QVectorOfU64>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64>& QVector<GLuint64>::operator<<(const GLuint64& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(self, t: ::cpp_core::Ref<u64>) -> ::cpp_core::MutRef<crate::QVectorOfU64> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator__6(
                self as *const crate::QVectorOfU64 as *mut crate::QVectorOfU64,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::qt_core::QLineF>> for &crate::QVectorOfQLineF {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQLineF>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF>& QVector<QLineF>::operator<<(const QLineF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::qt_core::QLineF>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLineF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator__6(
                self as *const crate::QVectorOfQLineF as *mut crate::QVectorOfQLineF,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::qt_core::QLine>> for &crate::QVectorOfQLine {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQLine>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine>& QVector<QLine>::operator<<(const QLine& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::qt_core::QLine>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLine> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator__6(
                self as *const crate::QVectorOfQLine as *mut crate::QVectorOfQLine,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::qt_core::QRectF>> for &crate::QVectorOfQRectF {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQRectF>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF>& QVector<QRectF>::operator<<(const QRectF& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<::qt_core::QRectF>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRectF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator__6(
                self as *const crate::QVectorOfQRectF as *mut crate::QVectorOfQRectF,
                t.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQPoint>> for &crate::QVectorOfQPoint {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQPoint>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>& QVector<QPoint>::operator<<(const QVector<QPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQPoint>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPoint> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPoint_operator__7(
                self as *const crate::QVectorOfQPoint as *mut crate::QVectorOfQPoint,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>>
    for &crate::QVectorOfQPairOfDoubleQColor
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<double, QColor>>& QVector<QPair<double, QColor>>::operator<<(const QVector<QPair<double, QColor>>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQPairOfDoubleQColor>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfDoubleQColor> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_double_QColor_operator__7(
                self as *const crate::QVectorOfQPairOfDoubleQColor
                    as *mut crate::QVectorOfQPairOfDoubleQColor,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfSelection>> for &crate::QVectorOfSelection {
    type Output = ::cpp_core::MutRef<crate::QVectorOfSelection>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QAbstractTextDocumentLayout::Selection>& QVector<QAbstractTextDocumentLayout::Selection>::operator<<(const QVector<QAbstractTextDocumentLayout::Selection>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfSelection>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfSelection> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QAbstractTextDocumentLayout_Selection_operator__7(
                self as *const crate::QVectorOfSelection as *mut crate::QVectorOfSelection,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQRect>> for &crate::QVectorOfQRect {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQRect>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRect>& QVector<QRect>::operator<<(const QVector<QRect>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRect>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRect> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRect_operator__7(
                self as *const crate::QVectorOfQRect as *mut crate::QVectorOfQRect,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfDouble>> for &crate::QVectorOfDouble {
    type Output = ::cpp_core::MutRef<crate::QVectorOfDouble>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double>& QVector<double>::operator<<(const QVector<double>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfDouble>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfDouble> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_double_operator__7(
                self as *const crate::QVectorOfDouble as *mut crate::QVectorOfDouble,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQTextLength>>
    for &crate::QVectorOfQTextLength
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfQTextLength>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLength>& QVector<QTextLength>::operator<<(const QVector<QTextLength>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQTextLength>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextLength> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLength_operator__7(
                self as *const crate::QVectorOfQTextLength as *mut crate::QVectorOfQTextLength,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfU32>> for &crate::QVectorOfU32 {
    type Output = ::cpp_core::MutRef<crate::QVectorOfU32>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<quint32>& QVector<quint32>::operator<<(const QVector<quint32>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfU32>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfU32> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_quint32_operator__7(
                self as *const crate::QVectorOfU32 as *mut crate::QVectorOfU32,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfFormatRange>>
    for &crate::QVectorOfFormatRange
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfFormatRange>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextLayout::FormatRange>& QVector<QTextLayout::FormatRange>::operator<<(const QVector<QTextLayout::FormatRange>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfFormatRange>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFormatRange> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextLayout_FormatRange_operator__7(
                self as *const crate::QVectorOfFormatRange as *mut crate::QVectorOfFormatRange,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQTextFormat>>
    for &crate::QVectorOfQTextFormat
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfQTextFormat>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QTextFormat>& QVector<QTextFormat>::operator<<(const QVector<QTextFormat>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQTextFormat>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQTextFormat> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QTextFormat_operator__7(
                self as *const crate::QVectorOfQTextFormat as *mut crate::QVectorOfQTextFormat,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>>
    for &crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    type Output = ::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>::operator<<(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_operator__7(self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag as *mut crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag, l.as_raw_ptr())
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQSize>> for &crate::QVectorOfQSize {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQSize>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QSize>& QVector<QSize>::operator<<(const QVector<QSize>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQSize>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQSize> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QSize_operator__7(
                self as *const crate::QVectorOfQSize as *mut crate::QVectorOfQSize,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfFloat>> for &crate::QVectorOfFloat {
    type Output = ::cpp_core::MutRef<crate::QVectorOfFloat>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<float>& QVector<float>::operator<<(const QVector<float>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfFloat>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfFloat> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_float_operator__7(
                self as *const crate::QVectorOfFloat as *mut crate::QVectorOfFloat,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfU64>> for &crate::QVectorOfU64 {
    type Output = ::cpp_core::MutRef<crate::QVectorOfU64>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<GLuint64>& QVector<GLuint64>::operator<<(const QVector<GLuint64>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfU64>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfU64> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_GLuint64_operator__7(
                self as *const crate::QVectorOfU64 as *mut crate::QVectorOfU64,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQLineF>> for &crate::QVectorOfQLineF {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQLineF>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLineF>& QVector<QLineF>::operator<<(const QVector<QLineF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQLineF>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLineF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLineF_operator__7(
                self as *const crate::QVectorOfQLineF as *mut crate::QVectorOfQLineF,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQLine>> for &crate::QVectorOfQLine {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQLine>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QLine>& QVector<QLine>::operator<<(const QVector<QLine>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQLine>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQLine> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QLine_operator__7(
                self as *const crate::QVectorOfQLine as *mut crate::QVectorOfQLine,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQRectF>> for &crate::QVectorOfQRectF {
    type Output = ::cpp_core::MutRef<crate::QVectorOfQRectF>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<QRectF>& QVector<QRectF>::operator<<(const QVector<QRectF>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRectF>,
    ) -> ::cpp_core::MutRef<crate::QVectorOfQRectF> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QVector_QRectF_operator__7(
                self as *const crate::QVectorOfQRectF as *mut crate::QVectorOfQRectF,
                l.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfDouble>> for crate::QVectorOfDouble {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<double>& lhs, const QVector<double>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfDouble>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_181(
            self as *const crate::QVectorOfDouble,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfU32>> for crate::QVectorOfU32 {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<quint32>& lhs, const QVector<quint32>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfU32>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_183(
            self as *const crate::QVectorOfU32,
            rhs.as_raw_ptr(),
        )
    }
}

impl
    ::cpp_core::cmp::Lt<
        ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    > for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& lhs, const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(
        &self,
        rhs: &::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_186(
            self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfFloat>> for crate::QVectorOfFloat {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<float>& lhs, const QVector<float>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfFloat>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_188(
            self as *const crate::QVectorOfFloat,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfU64>> for crate::QVectorOfU64 {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<GLuint64>& lhs, const QVector<GLuint64>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfU64>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_189(
            self as *const crate::QVectorOfU64,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfDouble>> for crate::QVectorOfDouble {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<double>& lhs, const QVector<double>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfDouble>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_197(
            self as *const crate::QVectorOfDouble,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfU32>> for crate::QVectorOfU32 {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<quint32>& lhs, const QVector<quint32>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfU32>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_199(
            self as *const crate::QVectorOfU32,
            rhs.as_raw_ptr(),
        )
    }
}

impl
    ::cpp_core::cmp::Gt<
        ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    > for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& lhs, const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(
        &self,
        rhs: &::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_202(
            self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfFloat>> for crate::QVectorOfFloat {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<float>& lhs, const QVector<float>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfFloat>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_204(
            self as *const crate::QVectorOfFloat,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfU64>> for crate::QVectorOfU64 {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<GLuint64>& lhs, const QVector<GLuint64>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfU64>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator_205(
            self as *const crate::QVectorOfU64,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfDouble>> for crate::QVectorOfDouble {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<double>& lhs, const QVector<double>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfDouble>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__172(
            self as *const crate::QVectorOfDouble,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfU32>> for crate::QVectorOfU32 {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<quint32>& lhs, const QVector<quint32>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfU32>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__174(
            self as *const crate::QVectorOfU32,
            rhs.as_raw_ptr(),
        )
    }
}

impl
    ::cpp_core::cmp::Le<
        ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    > for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& lhs, const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(
        &self,
        rhs: &::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__177(
            self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfFloat>> for crate::QVectorOfFloat {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<float>& lhs, const QVector<float>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfFloat>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__179(
            self as *const crate::QVectorOfFloat,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfU64>> for crate::QVectorOfU64 {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<GLuint64>& lhs, const QVector<GLuint64>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfU64>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__180(
            self as *const crate::QVectorOfU64,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfDouble>> for crate::QVectorOfDouble {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<double>& lhs, const QVector<double>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfDouble>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__188(
            self as *const crate::QVectorOfDouble,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfU32>> for crate::QVectorOfU32 {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<quint32>& lhs, const QVector<quint32>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfU32>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__190(
            self as *const crate::QVectorOfU32,
            rhs.as_raw_ptr(),
        )
    }
}

impl
    ::cpp_core::cmp::Ge<
        ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    > for crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& lhs, const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(
        &self,
        rhs: &::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    ) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__193(
            self as *const crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfFloat>> for crate::QVectorOfFloat {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<float>& lhs, const QVector<float>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfFloat>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__195(
            self as *const crate::QVectorOfFloat,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfU64>> for crate::QVectorOfU64 {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<GLuint64>& lhs, const QVector<GLuint64>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfU64>) -> bool {
        crate::__ffi::ctr_qt_gui_ffi_operator__196(
            self as *const crate::QVectorOfU64,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QSetOfQByteArray>> for crate::QSetOfQByteArray {
    /// <p>Returns <code>true</code> if the <i>other</i> set is equal to this set; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QSet<QByteArray>::operator==(const QSet<QByteArray>& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the <i>other</i> set is equal to this set; otherwise returns <code>false</code>.</p>
    /// <p>Two sets are considered equal if they contain the same elements.</p>
    /// <p>This function requires the value type to implement <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QSetOfQByteArray>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__(
                self as *const crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::vector_ops::Size for crate::QSetOfQByteArray {
    /// <p>Returns the number of items in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QSet<QByteArray>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qset.html#count">count</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_size(
            self as *const crate::QSetOfQByteArray,
        );
        ffi_result as usize
    }
}

impl ::cpp_core::ops::BeginMut for crate::QSetOfQByteArray {
    type Output = ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::begin()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#begin-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a non-const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    unsafe fn begin_mut(&mut self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_begin(
            self as *mut crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::Begin for crate::QSetOfQByteArray {
    type Output = ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator>;
    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::begin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#begin">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the first item in the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#constBegin">constBegin</a>() and <a href="http://doc.qt.io/qt-5/qset.html#end">end</a>().</p></div>
    #[inline(always)]
    unsafe fn begin(&self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_begin1(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::EndMut for crate::QSetOfQByteArray {
    type Output = ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::iterator QSet<QByteArray>::end()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#end-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Returns a non-const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> pointing to the imaginary item after the last item in the set.</p>
    /// <p>This function was introduced in  Qt 4.2.</p></div>
    #[inline(always)]
    unsafe fn end_mut(&mut self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::Iterator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_end(self as *mut crate::QSetOfQByteArray);
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::ops::End for crate::QSetOfQByteArray {
    type Output = ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator>;
    /// <p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the imaginary item after the last item in the set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>::const_iterator QSet<QByteArray>::end() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#end">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterator</a> positioned at the imaginary item after the last item in the set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#constEnd">constEnd</a>() and <a href="http://doc.qt.io/qt-5/qset.html#begin">begin</a>().</p></div>
    #[inline(always)]
    unsafe fn end(&self) -> ::cpp_core::CppBox<crate::q_set_of_q_byte_array::ConstIterator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_end1(
            self as *const crate::QSetOfQByteArray,
        );
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<::qt_core::QByteArray>> for &crate::QSetOfQByteArray {
    type Output = ::cpp_core::MutRef<crate::QSetOfQByteArray>;
    /// <p>Inserts a new item <i>value</i> and returns a reference to the set. If <i>value</i> already exists in the set, the set is left unchanged.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator<<(const QByteArray& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a new item <i>value</i> and returns a reference to the set. If <i>value</i> already exists in the set, the set is left unchanged.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        value: ::cpp_core::Ref<::qt_core::QByteArray>,
    ) -> ::cpp_core::MutRef<crate::QSetOfQByteArray> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__2(
                self as *const crate::QSetOfQByteArray as *mut crate::QSetOfQByteArray,
                value.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::MutRef::from_raw(ffi_result).expect("attempted to construct a null Ref")
        }
    }
}

impl ::std::ops::BitOrAssign<::cpp_core::Ref<crate::QSetOfQByteArray>> for crate::QSetOfQByteArray {
    /// <p>Same as unite(<i>other</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator|=(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-7c-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as unite(<i>other</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#operator-7c">operator|</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-and-eq">operator&amp;=</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#operator--eq">operator-=</a>().</p></div>
    #[inline(always)]
    fn bitor_assign(&mut self, other: ::cpp_core::Ref<crate::QSetOfQByteArray>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__3(
                self as *mut crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::BitOrAssign<::cpp_core::Ref<::qt_core::QByteArray>> for crate::QSetOfQByteArray {
    /// <p>Inserts a new item <i>value</i> and returns a reference to the set. If <i>value</i> already exists in the set, the set is left unchanged.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator|=(const QByteArray& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-7c-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a new item <i>value</i> and returns a reference to the set. If <i>value</i> already exists in the set, the set is left unchanged.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>().</p></div>
    #[inline(always)]
    fn bitor_assign(&mut self, value: ::cpp_core::Ref<::qt_core::QByteArray>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__4(
                self as *mut crate::QSetOfQByteArray,
                value.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::BitAndAssign<::cpp_core::Ref<crate::QSetOfQByteArray>>
    for crate::QSetOfQByteArray
{
    /// <p>Same as intersect(<i>other</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator&=(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-and-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as intersect(<i>other</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#operator-and">operator&amp;</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-7c-eq">operator|=</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#operator--eq">operator-=</a>().</p></div>
    #[inline(always)]
    fn bitand_assign(&mut self, other: ::cpp_core::Ref<crate::QSetOfQByteArray>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__5(
                self as *mut crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::BitAndAssign<::cpp_core::Ref<::qt_core::QByteArray>> for crate::QSetOfQByteArray {
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator&=(const QByteArray& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-and-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as intersect(<i>other</i>), if we consider <i>other</i> to be a set that contains the singleton <i>value</i>.</p></div>
    #[inline(always)]
    fn bitand_assign(&mut self, value: ::cpp_core::Ref<::qt_core::QByteArray>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__6(
                self as *mut crate::QSetOfQByteArray,
                value.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<crate::QSetOfQByteArray>> for crate::QSetOfQByteArray {
    /// <p>Same as unite(<i>other</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator+=(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as unite(<i>other</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#operator-7c">operator|</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-and-eq">operator&amp;=</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#operator--eq">operator-=</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, other: ::cpp_core::Ref<crate::QSetOfQByteArray>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__7(
                self as *mut crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::AddAssign<::cpp_core::Ref<::qt_core::QByteArray>> for crate::QSetOfQByteArray {
    /// <p>Inserts a new item <i>value</i> and returns a reference to the set. If <i>value</i> already exists in the set, the set is left unchanged.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator+=(const QByteArray& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts a new item <i>value</i> and returns a reference to the set. If <i>value</i> already exists in the set, the set is left unchanged.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>().</p></div>
    #[inline(always)]
    fn add_assign(&mut self, value: ::cpp_core::Ref<::qt_core::QByteArray>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__8(
                self as *mut crate::QSetOfQByteArray,
                value.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<crate::QSetOfQByteArray>> for crate::QSetOfQByteArray {
    /// <p>Same as subtract(<i>other</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator-=(const QSet<QByteArray>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator--eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as subtract(<i>other</i>).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#operator-">operator-</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-7c-eq">operator|=</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#operator-and-eq">operator&amp;=</a>().</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, other: ::cpp_core::Ref<crate::QSetOfQByteArray>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__9(
                self as *mut crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::SubAssign<::cpp_core::Ref<::qt_core::QByteArray>> for crate::QSetOfQByteArray {
    /// <p>Removes the occurrence of item <i>value</i> from the set, if it is found, and returns a reference to the set. If the <i>value</i> is not contained the set, nothing is removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray>& QSet<QByteArray>::operator-=(const QByteArray& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator--eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the occurrence of item <i>value</i> from the set, if it is found, and returns a reference to the set. If the <i>value</i> is not contained the set, nothing is removed.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>().</p></div>
    #[inline(always)]
    fn sub_assign(&mut self, value: ::cpp_core::Ref<::qt_core::QByteArray>) {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator__10(
                self as *mut crate::QSetOfQByteArray,
                value.as_raw_ptr(),
            )
        };
        let _ = ffi_result;
    }
}

impl ::std::ops::BitOr<::cpp_core::Ref<crate::QSetOfQByteArray>> for &crate::QSetOfQByteArray {
    type Output = ::cpp_core::CppBox<crate::QSetOfQByteArray>;
    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> that is the union of this set and the <i>other</i> set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray> QSet<QByteArray>::operator|(const QSet<QByteArray>& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-7c">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> that is the union of this set and the <i>other</i> set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#unite">unite</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-7c-eq">operator|=</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-and">operator&amp;</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#operator-">operator-</a>().</p></div>
    #[inline(always)]
    fn bitor(
        self,
        other: ::cpp_core::Ref<crate::QSetOfQByteArray>,
    ) -> ::cpp_core::CppBox<crate::QSetOfQByteArray> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator_(
                self as *const crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::BitAnd<::cpp_core::Ref<crate::QSetOfQByteArray>> for &crate::QSetOfQByteArray {
    type Output = ::cpp_core::CppBox<crate::QSetOfQByteArray>;
    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> that is the intersection of this set and the <i>other</i> set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray> QSet<QByteArray>::operator&(const QSet<QByteArray>& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-and">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> that is the intersection of this set and the <i>other</i> set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#intersect">intersect</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-and-eq">operator&amp;=</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-7c">operator|</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#operator-">operator-</a>().</p></div>
    #[inline(always)]
    fn bitand(
        self,
        other: ::cpp_core::Ref<crate::QSetOfQByteArray>,
    ) -> ::cpp_core::CppBox<crate::QSetOfQByteArray> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator_1(
                self as *const crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QSetOfQByteArray>> for &crate::QSetOfQByteArray {
    type Output = ::cpp_core::CppBox<crate::QSetOfQByteArray>;
    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> that is the union of this set and the <i>other</i> set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray> QSet<QByteArray>::operator+(const QSet<QByteArray>& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> that is the union of this set and the <i>other</i> set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#unite">unite</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-7c-eq">operator|=</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-and">operator&amp;</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#operator-">operator-</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        other: ::cpp_core::Ref<crate::QSetOfQByteArray>,
    ) -> ::cpp_core::CppBox<crate::QSetOfQByteArray> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator_2(
                self as *const crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Sub<::cpp_core::Ref<crate::QSetOfQByteArray>> for &crate::QSetOfQByteArray {
    type Output = ::cpp_core::CppBox<crate::QSetOfQByteArray>;
    /// <p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> that is the set difference of this set and the <i>other</i> set, i.e., this set - <i>other</i> set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSet<QByteArray> QSet<QByteArray>::operator-(const QSet<QByteArray>& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html#operator-">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a new <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> that is the set difference of this set and the <i>other</i> set, i.e., this set - <i>other</i> set.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qset.html#subtract">subtract</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator--eq">operator-=</a>(), <a href="http://doc.qt.io/qt-5/qset.html#operator-7c">operator|</a>(), and <a href="http://doc.qt.io/qt-5/qset.html#operator-and">operator&amp;</a>().</p></div>
    #[inline(always)]
    fn sub(
        self,
        other: ::cpp_core::Ref<crate::QSetOfQByteArray>,
    ) -> ::cpp_core::CppBox<crate::QSetOfQByteArray> {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_operator_3(
                self as *const crate::QSetOfQByteArray,
                other.as_raw_ptr(),
            )
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QPairOfDoubleQColor {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPair<double, QColor>::~QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_double_QColor_dQPair(
            self as *mut crate::QPairOfDoubleQColor,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPairOfIntInt {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPair<int, int>::~QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_int_int_dQPair(self as *mut crate::QPairOfIntInt)
    }
}

impl ::cpp_core::CppDeletable for crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>::~QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_QAccessibleInterface_ptr_QFlags_QAccessible_RelationFlag_dQPair(self as *mut crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag)
    }
}

impl ::cpp_core::CppDeletable for crate::QPairOfFilterFilter {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>::~QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_QOpenGLTexture_Filter_QOpenGLTexture_Filter_dQPair(
            self as *mut crate::QPairOfFilterFilter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPairOfFloatFloat {
    /// <p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QPair<float, float>::~QPair()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qpair.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> class is a template class that stores a pair of items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; can be used in your application if the STL <code>pair</code> type is not available. It stores one value of type T1 and one value of type T2. It can be used as a return value for a function that needs to return two values, or as the value type of a <a href="http://doc.qt.io/qt-5/containers.html">generic container</a>.</p>
    /// <p>Here's an example of a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a> that stores one <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> and one <code>double</code> value:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qpair.html#QPair">QPair</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> pair;
    ///
    /// </pre>
    /// <p>The components are accessible as public data members called <a href="http://doc.qt.io/qt-5/qpair.html#first-var">first</a> and <a href="http://doc.qt.io/qt-5/qpair.html#second-var">second</a>. For example:</p>
    /// <pre class="cpp">
    ///
    ///   pair<span class="operator">.</span>first <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   pair<span class="operator">.</span>second <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>Note, however, that it is almost always preferable to define a small struct to hold the result of a function with multiple return values. A struct trivially generalizes to more than two values, and allows more descriptive member names than <code>first</code> and <code>second</code>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">struct</span> Variable {
    /// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> name;
    /// &#32;     <span class="type">double</span> value;
    ///   };
    ///   Variable v;
    ///   v<span class="operator">.</span>name <span class="operator">=</span> <span class="string">"pi"</span>;
    ///   v<span class="operator">.</span>value <span class="operator">=</span> <span class="number">3.14159265358979323846</span>;
    ///
    /// </pre>
    /// <p>The advent of C++11 automatic variable type deduction (<code>auto</code>) shifts the emphasis from the type name to the name of functions and members. Thus, <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>, like <code>std::pair</code> and <code>std::tuple</code>, is mostly useful in generic (template) code, where defining a dedicated type is not possible.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>'s template data types (T1 and T2) must be <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-types">assignable data types</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; these requirements are documented on a per-function basis.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QPair_float_float_dQPair(self as *mut crate::QPairOfFloatFloat)
    }
}

impl ::cpp_core::CppDeletable for crate::QSetOfQByteArray {
    /// <p>The <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> class is a template class that provides a hash-table-based set.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QSet<QByteArray>::~QSet()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qset.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> class is a template class that provides a hash-table-based set.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores values in an unspecified order and provides very fast lookup of the values. Internally, <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;T&gt; is implemented as a <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a>.</p>
    /// <p>Here's an example <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> with <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///
    /// </pre>
    /// <p>To insert a value into the set, use <a href="http://doc.qt.io/qt-5/qset.html#insert">insert</a>():</p>
    /// <pre class="cpp">
    ///
    ///   set<span class="operator">.</span>insert(<span class="string">"one"</span>);
    ///   set<span class="operator">.</span>insert(<span class="string">"three"</span>);
    ///   set<span class="operator">.</span>insert(<span class="string">"seven"</span>);
    ///
    /// </pre>
    /// <p>Another way to insert items into the set is to use operator&lt;&lt;():</p>
    /// <pre class="cpp">
    ///
    ///   set <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"twelve"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"fifteen"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"nineteen"</span>;
    ///
    /// </pre>
    /// <p>To test whether an item belongs to the set or not, use <a href="http://doc.qt.io/qt-5/qset.html#contains">contains</a>():</p>
    /// <pre class="cpp">
    ///
    ///   <span class="keyword">if</span> (<span class="operator">!</span>set<span class="operator">.</span>contains(<span class="string">"ninety-nine"</span>))
    /// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre>
    /// <p>If you want to navigate through all the values stored in a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you can use an iterator. <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> supports both <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qsetiterator.html">QSetIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablesetiterator.html">QMutableSetIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qset-iterator.html">QSet::iterator</a> and <a href="http://doc.qt.io/qt-5/qset-const-iterator.html">QSet::const_iterator</a>). Here's how to iterate over a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>&lt;<a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *&gt; using a Java-style iterator:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qsetiterator.html">QSetIterator</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span> i(set);
    ///   <span class="keyword">while</span> (i<span class="operator">.</span>hasNext())
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> i<span class="operator">.</span>next();
    ///
    /// </pre>
    /// <p>Here's the same code, but using an STL-style iterator:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a></span> <span class="operator">*</span><span class="operator">&gt;</span><span class="operator">::</span>const_iterator i <span class="operator">=</span> set<span class="operator">.</span>constBegin();
    ///   <span class="keyword">while</span> (i <span class="operator">!</span><span class="operator">=</span> set<span class="operator">.</span>constEnd()) {
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">*</span>i;
    /// &#32;     <span class="operator">+</span><span class="operator">+</span>i;
    ///   }
    ///
    /// </pre>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a> is unordered, so an iterator's sequence cannot be assumed to be predictable. If ordering by key is required, use a <a href="http://doc.qt.io/qt-5/qmap.html">QMap</a>.</p>
    /// <p>To navigate through a <a href="http://doc.qt.io/qt-5/qset.html">QSet</a>, you can also use <a href="http://doc.qt.io/qt-5/containers.html#foreach">foreach</a>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qset.html#QSet">QSet</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> set;
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   foreach (<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> <span class="operator">&amp;</span>value<span class="operator">,</span> set)
    /// &#32;     <a href="http://doc.qt.io/qt-5/qtglobal.html#qDebug">qDebug</a>() <span class="operator">&lt;</span><span class="operator">&lt;</span> value;
    ///
    /// </pre>
    /// <p>Items can be removed from the set using <a href="http://doc.qt.io/qt-5/qset.html#remove">remove</a>(). There is also a <a href="http://doc.qt.io/qt-5/qset.html#clear">clear</a>() function that removes all items.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qset.html">QSet</a>'s value data type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. You cannot, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. In addition, the type must provide <code>operator==()</code>, and there must also be a global <a href="http://doc.qt.io/qt-5/qhash.html#qHash">qHash</a>() function that returns a hash value for an argument of the key's type. See the <a href="http://doc.qt.io/qt-5/qhash.html#qhash">QHash</a> documentation for a list of types supported by <a href="http://doc.qt.io/qt-5/qhash.html#qHash">qHash</a>().</p>
    /// <p>Internally, <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> uses a hash table to perform lookups. The hash table automatically grows and shrinks to provide fast lookups without wasting memory. You can still control the size of the hash table by calling <a href="http://doc.qt.io/qt-5/qset.html#reserve">reserve</a>(), if you already know approximately how many elements the <a href="http://doc.qt.io/qt-5/qset.html">QSet</a> will contain, but this isn't necessary to obtain good performance. You can also call <a href="http://doc.qt.io/qt-5/qset.html#capacity">capacity</a>() to retrieve the hash table's size.</p></div>
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_QSet_QByteArray_dQSet(self as *mut crate::QSetOfQByteArray)
    }
}

impl ::cpp_core::StaticDowncast<crate::QInputEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QInputEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr(
                self as *const crate::QInputEvent as *mut crate::QInputEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr(self as *mut crate::QInputEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QInputEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* dynamic_cast<QInputEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QInputEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* dynamic_cast<QInputEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QInputEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QEnterEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QEnterEvent* static_cast<QEnterEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEnterEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEnterEvent* static_cast<QEnterEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QEnterEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEnterEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QEnterEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QEnterEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QEnterEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QEnterEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QEnterEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QEnterEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QEnterEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QEnterEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr1(
                self as *const crate::QEnterEvent as *mut crate::QEnterEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QEnterEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QEnterEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr1(self as *mut crate::QEnterEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QEnterEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QEnterEvent* dynamic_cast<QEnterEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QEnterEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEnterEvent* dynamic_cast<QEnterEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QEnterEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QEnterEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMouseEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QMouseEvent* static_cast<QMouseEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QMouseEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QMouseEvent* static_cast<QMouseEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QMouseEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QMouseEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QInputEvent> for crate::QMouseEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QMouseEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMouseEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QMouseEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QMouseEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QMouseEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QMouseEvent {
    type Target = crate::QInputEvent;
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QMouseEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr1(
                self as *const crate::QMouseEvent as *mut crate::QMouseEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QMouseEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QMouseEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr1(
                self as *mut crate::QMouseEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QMouseEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QMouseEvent* dynamic_cast<QMouseEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QMouseEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QMouseEvent* dynamic_cast<QMouseEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QMouseEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QMouseEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMouseEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QMouseEvent* static_cast<QMouseEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QMouseEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QMouseEvent* static_cast<QMouseEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QMouseEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QMouseEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QMouseEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QMouseEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMouseEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr2(
            ptr.as_raw_ptr() as *mut crate::QMouseEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QMouseEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QMouseEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMouseEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QMouseEvent* dynamic_cast<QMouseEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QMouseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QMouseEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QMouseEvent* dynamic_cast<QMouseEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QMouseEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QMouseEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QHoverEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QHoverEvent* static_cast<QHoverEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QHoverEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QHoverEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QHoverEvent* static_cast<QHoverEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QHoverEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QHoverEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QInputEvent> for crate::QHoverEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QHoverEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QHoverEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr2(
            ptr.as_raw_ptr() as *mut crate::QHoverEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QHoverEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QHoverEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QHoverEvent {
    type Target = crate::QInputEvent;
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QHoverEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr2(
                self as *const crate::QHoverEvent as *mut crate::QHoverEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QHoverEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QHoverEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr2(
                self as *mut crate::QHoverEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QHoverEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QHoverEvent* dynamic_cast<QHoverEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QHoverEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QHoverEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QHoverEvent* dynamic_cast<QHoverEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QHoverEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QHoverEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QHoverEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QHoverEvent* static_cast<QHoverEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QHoverEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QHoverEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QHoverEvent* static_cast<QHoverEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QHoverEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QHoverEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QHoverEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHoverEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QHoverEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr3(
            ptr.as_raw_ptr() as *mut crate::QHoverEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHoverEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QHoverEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QHoverEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QHoverEvent* dynamic_cast<QHoverEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QHoverEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QHoverEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QHoverEvent* dynamic_cast<QHoverEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QHoverEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QHoverEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QWheelEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QWheelEvent* static_cast<QWheelEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWheelEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWheelEvent* static_cast<QWheelEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QWheelEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QWheelEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QInputEvent> for crate::QWheelEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QWheelEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWheelEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr3(
            ptr.as_raw_ptr() as *mut crate::QWheelEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QWheelEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWheelEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QWheelEvent {
    type Target = crate::QInputEvent;
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QWheelEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr3(
                self as *const crate::QWheelEvent as *mut crate::QWheelEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QWheelEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QWheelEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr3(
                self as *mut crate::QWheelEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QWheelEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QWheelEvent* dynamic_cast<QWheelEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWheelEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWheelEvent* dynamic_cast<QWheelEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QWheelEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWheelEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QWheelEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QWheelEvent* static_cast<QWheelEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWheelEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWheelEvent* static_cast<QWheelEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QWheelEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QWheelEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QWheelEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWheelEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWheelEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr4(
            ptr.as_raw_ptr() as *mut crate::QWheelEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWheelEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWheelEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QWheelEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QWheelEvent* dynamic_cast<QWheelEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QWheelEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWheelEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWheelEvent* dynamic_cast<QWheelEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QWheelEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWheelEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTabletEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QTabletEvent* static_cast<QTabletEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QTabletEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTabletEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTabletEvent* static_cast<QTabletEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QTabletEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTabletEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QInputEvent> for crate::QTabletEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QTabletEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTabletEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr4(
            ptr.as_raw_ptr() as *mut crate::QTabletEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QTabletEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTabletEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTabletEvent {
    type Target = crate::QInputEvent;
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QTabletEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr4(
                self as *const crate::QTabletEvent as *mut crate::QTabletEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTabletEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QTabletEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr4(
                self as *mut crate::QTabletEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTabletEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QTabletEvent* dynamic_cast<QTabletEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QTabletEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTabletEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTabletEvent* dynamic_cast<QTabletEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QTabletEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTabletEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTabletEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QTabletEvent* static_cast<QTabletEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QTabletEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTabletEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTabletEvent* static_cast<QTabletEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QTabletEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTabletEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QTabletEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QTabletEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTabletEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr5(
            ptr.as_raw_ptr() as *mut crate::QTabletEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QTabletEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTabletEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr5(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTabletEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QTabletEvent* dynamic_cast<QTabletEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QTabletEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTabletEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTabletEvent* dynamic_cast<QTabletEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QTabletEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTabletEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QNativeGestureEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent* static_cast<QNativeGestureEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QNativeGestureEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent* static_cast<QNativeGestureEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QNativeGestureEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QNativeGestureEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QInputEvent> for crate::QNativeGestureEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QNativeGestureEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNativeGestureEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr5(
            ptr.as_raw_ptr() as *mut crate::QNativeGestureEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QNativeGestureEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QNativeGestureEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr5(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QNativeGestureEvent {
    type Target = crate::QInputEvent;
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QNativeGestureEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr5(
                self as *const crate::QNativeGestureEvent as *mut crate::QNativeGestureEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QNativeGestureEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QNativeGestureEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr5(
                self as *mut crate::QNativeGestureEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QNativeGestureEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent* dynamic_cast<QNativeGestureEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QNativeGestureEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent* dynamic_cast<QNativeGestureEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QNativeGestureEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QNativeGestureEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QNativeGestureEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent* static_cast<QNativeGestureEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QNativeGestureEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent* static_cast<QNativeGestureEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QNativeGestureEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QNativeGestureEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QNativeGestureEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QNativeGestureEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNativeGestureEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr6(
            ptr.as_raw_ptr() as *mut crate::QNativeGestureEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QNativeGestureEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QNativeGestureEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr6(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QNativeGestureEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent* dynamic_cast<QNativeGestureEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QNativeGestureEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QNativeGestureEvent* dynamic_cast<QNativeGestureEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QNativeGestureEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QNativeGestureEvent_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QKeyEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QKeyEvent* static_cast<QKeyEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QKeyEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QKeyEvent* static_cast<QKeyEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QKeyEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QKeyEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QInputEvent> for crate::QKeyEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QKeyEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QKeyEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr6(
            ptr.as_raw_ptr() as *mut crate::QKeyEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QKeyEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QKeyEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr6(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QKeyEvent {
    type Target = crate::QInputEvent;
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QKeyEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr6(
                self as *const crate::QKeyEvent as *mut crate::QKeyEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QKeyEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QKeyEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr6(self as *mut crate::QKeyEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QKeyEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QKeyEvent* dynamic_cast<QKeyEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QKeyEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QKeyEvent* dynamic_cast<QKeyEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QKeyEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QKeyEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QKeyEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QKeyEvent* static_cast<QKeyEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QKeyEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QKeyEvent* static_cast<QKeyEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QKeyEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QKeyEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QKeyEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QKeyEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QKeyEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr7(
            ptr.as_raw_ptr() as *mut crate::QKeyEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QKeyEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QKeyEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr7(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QKeyEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QKeyEvent* dynamic_cast<QKeyEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QKeyEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QKeyEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QKeyEvent* dynamic_cast<QKeyEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QKeyEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QKeyEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFocusEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QFocusEvent* static_cast<QFocusEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QFocusEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QFocusEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QFocusEvent* static_cast<QFocusEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QFocusEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QFocusEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QFocusEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QFocusEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFocusEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr8(
            ptr.as_raw_ptr() as *mut crate::QFocusEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QFocusEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QFocusEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr8(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QFocusEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QFocusEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr8(
                self as *const crate::QFocusEvent as *mut crate::QFocusEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QFocusEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QFocusEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr8(self as *mut crate::QFocusEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QFocusEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QFocusEvent* dynamic_cast<QFocusEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QFocusEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QFocusEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QFocusEvent* dynamic_cast<QFocusEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QFocusEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QFocusEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPaintEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QPaintEvent* static_cast<QPaintEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QPaintEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintEvent* static_cast<QPaintEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QPaintEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QPaintEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QPaintEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPaintEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr9(
            ptr.as_raw_ptr() as *mut crate::QPaintEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QPaintEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr9(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPaintEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QPaintEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr9(
                self as *const crate::QPaintEvent as *mut crate::QPaintEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPaintEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QPaintEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr9(self as *mut crate::QPaintEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPaintEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QPaintEvent* dynamic_cast<QPaintEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QPaintEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintEvent* dynamic_cast<QPaintEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QPaintEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMoveEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QMoveEvent* static_cast<QMoveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QMoveEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QMoveEvent* static_cast<QMoveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QMoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QMoveEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QMoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMoveEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr10(
            ptr.as_raw_ptr() as *mut crate::QMoveEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QMoveEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr10(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QMoveEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QMoveEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr10(
                self as *const crate::QMoveEvent as *mut crate::QMoveEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QMoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QMoveEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr10(self as *mut crate::QMoveEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QMoveEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QMoveEvent* dynamic_cast<QMoveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QMoveEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QMoveEvent* dynamic_cast<QMoveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QMoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QMoveEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QExposeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QExposeEvent* static_cast<QExposeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QExposeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QExposeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QExposeEvent* static_cast<QExposeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QExposeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QExposeEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QExposeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QExposeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QExposeEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr11(
            ptr.as_raw_ptr() as *mut crate::QExposeEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QExposeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QExposeEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr11(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QExposeEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QExposeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr11(
                self as *const crate::QExposeEvent as *mut crate::QExposeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QExposeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QExposeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr11(self as *mut crate::QExposeEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QExposeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QExposeEvent* dynamic_cast<QExposeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QExposeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QExposeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QExposeEvent* dynamic_cast<QExposeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QExposeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QExposeEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPlatformSurfaceEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QPlatformSurfaceEvent* static_cast<QPlatformSurfaceEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QPlatformSurfaceEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPlatformSurfaceEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPlatformSurfaceEvent* static_cast<QPlatformSurfaceEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QPlatformSurfaceEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPlatformSurfaceEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QPlatformSurfaceEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QPlatformSurfaceEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPlatformSurfaceEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr12(
            ptr.as_raw_ptr() as *mut crate::QPlatformSurfaceEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QPlatformSurfaceEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPlatformSurfaceEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr12(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPlatformSurfaceEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QPlatformSurfaceEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr12(
                self as *const crate::QPlatformSurfaceEvent as *mut crate::QPlatformSurfaceEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPlatformSurfaceEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QPlatformSurfaceEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr12(
                self as *mut crate::QPlatformSurfaceEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPlatformSurfaceEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QPlatformSurfaceEvent* dynamic_cast<QPlatformSurfaceEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QPlatformSurfaceEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPlatformSurfaceEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPlatformSurfaceEvent* dynamic_cast<QPlatformSurfaceEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QPlatformSurfaceEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPlatformSurfaceEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QResizeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QResizeEvent* static_cast<QResizeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QResizeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QResizeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QResizeEvent* static_cast<QResizeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QResizeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QResizeEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QResizeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QResizeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QResizeEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr13(
            ptr.as_raw_ptr() as *mut crate::QResizeEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QResizeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QResizeEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr13(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QResizeEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QResizeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr13(
                self as *const crate::QResizeEvent as *mut crate::QResizeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QResizeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QResizeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr13(self as *mut crate::QResizeEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QResizeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QResizeEvent* dynamic_cast<QResizeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QResizeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QResizeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QResizeEvent* dynamic_cast<QResizeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QResizeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QResizeEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCloseEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QCloseEvent* static_cast<QCloseEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QCloseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QCloseEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QCloseEvent* static_cast<QCloseEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QCloseEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QCloseEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QCloseEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QCloseEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCloseEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr14(
            ptr.as_raw_ptr() as *mut crate::QCloseEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QCloseEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QCloseEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr14(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QCloseEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QCloseEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr14(
                self as *const crate::QCloseEvent as *mut crate::QCloseEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QCloseEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QCloseEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr14(self as *mut crate::QCloseEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QCloseEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QCloseEvent* dynamic_cast<QCloseEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QCloseEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QCloseEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QCloseEvent* dynamic_cast<QCloseEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QCloseEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QCloseEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QIconDragEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QIconDragEvent* static_cast<QIconDragEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QIconDragEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QIconDragEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QIconDragEvent* static_cast<QIconDragEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QIconDragEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QIconDragEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QIconDragEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QIconDragEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QIconDragEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr15(
            ptr.as_raw_ptr() as *mut crate::QIconDragEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QIconDragEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QIconDragEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr15(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QIconDragEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QIconDragEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr15(
                self as *const crate::QIconDragEvent as *mut crate::QIconDragEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QIconDragEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QIconDragEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr15(
                self as *mut crate::QIconDragEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QIconDragEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QIconDragEvent* dynamic_cast<QIconDragEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QIconDragEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QIconDragEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QIconDragEvent* dynamic_cast<QIconDragEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QIconDragEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QIconDragEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QShowEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QShowEvent* static_cast<QShowEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QShowEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QShowEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QShowEvent* static_cast<QShowEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QShowEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QShowEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QShowEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QShowEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShowEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr16(
            ptr.as_raw_ptr() as *mut crate::QShowEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QShowEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QShowEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr16(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QShowEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QShowEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr16(
                self as *const crate::QShowEvent as *mut crate::QShowEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QShowEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QShowEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr16(self as *mut crate::QShowEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QShowEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QShowEvent* dynamic_cast<QShowEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QShowEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QShowEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QShowEvent* dynamic_cast<QShowEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QShowEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QShowEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QHideEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QHideEvent* static_cast<QHideEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QHideEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QHideEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QHideEvent* static_cast<QHideEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QHideEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QHideEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QHideEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHideEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QHideEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr17(
            ptr.as_raw_ptr() as *mut crate::QHideEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHideEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QHideEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr17(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QHideEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHideEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr17(
                self as *const crate::QHideEvent as *mut crate::QHideEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QHideEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHideEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr17(self as *mut crate::QHideEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QHideEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QHideEvent* dynamic_cast<QHideEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QHideEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QHideEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QHideEvent* dynamic_cast<QHideEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QHideEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QHideEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QContextMenuEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent* static_cast<QContextMenuEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QContextMenuEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent* static_cast<QContextMenuEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QContextMenuEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QContextMenuEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QInputEvent> for crate::QContextMenuEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QContextMenuEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QContextMenuEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr7(
            ptr.as_raw_ptr() as *mut crate::QContextMenuEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QContextMenuEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QContextMenuEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr7(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QContextMenuEvent {
    type Target = crate::QInputEvent;
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QContextMenuEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr7(
                self as *const crate::QContextMenuEvent as *mut crate::QContextMenuEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QContextMenuEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QContextMenuEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr7(
                self as *mut crate::QContextMenuEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QContextMenuEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent* dynamic_cast<QContextMenuEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QContextMenuEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent* dynamic_cast<QContextMenuEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QContextMenuEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QContextMenuEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QContextMenuEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent* static_cast<QContextMenuEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QContextMenuEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent* static_cast<QContextMenuEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QContextMenuEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QContextMenuEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QContextMenuEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QContextMenuEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QContextMenuEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr18(
            ptr.as_raw_ptr() as *mut crate::QContextMenuEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QContextMenuEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QContextMenuEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr18(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QContextMenuEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent* dynamic_cast<QContextMenuEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QContextMenuEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QContextMenuEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QContextMenuEvent* dynamic_cast<QContextMenuEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QContextMenuEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QContextMenuEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QInputMethodEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent* static_cast<QInputMethodEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputMethodEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputMethodEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent* static_cast<QInputMethodEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputMethodEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputMethodEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QInputMethodEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputMethodEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QInputMethodEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr19(
            ptr.as_raw_ptr() as *mut crate::QInputMethodEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputMethodEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputMethodEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr19(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QInputMethodEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputMethodEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr19(
                self as *const crate::QInputMethodEvent as *mut crate::QInputMethodEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QInputMethodEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputMethodEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr19(
                self as *mut crate::QInputMethodEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QInputMethodEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent* dynamic_cast<QInputMethodEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputMethodEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QInputMethodEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputMethodEvent* dynamic_cast<QInputMethodEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputMethodEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QInputMethodEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QInputMethodQueryEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputMethodQueryEvent* static_cast<QInputMethodQueryEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputMethodQueryEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputMethodQueryEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputMethodQueryEvent* static_cast<QInputMethodQueryEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputMethodQueryEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputMethodQueryEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QInputMethodQueryEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputMethodQueryEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QInputMethodQueryEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr20(
            ptr.as_raw_ptr() as *mut crate::QInputMethodQueryEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputMethodQueryEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputMethodQueryEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr20(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QInputMethodQueryEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputMethodQueryEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr20(
                self as *const crate::QInputMethodQueryEvent as *mut crate::QInputMethodQueryEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QInputMethodQueryEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QInputMethodQueryEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr20(
                self as *mut crate::QInputMethodQueryEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QInputMethodQueryEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputMethodQueryEvent* dynamic_cast<QInputMethodQueryEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputMethodQueryEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QInputMethodQueryEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputMethodQueryEvent* dynamic_cast<QInputMethodQueryEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputMethodQueryEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QInputMethodQueryEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDropEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QDropEvent* static_cast<QDropEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QDropEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDropEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDropEvent* static_cast<QDropEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDropEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDropEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QDropEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDropEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr21(
            ptr.as_raw_ptr() as *mut crate::QDropEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDropEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr21(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDropEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr21(
                self as *const crate::QDropEvent as *mut crate::QDropEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QDropEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr21(self as *mut crate::QDropEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDropEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QDropEvent* dynamic_cast<QDropEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QDropEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDropEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDropEvent* dynamic_cast<QDropEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDropEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDropEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDragMoveEvent> for crate::QDropEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* static_cast<QDragMoveEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QDropEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragMoveEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QDropEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* static_cast<QDragMoveEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDropEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragMoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragMoveEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QDropEvent> for crate::QDragMoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QDropEvent* static_cast<QDropEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDragMoveEvent>,
    ) -> ::cpp_core::Ptr<crate::QDropEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDropEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QDragMoveEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDropEvent* static_cast<QDropEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDragMoveEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDropEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDropEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDragMoveEvent {
    type Target = crate::QDropEvent;
    /// Calls C++ function: <span style='color: green;'>```QDropEvent* static_cast<QDropEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QDropEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDropEvent_ptr1(
                self as *const crate::QDragMoveEvent as *mut crate::QDragMoveEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QDragMoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QDropEvent* static_cast<QDropEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QDropEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDropEvent_ptr1(
                self as *mut crate::QDragMoveEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDragMoveEvent> for crate::QDropEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* dynamic_cast<QDragMoveEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QDropEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragMoveEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QDropEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* dynamic_cast<QDragMoveEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDropEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragMoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragMoveEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDragMoveEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* static_cast<QDragMoveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragMoveEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* static_cast<QDragMoveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragMoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragMoveEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QDragMoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDragMoveEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr22(
            ptr.as_raw_ptr() as *mut crate::QDragMoveEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDragMoveEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr22(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDragMoveEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* dynamic_cast<QDragMoveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragMoveEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* dynamic_cast<QDragMoveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragMoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragMoveEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDragEnterEvent> for crate::QDragMoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* static_cast<QDragEnterEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QDragMoveEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragEnterEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QDragMoveEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* static_cast<QDragEnterEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDragMoveEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragEnterEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragEnterEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QDragMoveEvent> for crate::QDragEnterEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* static_cast<QDragMoveEvent*>(QDragEnterEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDragEnterEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragMoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragMoveEvent_ptr2(
            ptr.as_raw_ptr() as *mut crate::QDragEnterEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* static_cast<QDragMoveEvent*>(QDragEnterEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDragEnterEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragMoveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragMoveEvent_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDragEnterEvent {
    type Target = crate::QDragMoveEvent;
    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* static_cast<QDragMoveEvent*>(QDragEnterEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QDragMoveEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragMoveEvent_ptr2(
                self as *const crate::QDragEnterEvent as *mut crate::QDragEnterEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QDragEnterEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragMoveEvent* static_cast<QDragMoveEvent*>(QDragEnterEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QDragMoveEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragMoveEvent_ptr2(
                self as *mut crate::QDragEnterEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDragEnterEvent> for crate::QDragMoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* dynamic_cast<QDragEnterEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QDragMoveEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragEnterEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QDragMoveEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* dynamic_cast<QDragEnterEvent*>(QDragMoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDragMoveEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragEnterEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragEnterEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDragEnterEvent> for crate::QDropEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* static_cast<QDragEnterEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QDropEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragEnterEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QDropEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* static_cast<QDragEnterEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDropEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragEnterEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragEnterEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QDropEvent> for crate::QDragEnterEvent {
    /// Calls C++ function: <span style='color: green;'>```QDropEvent* static_cast<QDropEvent*>(QDragEnterEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDragEnterEvent>,
    ) -> ::cpp_core::Ptr<crate::QDropEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDropEvent_ptr2(
            ptr.as_raw_ptr() as *mut crate::QDragEnterEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDropEvent* static_cast<QDropEvent*>(QDragEnterEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDragEnterEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDropEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDropEvent_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDragEnterEvent> for crate::QDropEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* dynamic_cast<QDragEnterEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QDropEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragEnterEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QDropEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* dynamic_cast<QDragEnterEvent*>(QDropEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDropEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragEnterEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragEnterEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDragEnterEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* static_cast<QDragEnterEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragEnterEvent_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* static_cast<QDragEnterEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragEnterEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragEnterEvent_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QDragEnterEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDragEnterEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDragEnterEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr23(
            ptr.as_raw_ptr() as *mut crate::QDragEnterEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDragEnterEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDragEnterEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr23(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDragEnterEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* dynamic_cast<QDragEnterEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragEnterEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragEnterEvent_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragEnterEvent* dynamic_cast<QDragEnterEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragEnterEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragEnterEvent_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDragLeaveEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragLeaveEvent* static_cast<QDragLeaveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragLeaveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragLeaveEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragLeaveEvent* static_cast<QDragLeaveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragLeaveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDragLeaveEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QDragLeaveEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDragLeaveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDragLeaveEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr24(
            ptr.as_raw_ptr() as *mut crate::QDragLeaveEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDragLeaveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDragLeaveEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr24(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDragLeaveEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDragLeaveEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr24(
                self as *const crate::QDragLeaveEvent as *mut crate::QDragLeaveEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QDragLeaveEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QDragLeaveEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr24(
                self as *mut crate::QDragLeaveEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDragLeaveEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QDragLeaveEvent* dynamic_cast<QDragLeaveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QDragLeaveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragLeaveEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDragLeaveEvent* dynamic_cast<QDragLeaveEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QDragLeaveEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDragLeaveEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QHelpEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QHelpEvent* static_cast<QHelpEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QHelpEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QHelpEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QHelpEvent* static_cast<QHelpEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QHelpEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QHelpEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QHelpEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHelpEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QHelpEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr25(
            ptr.as_raw_ptr() as *mut crate::QHelpEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHelpEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QHelpEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr25(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QHelpEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHelpEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr25(
                self as *const crate::QHelpEvent as *mut crate::QHelpEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QHelpEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QHelpEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr25(self as *mut crate::QHelpEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QHelpEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QHelpEvent* dynamic_cast<QHelpEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QHelpEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QHelpEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QHelpEvent* dynamic_cast<QHelpEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QHelpEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QHelpEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStatusTipEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QStatusTipEvent* static_cast<QStatusTipEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QStatusTipEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QStatusTipEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QStatusTipEvent* static_cast<QStatusTipEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QStatusTipEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QStatusTipEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QStatusTipEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QStatusTipEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStatusTipEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr26(
            ptr.as_raw_ptr() as *mut crate::QStatusTipEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QStatusTipEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QStatusTipEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr26(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QStatusTipEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QStatusTipEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr26(
                self as *const crate::QStatusTipEvent as *mut crate::QStatusTipEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QStatusTipEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QStatusTipEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr26(
                self as *mut crate::QStatusTipEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QStatusTipEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QStatusTipEvent* dynamic_cast<QStatusTipEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QStatusTipEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QStatusTipEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QStatusTipEvent* dynamic_cast<QStatusTipEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QStatusTipEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QStatusTipEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QWhatsThisClickedEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QWhatsThisClickedEvent* static_cast<QWhatsThisClickedEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QWhatsThisClickedEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWhatsThisClickedEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWhatsThisClickedEvent* static_cast<QWhatsThisClickedEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QWhatsThisClickedEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWhatsThisClickedEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QWhatsThisClickedEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWhatsThisClickedEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWhatsThisClickedEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr27(
            ptr.as_raw_ptr() as *mut crate::QWhatsThisClickedEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWhatsThisClickedEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWhatsThisClickedEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr27(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QWhatsThisClickedEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWhatsThisClickedEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr27(
                self as *const crate::QWhatsThisClickedEvent as *mut crate::QWhatsThisClickedEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QWhatsThisClickedEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWhatsThisClickedEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr27(
                self as *mut crate::QWhatsThisClickedEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QWhatsThisClickedEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QWhatsThisClickedEvent* dynamic_cast<QWhatsThisClickedEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QWhatsThisClickedEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWhatsThisClickedEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWhatsThisClickedEvent* dynamic_cast<QWhatsThisClickedEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QWhatsThisClickedEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWhatsThisClickedEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QActionEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QActionEvent* static_cast<QActionEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QActionEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QActionEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QActionEvent* static_cast<QActionEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QActionEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QActionEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QActionEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QActionEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QActionEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr28(
            ptr.as_raw_ptr() as *mut crate::QActionEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QActionEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QActionEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr28(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QActionEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QActionEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr28(
                self as *const crate::QActionEvent as *mut crate::QActionEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QActionEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QActionEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr28(self as *mut crate::QActionEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QActionEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QActionEvent* dynamic_cast<QActionEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QActionEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QActionEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QActionEvent* dynamic_cast<QActionEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QActionEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QActionEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFileOpenEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QFileOpenEvent* static_cast<QFileOpenEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QFileOpenEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QFileOpenEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QFileOpenEvent* static_cast<QFileOpenEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QFileOpenEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QFileOpenEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QFileOpenEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QFileOpenEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFileOpenEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr29(
            ptr.as_raw_ptr() as *mut crate::QFileOpenEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QFileOpenEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QFileOpenEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr29(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QFileOpenEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QFileOpenEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr29(
                self as *const crate::QFileOpenEvent as *mut crate::QFileOpenEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QFileOpenEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QFileOpenEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr29(
                self as *mut crate::QFileOpenEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QFileOpenEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QFileOpenEvent* dynamic_cast<QFileOpenEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QFileOpenEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QFileOpenEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QFileOpenEvent* dynamic_cast<QFileOpenEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QFileOpenEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QFileOpenEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QToolBarChangeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QToolBarChangeEvent* static_cast<QToolBarChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QToolBarChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QToolBarChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QToolBarChangeEvent* static_cast<QToolBarChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QToolBarChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QToolBarChangeEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QToolBarChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QToolBarChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QToolBarChangeEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr30(
            ptr.as_raw_ptr() as *mut crate::QToolBarChangeEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QToolBarChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QToolBarChangeEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr30(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QToolBarChangeEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QToolBarChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr30(
                self as *const crate::QToolBarChangeEvent as *mut crate::QToolBarChangeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QToolBarChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QToolBarChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr30(
                self as *mut crate::QToolBarChangeEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QToolBarChangeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QToolBarChangeEvent* dynamic_cast<QToolBarChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QToolBarChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QToolBarChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QToolBarChangeEvent* dynamic_cast<QToolBarChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QToolBarChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QToolBarChangeEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QShortcutEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QShortcutEvent* static_cast<QShortcutEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QShortcutEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QShortcutEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QShortcutEvent* static_cast<QShortcutEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QShortcutEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QShortcutEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QShortcutEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QShortcutEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShortcutEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr31(
            ptr.as_raw_ptr() as *mut crate::QShortcutEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QShortcutEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QShortcutEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr31(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QShortcutEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QShortcutEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr31(
                self as *const crate::QShortcutEvent as *mut crate::QShortcutEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QShortcutEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QShortcutEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr31(
                self as *mut crate::QShortcutEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QShortcutEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QShortcutEvent* dynamic_cast<QShortcutEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QShortcutEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QShortcutEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QShortcutEvent* dynamic_cast<QShortcutEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QShortcutEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QShortcutEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QWindowStateChangeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QWindowStateChangeEvent* static_cast<QWindowStateChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QWindowStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindowStateChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindowStateChangeEvent* static_cast<QWindowStateChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QWindowStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindowStateChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QWindowStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWindowStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWindowStateChangeEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr32(
            ptr.as_raw_ptr() as *mut crate::QWindowStateChangeEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWindowStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindowStateChangeEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr32(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QWindowStateChangeEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWindowStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr32(
                self as *const crate::QWindowStateChangeEvent
                    as *mut crate::QWindowStateChangeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QWindowStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QWindowStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr32(
                self as *mut crate::QWindowStateChangeEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QWindowStateChangeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QWindowStateChangeEvent* dynamic_cast<QWindowStateChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QWindowStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWindowStateChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindowStateChangeEvent* dynamic_cast<QWindowStateChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QWindowStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWindowStateChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTouchEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent* static_cast<QTouchEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTouchEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTouchEvent* static_cast<QTouchEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QTouchEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTouchEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QInputEvent> for crate::QTouchEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QTouchEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTouchEvent>,
    ) -> ::cpp_core::Ptr<crate::QInputEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr8(
            ptr.as_raw_ptr() as *mut crate::QTouchEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QTouchEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTouchEvent>,
    ) -> ::cpp_core::MutPtr<crate::QInputEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr8(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTouchEvent {
    type Target = crate::QInputEvent;
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QTouchEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr8(
                self as *const crate::QTouchEvent as *mut crate::QTouchEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTouchEvent {
    /// Calls C++ function: <span style='color: green;'>```QInputEvent* static_cast<QInputEvent*>(QTouchEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QInputEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputEvent_ptr8(
                self as *mut crate::QTouchEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTouchEvent> for crate::QInputEvent {
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent* dynamic_cast<QTouchEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QInputEvent>,
    ) -> ::cpp_core::Ptr<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTouchEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QInputEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTouchEvent* dynamic_cast<QTouchEvent*>(QInputEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputEvent>,
    ) -> ::cpp_core::MutPtr<crate::QTouchEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTouchEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTouchEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent* static_cast<QTouchEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTouchEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTouchEvent* static_cast<QTouchEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QTouchEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTouchEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QTouchEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QTouchEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTouchEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr33(
            ptr.as_raw_ptr() as *mut crate::QTouchEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QTouchEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTouchEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr33(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTouchEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QTouchEvent* dynamic_cast<QTouchEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QTouchEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTouchEvent_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTouchEvent* dynamic_cast<QTouchEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QTouchEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTouchEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QScrollPrepareEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QScrollPrepareEvent* static_cast<QScrollPrepareEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QScrollPrepareEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QScrollPrepareEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QScrollPrepareEvent* static_cast<QScrollPrepareEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QScrollPrepareEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QScrollPrepareEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QScrollPrepareEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScrollPrepareEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScrollPrepareEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr34(
            ptr.as_raw_ptr() as *mut crate::QScrollPrepareEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScrollPrepareEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QScrollPrepareEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr34(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QScrollPrepareEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScrollPrepareEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr34(
                self as *const crate::QScrollPrepareEvent as *mut crate::QScrollPrepareEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QScrollPrepareEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScrollPrepareEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr34(
                self as *mut crate::QScrollPrepareEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QScrollPrepareEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QScrollPrepareEvent* dynamic_cast<QScrollPrepareEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QScrollPrepareEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QScrollPrepareEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QScrollPrepareEvent* dynamic_cast<QScrollPrepareEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QScrollPrepareEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QScrollPrepareEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QScrollEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QScrollEvent* static_cast<QScrollEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QScrollEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QScrollEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QScrollEvent* static_cast<QScrollEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QScrollEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QScrollEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QScrollEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScrollEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScrollEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr35(
            ptr.as_raw_ptr() as *mut crate::QScrollEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScrollEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QScrollEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr35(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QScrollEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScrollEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr35(
                self as *const crate::QScrollEvent as *mut crate::QScrollEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QScrollEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScrollEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr35(self as *mut crate::QScrollEvent)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QScrollEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QScrollEvent* dynamic_cast<QScrollEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QScrollEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QScrollEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QScrollEvent* dynamic_cast<QScrollEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QScrollEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QScrollEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QScreenOrientationChangeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QScreenOrientationChangeEvent* static_cast<QScreenOrientationChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QScreenOrientationChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QScreenOrientationChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QScreenOrientationChangeEvent* static_cast<QScreenOrientationChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QScreenOrientationChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QScreenOrientationChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QScreenOrientationChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScreenOrientationChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScreenOrientationChangeEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr36(
            ptr.as_raw_ptr() as *mut crate::QScreenOrientationChangeEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScreenOrientationChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QScreenOrientationChangeEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr36(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QScreenOrientationChangeEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScreenOrientationChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr36(
                self as *const crate::QScreenOrientationChangeEvent
                    as *mut crate::QScreenOrientationChangeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QScreenOrientationChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QScreenOrientationChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr36(
                self as *mut crate::QScreenOrientationChangeEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QScreenOrientationChangeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QScreenOrientationChangeEvent* dynamic_cast<QScreenOrientationChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QScreenOrientationChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QScreenOrientationChangeEvent_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QScreenOrientationChangeEvent* dynamic_cast<QScreenOrientationChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QScreenOrientationChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QScreenOrientationChangeEvent_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QApplicationStateChangeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QApplicationStateChangeEvent* static_cast<QApplicationStateChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QApplicationStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QApplicationStateChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QApplicationStateChangeEvent* static_cast<QApplicationStateChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QApplicationStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QApplicationStateChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QEvent> for crate::QApplicationStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QApplicationStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QApplicationStateChangeEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr37(
            ptr.as_raw_ptr() as *mut crate::QApplicationStateChangeEvent
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QApplicationStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QApplicationStateChangeEvent>,
    ) -> ::cpp_core::MutPtr<::qt_core::QEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr37(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QApplicationStateChangeEvent {
    type Target = ::qt_core::QEvent;
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QApplicationStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr37(
                self as *const crate::QApplicationStateChangeEvent
                    as *mut crate::QApplicationStateChangeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QApplicationStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QEvent* static_cast<QEvent*>(QApplicationStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QEvent_ptr37(
                self as *mut crate::QApplicationStateChangeEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QApplicationStateChangeEvent> for ::qt_core::QEvent {
    /// Calls C++ function: <span style='color: green;'>```QApplicationStateChangeEvent* dynamic_cast<QApplicationStateChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QEvent>,
    ) -> ::cpp_core::Ptr<crate::QApplicationStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QApplicationStateChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QApplicationStateChangeEvent* dynamic_cast<QApplicationStateChangeEvent*>(QEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QEvent>,
    ) -> ::cpp_core::MutPtr<crate::QApplicationStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QApplicationStateChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPolygon> for crate::QVectorOfQPoint {
    /// Calls C++ function: <span style='color: green;'>```QPolygon* static_cast<QPolygon*>(QVector<QPoint>* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QVectorOfQPoint>,
    ) -> ::cpp_core::Ptr<crate::QPolygon> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPolygon_ptr(
            ptr.as_raw_ptr() as *mut crate::QVectorOfQPoint
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPolygon* static_cast<QPolygon*>(QVector<QPoint>* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QVectorOfQPoint>,
    ) -> ::cpp_core::MutPtr<crate::QPolygon> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPolygon_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QVectorOfQPoint> for crate::QPolygon {
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>* static_cast<QVector<QPoint>*>(QPolygon* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPolygon>,
    ) -> ::cpp_core::Ptr<crate::QVectorOfQPoint> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QVector_QPoint_ptr(
            ptr.as_raw_ptr() as *mut crate::QPolygon,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>* static_cast<QVector<QPoint>*>(QPolygon* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPolygon>,
    ) -> ::cpp_core::MutPtr<crate::QVectorOfQPoint> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QVector_QPoint_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPolygon {
    type Target = crate::QVectorOfQPoint;
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>* static_cast<QVector<QPoint>*>(QPolygon* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QVectorOfQPoint {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QVector_QPoint_ptr(
                self as *const crate::QPolygon as *mut crate::QPolygon,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPolygon {
    /// Calls C++ function: <span style='color: green;'>```QVector<QPoint>* static_cast<QVector<QPoint>*>(QPolygon* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QVectorOfQPoint {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QVector_QPoint_ptr(
                self as *mut crate::QPolygon,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QPolygonF> for ::qt_core::QVectorOfQPointF {
    /// Calls C++ function: <span style='color: green;'>```QPolygonF* static_cast<QPolygonF*>(QVector<QPointF>* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QVectorOfQPointF>,
    ) -> ::cpp_core::Ptr<crate::QPolygonF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPolygonF_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QVectorOfQPointF
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPolygonF* static_cast<QPolygonF*>(QVector<QPointF>* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QVectorOfQPointF>,
    ) -> ::cpp_core::MutPtr<crate::QPolygonF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPolygonF_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QVectorOfQPointF> for crate::QPolygonF {
    /// Calls C++ function: <span style='color: green;'>```QVector<QPointF>* static_cast<QVector<QPointF>*>(QPolygonF* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPolygonF>,
    ) -> ::cpp_core::Ptr<::qt_core::QVectorOfQPointF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QVector_QPointF_ptr(
            ptr.as_raw_ptr() as *mut crate::QPolygonF,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QVector<QPointF>* static_cast<QVector<QPointF>*>(QPolygonF* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPolygonF>,
    ) -> ::cpp_core::MutPtr<::qt_core::QVectorOfQPointF> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QVector_QPointF_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPolygonF {
    type Target = ::qt_core::QVectorOfQPointF;
    /// Calls C++ function: <span style='color: green;'>```QVector<QPointF>* static_cast<QVector<QPointF>*>(QPolygonF* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QVectorOfQPointF {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QVector_QPointF_ptr(
                self as *const crate::QPolygonF as *mut crate::QPolygonF,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPolygonF {
    /// Calls C++ function: <span style='color: green;'>```QVector<QPointF>* static_cast<QVector<QPointF>*>(QPolygonF* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QVectorOfQPointF {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QVector_QPointF_ptr(
                self as *mut crate::QPolygonF,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QImage> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QImage* static_cast<QImage*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QImage_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QImage* static_cast<QImage*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QImage_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QImage {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QImage>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr(
            ptr.as_raw_ptr() as *mut crate::QImage,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QImage>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QImage {
    type Target = crate::QPaintDevice;
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QImage* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr(
                self as *const crate::QImage as *mut crate::QImage,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QImage {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QImage* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr(self as *mut crate::QImage)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QImage> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QImage* dynamic_cast<QImage*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QImage_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QImage* dynamic_cast<QImage*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QImage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QImage_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPixmap> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPixmap* static_cast<QPixmap*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPixmap_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPixmap* static_cast<QPixmap*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPixmap_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QPixmap {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPixmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPixmap>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr1(
            ptr.as_raw_ptr() as *mut crate::QPixmap,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPixmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPixmap>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPixmap {
    type Target = crate::QPaintDevice;
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPixmap* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr1(
                self as *const crate::QPixmap as *mut crate::QPixmap,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPixmap {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPixmap* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr1(self as *mut crate::QPixmap)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPixmap> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPixmap* dynamic_cast<QPixmap*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPixmap_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPixmap* dynamic_cast<QPixmap*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPixmap_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLinearGradient> for crate::QGradient {
    /// Calls C++ function: <span style='color: green;'>```QLinearGradient* static_cast<QLinearGradient*>(QGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QGradient>,
    ) -> ::cpp_core::Ptr<crate::QLinearGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QLinearGradient_ptr(
            ptr.as_raw_ptr() as *mut crate::QGradient,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QLinearGradient* static_cast<QLinearGradient*>(QGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QGradient>,
    ) -> ::cpp_core::MutPtr<crate::QLinearGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QLinearGradient_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QGradient> for crate::QLinearGradient {
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QLinearGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLinearGradient>,
    ) -> ::cpp_core::Ptr<crate::QGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr(
            ptr.as_raw_ptr() as *mut crate::QLinearGradient
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QLinearGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QLinearGradient>,
    ) -> ::cpp_core::MutPtr<crate::QGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QLinearGradient {
    type Target = crate::QGradient;
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QLinearGradient* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QGradient {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr(
                self as *const crate::QLinearGradient as *mut crate::QLinearGradient,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QLinearGradient {
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QLinearGradient* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QGradient {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr(
                self as *mut crate::QLinearGradient,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QRadialGradient> for crate::QGradient {
    /// Calls C++ function: <span style='color: green;'>```QRadialGradient* static_cast<QRadialGradient*>(QGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QGradient>,
    ) -> ::cpp_core::Ptr<crate::QRadialGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRadialGradient_ptr(
            ptr.as_raw_ptr() as *mut crate::QGradient,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRadialGradient* static_cast<QRadialGradient*>(QGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QGradient>,
    ) -> ::cpp_core::MutPtr<crate::QRadialGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QRadialGradient_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QGradient> for crate::QRadialGradient {
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QRadialGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRadialGradient>,
    ) -> ::cpp_core::Ptr<crate::QGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr1(
            ptr.as_raw_ptr() as *mut crate::QRadialGradient
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QRadialGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRadialGradient>,
    ) -> ::cpp_core::MutPtr<crate::QGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRadialGradient {
    type Target = crate::QGradient;
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QRadialGradient* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QGradient {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr1(
                self as *const crate::QRadialGradient as *mut crate::QRadialGradient,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QRadialGradient {
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QRadialGradient* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QGradient {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr1(
                self as *mut crate::QRadialGradient,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QConicalGradient> for crate::QGradient {
    /// Calls C++ function: <span style='color: green;'>```QConicalGradient* static_cast<QConicalGradient*>(QGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QGradient>,
    ) -> ::cpp_core::Ptr<crate::QConicalGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QConicalGradient_ptr(
            ptr.as_raw_ptr() as *mut crate::QGradient,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QConicalGradient* static_cast<QConicalGradient*>(QGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QGradient>,
    ) -> ::cpp_core::MutPtr<crate::QConicalGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QConicalGradient_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QGradient> for crate::QConicalGradient {
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QConicalGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QConicalGradient>,
    ) -> ::cpp_core::Ptr<crate::QGradient> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr2(
            ptr.as_raw_ptr() as *mut crate::QConicalGradient
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QConicalGradient* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QConicalGradient>,
    ) -> ::cpp_core::MutPtr<crate::QGradient> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QConicalGradient {
    type Target = crate::QGradient;
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QConicalGradient* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QGradient {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr2(
                self as *const crate::QConicalGradient as *mut crate::QConicalGradient,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QConicalGradient {
    /// Calls C++ function: <span style='color: green;'>```QGradient* static_cast<QGradient*>(QConicalGradient* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QGradient {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGradient_ptr2(
                self as *mut crate::QConicalGradient,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextCharFormat> for crate::QTextFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextCharFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFormat> for crate::QTextCharFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextCharFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextCharFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextCharFormat
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextCharFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextCharFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextCharFormat {
    type Target = crate::QTextFormat;
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextCharFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr(
                self as *const crate::QTextCharFormat as *mut crate::QTextCharFormat,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextCharFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextCharFormat* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr(
                self as *mut crate::QTextCharFormat,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextBlockFormat> for crate::QTextFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextBlockFormat* static_cast<QTextBlockFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextBlockFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockFormat_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextBlockFormat* static_cast<QTextBlockFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextBlockFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockFormat_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFormat> for crate::QTextBlockFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextBlockFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextBlockFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextBlockFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextBlockFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextBlockFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextBlockFormat {
    type Target = crate::QTextFormat;
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextBlockFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr1(
                self as *const crate::QTextBlockFormat as *mut crate::QTextBlockFormat,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextBlockFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextBlockFormat* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr1(
                self as *mut crate::QTextBlockFormat,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextListFormat> for crate::QTextFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextListFormat* static_cast<QTextListFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextListFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextListFormat_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextListFormat* static_cast<QTextListFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextListFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextListFormat_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFormat> for crate::QTextListFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextListFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextListFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr2(
            ptr.as_raw_ptr() as *mut crate::QTextListFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextListFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextListFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextListFormat {
    type Target = crate::QTextFormat;
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextListFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr2(
                self as *const crate::QTextListFormat as *mut crate::QTextListFormat,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextListFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextListFormat* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr2(
                self as *mut crate::QTextListFormat,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextImageFormat> for crate::QTextCharFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextImageFormat* static_cast<QTextImageFormat*>(QTextCharFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextCharFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextImageFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextImageFormat_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextCharFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextImageFormat* static_cast<QTextImageFormat*>(QTextCharFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextCharFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextImageFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextImageFormat_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextCharFormat> for crate::QTextImageFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextImageFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextImageFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextImageFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextImageFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextImageFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextCharFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextImageFormat {
    type Target = crate::QTextCharFormat;
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextImageFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextCharFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr1(
                self as *const crate::QTextImageFormat as *mut crate::QTextImageFormat,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextImageFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextImageFormat* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextCharFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr1(
                self as *mut crate::QTextImageFormat,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextImageFormat> for crate::QTextFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextImageFormat* static_cast<QTextImageFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextImageFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextImageFormat_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextImageFormat* static_cast<QTextImageFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextImageFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextImageFormat_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFormat> for crate::QTextImageFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextImageFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextImageFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr3(
            ptr.as_raw_ptr() as *mut crate::QTextImageFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextImageFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextImageFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextFrameFormat> for crate::QTextFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat* static_cast<QTextFrameFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFrameFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrameFormat_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat* static_cast<QTextFrameFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFrameFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrameFormat_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFormat> for crate::QTextFrameFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextFrameFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextFrameFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr4(
            ptr.as_raw_ptr() as *mut crate::QTextFrameFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextFrameFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFrameFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextFrameFormat {
    type Target = crate::QTextFormat;
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextFrameFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr4(
                self as *const crate::QTextFrameFormat as *mut crate::QTextFrameFormat,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextFrameFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextFrameFormat* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr4(
                self as *mut crate::QTextFrameFormat,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextTableFormat> for crate::QTextFrameFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextTableFormat* static_cast<QTextTableFormat*>(QTextFrameFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFrameFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextTableFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTableFormat_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextFrameFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTableFormat* static_cast<QTextTableFormat*>(QTextFrameFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFrameFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextTableFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTableFormat_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFrameFormat> for crate::QTextTableFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat* static_cast<QTextFrameFormat*>(QTextTableFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextTableFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFrameFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrameFormat_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextTableFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat* static_cast<QTextFrameFormat*>(QTextTableFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextTableFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFrameFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrameFormat_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextTableFormat {
    type Target = crate::QTextFrameFormat;
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat* static_cast<QTextFrameFormat*>(QTextTableFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextFrameFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrameFormat_ptr1(
                self as *const crate::QTextTableFormat as *mut crate::QTextTableFormat,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextTableFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFrameFormat* static_cast<QTextFrameFormat*>(QTextTableFormat* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextFrameFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrameFormat_ptr1(
                self as *mut crate::QTextTableFormat,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextTableFormat> for crate::QTextFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextTableFormat* static_cast<QTextTableFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextTableFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTableFormat_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTableFormat* static_cast<QTextTableFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextTableFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTableFormat_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFormat> for crate::QTextTableFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextTableFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextTableFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr5(
            ptr.as_raw_ptr() as *mut crate::QTextTableFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextTableFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextTableFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr5(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextTableCellFormat> for crate::QTextCharFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextTableCellFormat* static_cast<QTextTableCellFormat*>(QTextCharFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextCharFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextTableCellFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTableCellFormat_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextCharFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTableCellFormat* static_cast<QTextTableCellFormat*>(QTextCharFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextCharFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextTableCellFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTableCellFormat_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextCharFormat> for crate::QTextTableCellFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextTableCellFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextTableCellFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextCharFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr2(
            ptr.as_raw_ptr() as *mut crate::QTextTableCellFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextTableCellFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextTableCellFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextCharFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextTableCellFormat {
    type Target = crate::QTextCharFormat;
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextTableCellFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextCharFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr2(
                self as *const crate::QTextTableCellFormat as *mut crate::QTextTableCellFormat,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextTableCellFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextCharFormat* static_cast<QTextCharFormat*>(QTextTableCellFormat* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextCharFormat {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextCharFormat_ptr2(
                self as *mut crate::QTextTableCellFormat,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextTableCellFormat> for crate::QTextFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextTableCellFormat* static_cast<QTextTableCellFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextTableCellFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTableCellFormat_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTableCellFormat* static_cast<QTextTableCellFormat*>(QTextFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextTableCellFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTableCellFormat_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFormat> for crate::QTextTableCellFormat {
    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextTableCellFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextTableCellFormat>,
    ) -> ::cpp_core::Ptr<crate::QTextFormat> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr6(
            ptr.as_raw_ptr() as *mut crate::QTextTableCellFormat,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFormat* static_cast<QTextFormat*>(QTextTableCellFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextTableCellFormat>,
    ) -> ::cpp_core::MutPtr<crate::QTextFormat> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFormat_ptr6(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextDocument> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextDocument* static_cast<QTextDocument*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextDocument_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextDocument* static_cast<QTextDocument*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextDocument> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextDocument_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextDocument {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextDocument* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextDocument>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextDocument
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextDocument* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextDocument>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextDocument {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextDocument* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr(
                self as *const crate::QTextDocument as *mut crate::QTextDocument,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextDocument {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextDocument* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr(self as *mut crate::QTextDocument)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextDocument> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextDocument* dynamic_cast<QTextDocument*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextDocument> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextDocument_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextDocument* dynamic_cast<QTextDocument*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextDocument> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextDocument_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAbstractTextDocumentLayout> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout* static_cast<QAbstractTextDocumentLayout*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTextDocumentLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAbstractTextDocumentLayout_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout* static_cast<QAbstractTextDocumentLayout*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QAbstractTextDocumentLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAbstractTextDocumentLayout_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAbstractTextDocumentLayout {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QAbstractTextDocumentLayout* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTextDocumentLayout>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAbstractTextDocumentLayout
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QAbstractTextDocumentLayout* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAbstractTextDocumentLayout>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAbstractTextDocumentLayout {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QAbstractTextDocumentLayout* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr1(
                self as *const crate::QAbstractTextDocumentLayout
                    as *mut crate::QAbstractTextDocumentLayout,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAbstractTextDocumentLayout {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QAbstractTextDocumentLayout* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr1(
                self as *mut crate::QAbstractTextDocumentLayout,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAbstractTextDocumentLayout> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout* dynamic_cast<QAbstractTextDocumentLayout*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTextDocumentLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAbstractTextDocumentLayout_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAbstractTextDocumentLayout* dynamic_cast<QAbstractTextDocumentLayout*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QAbstractTextDocumentLayout> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAbstractTextDocumentLayout_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleStateChangeEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleStateChangeEvent* static_cast<QAccessibleStateChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleStateChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleStateChangeEvent* static_cast<QAccessibleStateChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleStateChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleEvent> for crate::QAccessibleStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleStateChangeEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleStateChangeEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleStateChangeEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleStateChangeEvent {
    type Target = crate::QAccessibleEvent;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr(
                self as *const crate::QAccessibleStateChangeEvent
                    as *mut crate::QAccessibleStateChangeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleStateChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleStateChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr(
                self as *mut crate::QAccessibleStateChangeEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleStateChangeEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleStateChangeEvent* dynamic_cast<QAccessibleStateChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleStateChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleStateChangeEvent* dynamic_cast<QAccessibleStateChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleStateChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleStateChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextCursorEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleEvent> for crate::QAccessibleTextCursorEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleTextCursorEvent {
    type Target = crate::QAccessibleEvent;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr1(
                self as *const crate::QAccessibleTextCursorEvent
                    as *mut crate::QAccessibleTextCursorEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleTextCursorEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr1(
                self as *mut crate::QAccessibleTextCursorEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextCursorEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* dynamic_cast<QAccessibleTextCursorEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextCursorEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* dynamic_cast<QAccessibleTextCursorEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextCursorEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextSelectionEvent>
    for crate::QAccessibleTextCursorEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextSelectionEvent* static_cast<QAccessibleTextSelectionEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextSelectionEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextSelectionEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextSelectionEvent* static_cast<QAccessibleTextSelectionEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextSelectionEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextSelectionEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleTextCursorEvent>
    for crate::QAccessibleTextSelectionEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextSelectionEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextSelectionEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextSelectionEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextSelectionEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextSelectionEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleTextSelectionEvent {
    type Target = crate::QAccessibleTextCursorEvent;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextSelectionEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleTextCursorEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr1(
                self as *const crate::QAccessibleTextSelectionEvent
                    as *mut crate::QAccessibleTextSelectionEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleTextSelectionEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextSelectionEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleTextCursorEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr1(
                self as *mut crate::QAccessibleTextSelectionEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextSelectionEvent>
    for crate::QAccessibleTextCursorEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextSelectionEvent* dynamic_cast<QAccessibleTextSelectionEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextSelectionEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextSelectionEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextSelectionEvent* dynamic_cast<QAccessibleTextSelectionEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextSelectionEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextSelectionEvent_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextSelectionEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextSelectionEvent* static_cast<QAccessibleTextSelectionEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextSelectionEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextSelectionEvent_ptr1(
                ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextSelectionEvent* static_cast<QAccessibleTextSelectionEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextSelectionEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextSelectionEvent_ptr1(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleEvent> for crate::QAccessibleTextSelectionEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextSelectionEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextSelectionEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr2(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextSelectionEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextSelectionEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextSelectionEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextSelectionEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextSelectionEvent* dynamic_cast<QAccessibleTextSelectionEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextSelectionEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextSelectionEvent_ptr1(
                ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextSelectionEvent* dynamic_cast<QAccessibleTextSelectionEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextSelectionEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextSelectionEvent_ptr1(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextInsertEvent>
    for crate::QAccessibleTextCursorEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInsertEvent* static_cast<QAccessibleTextInsertEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextInsertEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextInsertEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInsertEvent* static_cast<QAccessibleTextInsertEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextInsertEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextInsertEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleTextCursorEvent>
    for crate::QAccessibleTextInsertEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextInsertEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextInsertEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr2(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextInsertEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextInsertEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextInsertEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr2(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleTextInsertEvent {
    type Target = crate::QAccessibleTextCursorEvent;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextInsertEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleTextCursorEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr2(
                self as *const crate::QAccessibleTextInsertEvent
                    as *mut crate::QAccessibleTextInsertEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleTextInsertEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextInsertEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleTextCursorEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr2(
                self as *mut crate::QAccessibleTextInsertEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextInsertEvent>
    for crate::QAccessibleTextCursorEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInsertEvent* dynamic_cast<QAccessibleTextInsertEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextInsertEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextInsertEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInsertEvent* dynamic_cast<QAccessibleTextInsertEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextInsertEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextInsertEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextInsertEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInsertEvent* static_cast<QAccessibleTextInsertEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextInsertEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextInsertEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInsertEvent* static_cast<QAccessibleTextInsertEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextInsertEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextInsertEvent_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleEvent> for crate::QAccessibleTextInsertEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextInsertEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextInsertEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr3(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextInsertEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextInsertEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextInsertEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextInsertEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInsertEvent* dynamic_cast<QAccessibleTextInsertEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextInsertEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextInsertEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextInsertEvent* dynamic_cast<QAccessibleTextInsertEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextInsertEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextInsertEvent_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextRemoveEvent>
    for crate::QAccessibleTextCursorEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextRemoveEvent* static_cast<QAccessibleTextRemoveEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextRemoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextRemoveEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextRemoveEvent* static_cast<QAccessibleTextRemoveEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextRemoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextRemoveEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleTextCursorEvent>
    for crate::QAccessibleTextRemoveEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextRemoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextRemoveEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr3(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextRemoveEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextRemoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextRemoveEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr3(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleTextRemoveEvent {
    type Target = crate::QAccessibleTextCursorEvent;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextRemoveEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleTextCursorEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr3(
                self as *const crate::QAccessibleTextRemoveEvent
                    as *mut crate::QAccessibleTextRemoveEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleTextRemoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextRemoveEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleTextCursorEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr3(
                self as *mut crate::QAccessibleTextRemoveEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextRemoveEvent>
    for crate::QAccessibleTextCursorEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextRemoveEvent* dynamic_cast<QAccessibleTextRemoveEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextRemoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextRemoveEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextRemoveEvent* dynamic_cast<QAccessibleTextRemoveEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextRemoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextRemoveEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextRemoveEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextRemoveEvent* static_cast<QAccessibleTextRemoveEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextRemoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextRemoveEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextRemoveEvent* static_cast<QAccessibleTextRemoveEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextRemoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextRemoveEvent_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleEvent> for crate::QAccessibleTextRemoveEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextRemoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextRemoveEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr4(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextRemoveEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextRemoveEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextRemoveEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextRemoveEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextRemoveEvent* dynamic_cast<QAccessibleTextRemoveEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextRemoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextRemoveEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextRemoveEvent* dynamic_cast<QAccessibleTextRemoveEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextRemoveEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextRemoveEvent_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextUpdateEvent>
    for crate::QAccessibleTextCursorEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextUpdateEvent* static_cast<QAccessibleTextUpdateEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextUpdateEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextUpdateEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextUpdateEvent* static_cast<QAccessibleTextUpdateEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextUpdateEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextUpdateEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleTextCursorEvent>
    for crate::QAccessibleTextUpdateEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextUpdateEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextUpdateEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr4(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextUpdateEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextUpdateEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextUpdateEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr4(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleTextUpdateEvent {
    type Target = crate::QAccessibleTextCursorEvent;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextUpdateEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleTextCursorEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr4(
                self as *const crate::QAccessibleTextUpdateEvent
                    as *mut crate::QAccessibleTextUpdateEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleTextUpdateEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextCursorEvent* static_cast<QAccessibleTextCursorEvent*>(QAccessibleTextUpdateEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleTextCursorEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextCursorEvent_ptr4(
                self as *mut crate::QAccessibleTextUpdateEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextUpdateEvent>
    for crate::QAccessibleTextCursorEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextUpdateEvent* dynamic_cast<QAccessibleTextUpdateEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextUpdateEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextUpdateEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextCursorEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextUpdateEvent* dynamic_cast<QAccessibleTextUpdateEvent*>(QAccessibleTextCursorEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextCursorEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextUpdateEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextUpdateEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTextUpdateEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextUpdateEvent* static_cast<QAccessibleTextUpdateEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextUpdateEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextUpdateEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextUpdateEvent* static_cast<QAccessibleTextUpdateEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextUpdateEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTextUpdateEvent_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleEvent> for crate::QAccessibleTextUpdateEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextUpdateEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTextUpdateEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr5(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTextUpdateEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTextUpdateEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTextUpdateEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr5(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTextUpdateEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextUpdateEvent* dynamic_cast<QAccessibleTextUpdateEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTextUpdateEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextUpdateEvent_ptr1(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTextUpdateEvent* dynamic_cast<QAccessibleTextUpdateEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTextUpdateEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTextUpdateEvent_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleValueChangeEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleValueChangeEvent* static_cast<QAccessibleValueChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleValueChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleValueChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleValueChangeEvent* static_cast<QAccessibleValueChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleValueChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleValueChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleEvent> for crate::QAccessibleValueChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleValueChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleValueChangeEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr6(
            ptr.as_raw_ptr() as *mut crate::QAccessibleValueChangeEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleValueChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleValueChangeEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr6(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleValueChangeEvent {
    type Target = crate::QAccessibleEvent;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleValueChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr6(
                self as *const crate::QAccessibleValueChangeEvent
                    as *mut crate::QAccessibleValueChangeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleValueChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleValueChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr6(
                self as *mut crate::QAccessibleValueChangeEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleValueChangeEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleValueChangeEvent* dynamic_cast<QAccessibleValueChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleValueChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleValueChangeEvent_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleValueChangeEvent* dynamic_cast<QAccessibleValueChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleValueChangeEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleValueChangeEvent_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleTableModelChangeEvent>
    for crate::QAccessibleEvent
{
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableModelChangeEvent* static_cast<QAccessibleTableModelChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTableModelChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTableModelChangeEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableModelChangeEvent* static_cast<QAccessibleTableModelChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTableModelChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleTableModelChangeEvent_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleEvent> for crate::QAccessibleTableModelChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTableModelChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleTableModelChangeEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleEvent> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr7(
            ptr.as_raw_ptr() as *mut crate::QAccessibleTableModelChangeEvent,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTableModelChangeEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleTableModelChangeEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr7(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleTableModelChangeEvent {
    type Target = crate::QAccessibleEvent;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTableModelChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr7(
                self as *const crate::QAccessibleTableModelChangeEvent
                    as *mut crate::QAccessibleTableModelChangeEvent,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleTableModelChangeEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleEvent* static_cast<QAccessibleEvent*>(QAccessibleTableModelChangeEvent* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleEvent {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleEvent_ptr7(
                self as *mut crate::QAccessibleTableModelChangeEvent,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleTableModelChangeEvent> for crate::QAccessibleEvent {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableModelChangeEvent* dynamic_cast<QAccessibleTableModelChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleTableModelChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTableModelChangeEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QAccessibleEvent,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleTableModelChangeEvent* dynamic_cast<QAccessibleTableModelChangeEvent*>(QAccessibleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleEvent>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleTableModelChangeEvent> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleTableModelChangeEvent_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessibleObject> for crate::QAccessibleInterface {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleObject* static_cast<QAccessibleObject*>(QAccessibleInterface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleInterface>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleObject_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleInterface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleObject* static_cast<QAccessibleObject*>(QAccessibleInterface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleInterface>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleObject_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAccessibleInterface> for crate::QAccessibleObject {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface* static_cast<QAccessibleInterface*>(QAccessibleObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleObject>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleInterface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleInterface_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface* static_cast<QAccessibleInterface*>(QAccessibleObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleObject>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleInterface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleInterface_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessibleObject {
    type Target = crate::QAccessibleInterface;
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface* static_cast<QAccessibleInterface*>(QAccessibleObject* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAccessibleInterface {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleInterface_ptr(
                self as *const crate::QAccessibleObject as *mut crate::QAccessibleObject,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessibleObject {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleInterface* static_cast<QAccessibleInterface*>(QAccessibleObject* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QAccessibleInterface {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessibleInterface_ptr(
                self as *mut crate::QAccessibleObject,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessibleObject> for crate::QAccessibleInterface {
    /// Calls C++ function: <span style='color: green;'>```QAccessibleObject* dynamic_cast<QAccessibleObject*>(QAccessibleInterface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAccessibleInterface>,
    ) -> ::cpp_core::Ptr<crate::QAccessibleObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleObject_ptr(
            ptr.as_raw_ptr() as *mut crate::QAccessibleInterface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessibleObject* dynamic_cast<QAccessibleObject*>(QAccessibleInterface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessibleInterface>,
    ) -> ::cpp_core::MutPtr<crate::QAccessibleObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessibleObject_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAccessiblePlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QAccessiblePlugin* static_cast<QAccessiblePlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAccessiblePlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessiblePlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessiblePlugin* static_cast<QAccessiblePlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QAccessiblePlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAccessiblePlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAccessiblePlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QAccessiblePlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAccessiblePlugin>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr2(
            ptr.as_raw_ptr() as *mut crate::QAccessiblePlugin
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QAccessiblePlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QAccessiblePlugin>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAccessiblePlugin {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QAccessiblePlugin* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr2(
                self as *const crate::QAccessiblePlugin as *mut crate::QAccessiblePlugin,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QAccessiblePlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QAccessiblePlugin* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr2(
                self as *mut crate::QAccessiblePlugin,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAccessiblePlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QAccessiblePlugin* dynamic_cast<QAccessiblePlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAccessiblePlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessiblePlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAccessiblePlugin* dynamic_cast<QAccessiblePlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QAccessiblePlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QAccessiblePlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWindow>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr3(
            ptr.as_raw_ptr() as *mut crate::QWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindow>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QWindow {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QWindow* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr3(
                self as *const crate::QWindow as *mut crate::QWindow,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QWindow* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr3(self as *mut crate::QWindow)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QWindow* dynamic_cast<QWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWindow_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindow* dynamic_cast<QWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWindow_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QWindow> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr1(
            ptr.as_raw_ptr() as *mut crate::QSurface
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QSurface> for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWindow>,
    ) -> ::cpp_core::Ptr<crate::QSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr(
            ptr.as_raw_ptr() as *mut crate::QWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindow>,
    ) -> ::cpp_core::MutPtr<crate::QSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QWindow> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QWindow* dynamic_cast<QWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWindow_ptr1(
            ptr.as_raw_ptr() as *mut crate::QSurface
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindow* dynamic_cast<QWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QWindow_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBitmap> for crate::QPixmap {
    /// Calls C++ function: <span style='color: green;'>```QBitmap* static_cast<QBitmap*>(QPixmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPixmap>,
    ) -> ::cpp_core::Ptr<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QBitmap_ptr(
            ptr.as_raw_ptr() as *mut crate::QPixmap
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QBitmap* static_cast<QBitmap*>(QPixmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPixmap>,
    ) -> ::cpp_core::MutPtr<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QBitmap_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPixmap> for crate::QBitmap {
    /// Calls C++ function: <span style='color: green;'>```QPixmap* static_cast<QPixmap*>(QBitmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBitmap>,
    ) -> ::cpp_core::Ptr<crate::QPixmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPixmap_ptr1(
            ptr.as_raw_ptr() as *mut crate::QBitmap
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPixmap* static_cast<QPixmap*>(QBitmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QBitmap>,
    ) -> ::cpp_core::MutPtr<crate::QPixmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPixmap_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QBitmap {
    type Target = crate::QPixmap;
    /// Calls C++ function: <span style='color: green;'>```QPixmap* static_cast<QPixmap*>(QBitmap* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPixmap {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPixmap_ptr1(
                self as *const crate::QBitmap as *mut crate::QBitmap,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QBitmap {
    /// Calls C++ function: <span style='color: green;'>```QPixmap* static_cast<QPixmap*>(QBitmap* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QPixmap {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPixmap_ptr1(self as *mut crate::QBitmap)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QBitmap> for crate::QPixmap {
    /// Calls C++ function: <span style='color: green;'>```QBitmap* dynamic_cast<QBitmap*>(QPixmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPixmap>,
    ) -> ::cpp_core::Ptr<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QBitmap_ptr(
            ptr.as_raw_ptr() as *mut crate::QPixmap
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QBitmap* dynamic_cast<QBitmap*>(QPixmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPixmap>,
    ) -> ::cpp_core::MutPtr<crate::QBitmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QBitmap_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBitmap> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QBitmap* static_cast<QBitmap*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QBitmap_ptr1(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QBitmap* static_cast<QBitmap*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QBitmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QBitmap_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QBitmap {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QBitmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBitmap>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr2(
            ptr.as_raw_ptr() as *mut crate::QBitmap,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QBitmap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QBitmap>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QBitmap> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QBitmap* dynamic_cast<QBitmap*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QBitmap> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QBitmap_ptr1(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QBitmap* dynamic_cast<QBitmap*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QBitmap> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QBitmap_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QClipboard> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QClipboard* static_cast<QClipboard*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QClipboard> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QClipboard_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QClipboard* static_cast<QClipboard*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QClipboard> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QClipboard_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QClipboard {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QClipboard* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QClipboard>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr4(
            ptr.as_raw_ptr() as *mut crate::QClipboard
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QClipboard* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QClipboard>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QClipboard {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QClipboard* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr4(
                self as *const crate::QClipboard as *mut crate::QClipboard,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QClipboard {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QClipboard* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr4(self as *mut crate::QClipboard)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QClipboard> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QClipboard* dynamic_cast<QClipboard*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QClipboard> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QClipboard_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QClipboard* dynamic_cast<QClipboard*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QClipboard> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QClipboard_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDrag> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QDrag* static_cast<QDrag*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDrag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDrag_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDrag* static_cast<QDrag*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QDrag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDrag_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QDrag {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QDrag* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDrag>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr5(
            ptr.as_raw_ptr() as *mut crate::QDrag
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QDrag* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDrag>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr5(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDrag {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QDrag* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr5(
                self as *const crate::QDrag as *mut crate::QDrag,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QDrag {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QDrag* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr5(self as *mut crate::QDrag)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDrag> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QDrag* dynamic_cast<QDrag*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDrag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDrag_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDrag* dynamic_cast<QDrag*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QDrag> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDrag_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGenericPlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QGenericPlugin* static_cast<QGenericPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGenericPlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QGenericPlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGenericPlugin* static_cast<QGenericPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QGenericPlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGenericPlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QGenericPlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QGenericPlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGenericPlugin>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr6(
            ptr.as_raw_ptr() as *mut crate::QGenericPlugin
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QGenericPlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QGenericPlugin>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr6(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QGenericPlugin {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QGenericPlugin* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr6(
                self as *const crate::QGenericPlugin as *mut crate::QGenericPlugin,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QGenericPlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QGenericPlugin* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr6(
                self as *mut crate::QGenericPlugin,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QGenericPlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QGenericPlugin* dynamic_cast<QGenericPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGenericPlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QGenericPlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGenericPlugin* dynamic_cast<QGenericPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QGenericPlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QGenericPlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QInputMethod> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QInputMethod* static_cast<QInputMethod*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QInputMethod> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputMethod_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputMethod* static_cast<QInputMethod*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QInputMethod> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QInputMethod_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QInputMethod {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QInputMethod* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QInputMethod>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr7(
            ptr.as_raw_ptr() as *mut crate::QInputMethod
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QInputMethod* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QInputMethod>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr7(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QInputMethod {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QInputMethod* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr7(
                self as *const crate::QInputMethod as *mut crate::QInputMethod,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QInputMethod {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QInputMethod* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr7(self as *mut crate::QInputMethod)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QInputMethod> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QInputMethod* dynamic_cast<QInputMethod*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QInputMethod> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QInputMethod_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QInputMethod* dynamic_cast<QInputMethod*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QInputMethod> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QInputMethod_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGuiApplication> for ::qt_core::QCoreApplication {
    /// Calls C++ function: <span style='color: green;'>```QGuiApplication* static_cast<QGuiApplication*>(QCoreApplication* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QCoreApplication>,
    ) -> ::cpp_core::Ptr<crate::QGuiApplication> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QGuiApplication_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QCoreApplication,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGuiApplication* static_cast<QGuiApplication*>(QCoreApplication* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QCoreApplication>,
    ) -> ::cpp_core::MutPtr<crate::QGuiApplication> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGuiApplication_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QCoreApplication> for crate::QGuiApplication {
    /// Calls C++ function: <span style='color: green;'>```QCoreApplication* static_cast<QCoreApplication*>(QGuiApplication* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGuiApplication>,
    ) -> ::cpp_core::Ptr<::qt_core::QCoreApplication> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QCoreApplication_ptr(
            ptr.as_raw_ptr() as *mut crate::QGuiApplication,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QCoreApplication* static_cast<QCoreApplication*>(QGuiApplication* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QGuiApplication>,
    ) -> ::cpp_core::MutPtr<::qt_core::QCoreApplication> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QCoreApplication_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QGuiApplication {
    type Target = ::qt_core::QCoreApplication;
    /// Calls C++ function: <span style='color: green;'>```QCoreApplication* static_cast<QCoreApplication*>(QGuiApplication* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QCoreApplication {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QCoreApplication_ptr(
                self as *const crate::QGuiApplication as *mut crate::QGuiApplication,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QGuiApplication {
    /// Calls C++ function: <span style='color: green;'>```QCoreApplication* static_cast<QCoreApplication*>(QGuiApplication* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QCoreApplication {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QCoreApplication_ptr(
                self as *mut crate::QGuiApplication,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QGuiApplication> for ::qt_core::QCoreApplication {
    /// Calls C++ function: <span style='color: green;'>```QGuiApplication* dynamic_cast<QGuiApplication*>(QCoreApplication* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QCoreApplication>,
    ) -> ::cpp_core::Ptr<crate::QGuiApplication> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QGuiApplication_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QCoreApplication,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGuiApplication* dynamic_cast<QGuiApplication*>(QCoreApplication* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QCoreApplication>,
    ) -> ::cpp_core::MutPtr<crate::QGuiApplication> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QGuiApplication_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGuiApplication> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QGuiApplication* static_cast<QGuiApplication*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGuiApplication> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QGuiApplication_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGuiApplication* static_cast<QGuiApplication*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QGuiApplication> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QGuiApplication_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QGuiApplication {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QGuiApplication* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGuiApplication>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr8(
            ptr.as_raw_ptr() as *mut crate::QGuiApplication
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QGuiApplication* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QGuiApplication>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr8(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QGuiApplication> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QGuiApplication* dynamic_cast<QGuiApplication*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGuiApplication> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QGuiApplication_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QGuiApplication* dynamic_cast<QGuiApplication*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QGuiApplication> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QGuiApplication_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QIconEnginePlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QIconEnginePlugin* static_cast<QIconEnginePlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QIconEnginePlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QIconEnginePlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QIconEnginePlugin* static_cast<QIconEnginePlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QIconEnginePlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QIconEnginePlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QIconEnginePlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QIconEnginePlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QIconEnginePlugin>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr9(
            ptr.as_raw_ptr() as *mut crate::QIconEnginePlugin
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QIconEnginePlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QIconEnginePlugin>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr9(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QIconEnginePlugin {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QIconEnginePlugin* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr9(
                self as *const crate::QIconEnginePlugin as *mut crate::QIconEnginePlugin,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QIconEnginePlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QIconEnginePlugin* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr9(
                self as *mut crate::QIconEnginePlugin,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QIconEnginePlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QIconEnginePlugin* dynamic_cast<QIconEnginePlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QIconEnginePlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QIconEnginePlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QIconEnginePlugin* dynamic_cast<QIconEnginePlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QIconEnginePlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QIconEnginePlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QImageIOPlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QImageIOPlugin* static_cast<QImageIOPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QImageIOPlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QImageIOPlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QImageIOPlugin* static_cast<QImageIOPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QImageIOPlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QImageIOPlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QImageIOPlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QImageIOPlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QImageIOPlugin>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr10(
            ptr.as_raw_ptr() as *mut crate::QImageIOPlugin
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QImageIOPlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QImageIOPlugin>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr10(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QImageIOPlugin {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QImageIOPlugin* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr10(
                self as *const crate::QImageIOPlugin as *mut crate::QImageIOPlugin,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QImageIOPlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QImageIOPlugin* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr10(
                self as *mut crate::QImageIOPlugin,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QImageIOPlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QImageIOPlugin* dynamic_cast<QImageIOPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QImageIOPlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QImageIOPlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QImageIOPlugin* dynamic_cast<QImageIOPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QImageIOPlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QImageIOPlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMovie> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QMovie* static_cast<QMovie*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QMovie_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QMovie* static_cast<QMovie*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QMovie_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QMovie {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QMovie* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMovie>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr11(
            ptr.as_raw_ptr() as *mut crate::QMovie
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QMovie* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QMovie>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr11(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QMovie {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QMovie* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr11(
                self as *const crate::QMovie as *mut crate::QMovie,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QMovie {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QMovie* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr11(self as *mut crate::QMovie)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QMovie> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QMovie* dynamic_cast<QMovie*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QMovie_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QMovie* dynamic_cast<QMovie*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QMovie> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QMovie_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOffscreenSurface> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOffscreenSurface* static_cast<QOffscreenSurface*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOffscreenSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOffscreenSurface_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOffscreenSurface* static_cast<QOffscreenSurface*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOffscreenSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOffscreenSurface_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOffscreenSurface {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOffscreenSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOffscreenSurface>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr12(
            ptr.as_raw_ptr() as *mut crate::QOffscreenSurface
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOffscreenSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOffscreenSurface>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr12(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOffscreenSurface {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOffscreenSurface* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr12(
                self as *const crate::QOffscreenSurface as *mut crate::QOffscreenSurface,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOffscreenSurface {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOffscreenSurface* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr12(
                self as *mut crate::QOffscreenSurface,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOffscreenSurface> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOffscreenSurface* dynamic_cast<QOffscreenSurface*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOffscreenSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOffscreenSurface_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOffscreenSurface* dynamic_cast<QOffscreenSurface*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOffscreenSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOffscreenSurface_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOffscreenSurface> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QOffscreenSurface* static_cast<QOffscreenSurface*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QOffscreenSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOffscreenSurface_ptr1(
            ptr.as_raw_ptr() as *mut crate::QSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOffscreenSurface* static_cast<QOffscreenSurface*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QOffscreenSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOffscreenSurface_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QSurface> for crate::QOffscreenSurface {
    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QOffscreenSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOffscreenSurface>,
    ) -> ::cpp_core::Ptr<crate::QSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr1(
            ptr.as_raw_ptr() as *mut crate::QOffscreenSurface
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QOffscreenSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOffscreenSurface>,
    ) -> ::cpp_core::MutPtr<crate::QSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QOffscreenSurface> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QOffscreenSurface* dynamic_cast<QOffscreenSurface*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QOffscreenSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOffscreenSurface_ptr1(
            ptr.as_raw_ptr() as *mut crate::QSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOffscreenSurface* dynamic_cast<QOffscreenSurface*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QOffscreenSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOffscreenSurface_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLContextGroup> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContextGroup* static_cast<QOpenGLContextGroup*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLContextGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLContextGroup_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLContextGroup* static_cast<QOpenGLContextGroup*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLContextGroup> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLContextGroup_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLContextGroup {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLContextGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLContextGroup>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr13(
            ptr.as_raw_ptr() as *mut crate::QOpenGLContextGroup
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLContextGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLContextGroup>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr13(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLContextGroup {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLContextGroup* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr13(
                self as *const crate::QOpenGLContextGroup as *mut crate::QOpenGLContextGroup,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLContextGroup {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLContextGroup* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr13(
                self as *mut crate::QOpenGLContextGroup,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLContextGroup> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContextGroup* dynamic_cast<QOpenGLContextGroup*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLContextGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLContextGroup_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLContextGroup* dynamic_cast<QOpenGLContextGroup*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLContextGroup> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLContextGroup_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLContext> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* static_cast<QOpenGLContext*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLContext_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* static_cast<QOpenGLContext*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLContext_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLContext {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLContext* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLContext>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr14(
            ptr.as_raw_ptr() as *mut crate::QOpenGLContext
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLContext* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLContext>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr14(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLContext {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLContext* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr14(
                self as *const crate::QOpenGLContext as *mut crate::QOpenGLContext,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLContext {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLContext* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr14(
                self as *mut crate::QOpenGLContext,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLContext> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* dynamic_cast<QOpenGLContext*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLContext> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLContext_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLContext* dynamic_cast<QOpenGLContext*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLContext> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLContext_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLDebugLogger> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugLogger* static_cast<QOpenGLDebugLogger*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLDebugLogger> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLDebugLogger_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugLogger* static_cast<QOpenGLDebugLogger*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLDebugLogger> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLDebugLogger_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLDebugLogger {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLDebugLogger* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLDebugLogger>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr15(
            ptr.as_raw_ptr() as *mut crate::QOpenGLDebugLogger
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLDebugLogger* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLDebugLogger>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr15(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLDebugLogger {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLDebugLogger* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr15(
                self as *const crate::QOpenGLDebugLogger as *mut crate::QOpenGLDebugLogger,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLDebugLogger {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLDebugLogger* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr15(
                self as *mut crate::QOpenGLDebugLogger,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLDebugLogger> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugLogger* dynamic_cast<QOpenGLDebugLogger*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLDebugLogger> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLDebugLogger_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLDebugLogger* dynamic_cast<QOpenGLDebugLogger*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLDebugLogger> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLDebugLogger_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLExtraFunctions> for crate::QOpenGLFunctions {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLExtraFunctions* static_cast<QOpenGLExtraFunctions*>(QOpenGLFunctions* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLFunctions>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLExtraFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLExtraFunctions_ptr(
            ptr.as_raw_ptr() as *mut crate::QOpenGLFunctions,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLExtraFunctions* static_cast<QOpenGLExtraFunctions*>(QOpenGLFunctions* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLFunctions>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLExtraFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLExtraFunctions_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QOpenGLFunctions> for crate::QOpenGLExtraFunctions {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFunctions* static_cast<QOpenGLFunctions*>(QOpenGLExtraFunctions* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLExtraFunctions>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLFunctions> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLFunctions_ptr(
            ptr.as_raw_ptr() as *mut crate::QOpenGLExtraFunctions,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLFunctions* static_cast<QOpenGLFunctions*>(QOpenGLExtraFunctions* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLExtraFunctions>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLFunctions> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLFunctions_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLExtraFunctions {
    type Target = crate::QOpenGLFunctions;
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFunctions* static_cast<QOpenGLFunctions*>(QOpenGLExtraFunctions* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QOpenGLFunctions {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLFunctions_ptr(
                self as *const crate::QOpenGLExtraFunctions as *mut crate::QOpenGLExtraFunctions,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLExtraFunctions {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLFunctions* static_cast<QOpenGLFunctions*>(QOpenGLExtraFunctions* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QOpenGLFunctions {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLFunctions_ptr(
                self as *mut crate::QOpenGLExtraFunctions,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLPaintDevice> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLPaintDevice* static_cast<QOpenGLPaintDevice*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLPaintDevice_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLPaintDevice* static_cast<QOpenGLPaintDevice*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLPaintDevice_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QOpenGLPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QOpenGLPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr3(
            ptr.as_raw_ptr() as *mut crate::QOpenGLPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QOpenGLPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLPaintDevice {
    type Target = crate::QPaintDevice;
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QOpenGLPaintDevice* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr3(
                self as *const crate::QOpenGLPaintDevice as *mut crate::QOpenGLPaintDevice,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QOpenGLPaintDevice* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr3(
                self as *mut crate::QOpenGLPaintDevice,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLPaintDevice> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLPaintDevice* dynamic_cast<QOpenGLPaintDevice*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLPaintDevice_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLPaintDevice* dynamic_cast<QOpenGLPaintDevice*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLPaintDevice_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLShader> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader* static_cast<QOpenGLShader*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLShader_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader* static_cast<QOpenGLShader*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLShader> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLShader_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLShader {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLShader* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLShader>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr16(
            ptr.as_raw_ptr() as *mut crate::QOpenGLShader
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLShader* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLShader>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr16(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLShader {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLShader* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr16(
                self as *const crate::QOpenGLShader as *mut crate::QOpenGLShader,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLShader {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLShader* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr16(
                self as *mut crate::QOpenGLShader,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLShader> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader* dynamic_cast<QOpenGLShader*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLShader> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLShader_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLShader* dynamic_cast<QOpenGLShader*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLShader> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLShader_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLShaderProgram> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShaderProgram* static_cast<QOpenGLShaderProgram*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLShaderProgram> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLShaderProgram_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLShaderProgram* static_cast<QOpenGLShaderProgram*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLShaderProgram> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLShaderProgram_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLShaderProgram {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLShaderProgram* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLShaderProgram>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr17(
            ptr.as_raw_ptr() as *mut crate::QOpenGLShaderProgram
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLShaderProgram* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLShaderProgram>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr17(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLShaderProgram {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLShaderProgram* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr17(
                self as *const crate::QOpenGLShaderProgram as *mut crate::QOpenGLShaderProgram,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLShaderProgram {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLShaderProgram* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr17(
                self as *mut crate::QOpenGLShaderProgram,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLShaderProgram> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLShaderProgram* dynamic_cast<QOpenGLShaderProgram*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLShaderProgram> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLShaderProgram_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLShaderProgram* dynamic_cast<QOpenGLShaderProgram*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLShaderProgram> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLShaderProgram_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLTimerQuery> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTimerQuery* static_cast<QOpenGLTimerQuery*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLTimerQuery> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLTimerQuery_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLTimerQuery* static_cast<QOpenGLTimerQuery*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLTimerQuery> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLTimerQuery_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLTimerQuery {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLTimerQuery* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLTimerQuery>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr18(
            ptr.as_raw_ptr() as *mut crate::QOpenGLTimerQuery
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLTimerQuery* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLTimerQuery>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr18(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLTimerQuery {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLTimerQuery* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr18(
                self as *const crate::QOpenGLTimerQuery as *mut crate::QOpenGLTimerQuery,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLTimerQuery {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLTimerQuery* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr18(
                self as *mut crate::QOpenGLTimerQuery,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLTimerQuery> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTimerQuery* dynamic_cast<QOpenGLTimerQuery*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLTimerQuery> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLTimerQuery_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLTimerQuery* dynamic_cast<QOpenGLTimerQuery*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLTimerQuery> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLTimerQuery_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLTimeMonitor> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTimeMonitor* static_cast<QOpenGLTimeMonitor*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLTimeMonitor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLTimeMonitor_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLTimeMonitor* static_cast<QOpenGLTimeMonitor*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLTimeMonitor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLTimeMonitor_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLTimeMonitor {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLTimeMonitor* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLTimeMonitor>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr19(
            ptr.as_raw_ptr() as *mut crate::QOpenGLTimeMonitor
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLTimeMonitor* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLTimeMonitor>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr19(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLTimeMonitor {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLTimeMonitor* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr19(
                self as *const crate::QOpenGLTimeMonitor as *mut crate::QOpenGLTimeMonitor,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLTimeMonitor {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLTimeMonitor* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr19(
                self as *mut crate::QOpenGLTimeMonitor,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLTimeMonitor> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTimeMonitor* dynamic_cast<QOpenGLTimeMonitor*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLTimeMonitor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLTimeMonitor_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLTimeMonitor* dynamic_cast<QOpenGLTimeMonitor*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLTimeMonitor> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLTimeMonitor_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLVertexArrayObject> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLVertexArrayObject* static_cast<QOpenGLVertexArrayObject*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLVertexArrayObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLVertexArrayObject_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLVertexArrayObject* static_cast<QOpenGLVertexArrayObject*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLVertexArrayObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLVertexArrayObject_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLVertexArrayObject {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLVertexArrayObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLVertexArrayObject>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr20(
            ptr.as_raw_ptr() as *mut crate::QOpenGLVertexArrayObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLVertexArrayObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLVertexArrayObject>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr20(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLVertexArrayObject {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLVertexArrayObject* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr20(
                self as *const crate::QOpenGLVertexArrayObject
                    as *mut crate::QOpenGLVertexArrayObject,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLVertexArrayObject {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLVertexArrayObject* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr20(
                self as *mut crate::QOpenGLVertexArrayObject,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLVertexArrayObject> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLVertexArrayObject* dynamic_cast<QOpenGLVertexArrayObject*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLVertexArrayObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLVertexArrayObject_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLVertexArrayObject* dynamic_cast<QOpenGLVertexArrayObject*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLVertexArrayObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLVertexArrayObject_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPaintDeviceWindow> for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QWindow>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr(
            ptr.as_raw_ptr() as *mut crate::QWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindow>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QWindow> for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::Ptr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr2(
            ptr.as_raw_ptr() as *mut crate::QPaintDeviceWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPaintDeviceWindow {
    type Target = crate::QWindow;
    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QWindow {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr2(
                self as *const crate::QPaintDeviceWindow as *mut crate::QPaintDeviceWindow,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QWindow {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr2(
                self as *mut crate::QPaintDeviceWindow,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPaintDeviceWindow> for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* dynamic_cast<QPaintDeviceWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QWindow>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintDeviceWindow_ptr(
            ptr.as_raw_ptr() as *mut crate::QWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* dynamic_cast<QPaintDeviceWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindow>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintDeviceWindow_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPaintDeviceWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr21(
            ptr.as_raw_ptr() as *mut crate::QPaintDeviceWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr21(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPaintDeviceWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* dynamic_cast<QPaintDeviceWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintDeviceWindow_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* dynamic_cast<QPaintDeviceWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintDeviceWindow_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPaintDeviceWindow> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr2(
            ptr.as_raw_ptr() as *mut crate::QSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QSurface> for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::Ptr<crate::QSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr2(
            ptr.as_raw_ptr() as *mut crate::QPaintDeviceWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::MutPtr<crate::QSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPaintDeviceWindow> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* dynamic_cast<QPaintDeviceWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintDeviceWindow_ptr2(
            ptr.as_raw_ptr() as *mut crate::QSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* dynamic_cast<QPaintDeviceWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintDeviceWindow_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPaintDeviceWindow> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr3(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr4(
            ptr.as_raw_ptr() as *mut crate::QPaintDeviceWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPaintDeviceWindow> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* dynamic_cast<QPaintDeviceWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintDeviceWindow_ptr3(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* dynamic_cast<QPaintDeviceWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPaintDeviceWindow_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLWindow> for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDeviceWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDeviceWindow> for crate::QOpenGLWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr4(
            ptr.as_raw_ptr() as *mut crate::QOpenGLWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QOpenGLWindow {
    type Target = crate::QPaintDeviceWindow;
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPaintDeviceWindow {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr4(
                self as *const crate::QOpenGLWindow as *mut crate::QOpenGLWindow,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QOpenGLWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QPaintDeviceWindow {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr4(
                self as *mut crate::QOpenGLWindow,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLWindow> for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDeviceWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLWindow> for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QWindow>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr1(
            ptr.as_raw_ptr() as *mut crate::QWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindow>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QWindow> for crate::QOpenGLWindow {
    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::Ptr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr3(
            ptr.as_raw_ptr() as *mut crate::QOpenGLWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLWindow> for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QWindow>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr1(
            ptr.as_raw_ptr() as *mut crate::QWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindow>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QOpenGLWindow {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr22(
            ptr.as_raw_ptr() as *mut crate::QOpenGLWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr22(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLWindow> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr3(
            ptr.as_raw_ptr() as *mut crate::QSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QSurface> for crate::QOpenGLWindow {
    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::Ptr<crate::QSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr3(
            ptr.as_raw_ptr() as *mut crate::QOpenGLWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::MutPtr<crate::QSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLWindow> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr3(
            ptr.as_raw_ptr() as *mut crate::QSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QOpenGLWindow> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr4(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* static_cast<QOpenGLWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QOpenGLWindow_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QOpenGLWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr5(
            ptr.as_raw_ptr() as *mut crate::QOpenGLWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QOpenGLWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QOpenGLWindow>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr5(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QOpenGLWindow> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QOpenGLWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr4(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QOpenGLWindow* dynamic_cast<QOpenGLWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QOpenGLWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QOpenGLWindow_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPagedPaintDevice> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice* static_cast<QPagedPaintDevice*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPagedPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPagedPaintDevice_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice* static_cast<QPagedPaintDevice*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPagedPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPagedPaintDevice_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QPagedPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPagedPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPagedPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr6(
            ptr.as_raw_ptr() as *mut crate::QPagedPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPagedPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPagedPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr6(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPagedPaintDevice {
    type Target = crate::QPaintDevice;
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPagedPaintDevice* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr6(
                self as *const crate::QPagedPaintDevice as *mut crate::QPagedPaintDevice,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPagedPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPagedPaintDevice* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr6(
                self as *mut crate::QPagedPaintDevice,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPagedPaintDevice> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice* dynamic_cast<QPagedPaintDevice*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPagedPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPagedPaintDevice_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice* dynamic_cast<QPagedPaintDevice*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPagedPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPagedPaintDevice_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPdfWriter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* static_cast<QPdfWriter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPdfWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPdfWriter_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* static_cast<QPdfWriter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QPdfWriter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPdfWriter_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPdfWriter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPdfWriter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPdfWriter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr23(
            ptr.as_raw_ptr() as *mut crate::QPdfWriter
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPdfWriter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPdfWriter>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr23(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPdfWriter {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPdfWriter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr23(
                self as *const crate::QPdfWriter as *mut crate::QPdfWriter,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPdfWriter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPdfWriter* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr23(self as *mut crate::QPdfWriter)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPdfWriter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* dynamic_cast<QPdfWriter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPdfWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPdfWriter_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* dynamic_cast<QPdfWriter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QPdfWriter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPdfWriter_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPdfWriter> for crate::QPagedPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* static_cast<QPdfWriter*>(QPagedPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPagedPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPdfWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPdfWriter_ptr1(
            ptr.as_raw_ptr() as *mut crate::QPagedPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* static_cast<QPdfWriter*>(QPagedPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPagedPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPdfWriter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPdfWriter_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPagedPaintDevice> for crate::QPdfWriter {
    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice* static_cast<QPagedPaintDevice*>(QPdfWriter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPdfWriter>,
    ) -> ::cpp_core::Ptr<crate::QPagedPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPagedPaintDevice_ptr1(
            ptr.as_raw_ptr() as *mut crate::QPdfWriter,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPagedPaintDevice* static_cast<QPagedPaintDevice*>(QPdfWriter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPdfWriter>,
    ) -> ::cpp_core::MutPtr<crate::QPagedPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPagedPaintDevice_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPdfWriter> for crate::QPagedPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* dynamic_cast<QPdfWriter*>(QPagedPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPagedPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPdfWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPdfWriter_ptr1(
            ptr.as_raw_ptr() as *mut crate::QPagedPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* dynamic_cast<QPdfWriter*>(QPagedPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPagedPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPdfWriter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPdfWriter_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPdfWriter> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* static_cast<QPdfWriter*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPdfWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPdfWriter_ptr2(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* static_cast<QPdfWriter*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPdfWriter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPdfWriter_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QPdfWriter {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPdfWriter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPdfWriter>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr7(
            ptr.as_raw_ptr() as *mut crate::QPdfWriter,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPdfWriter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPdfWriter>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr7(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPdfWriter> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* dynamic_cast<QPdfWriter*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPdfWriter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPdfWriter_ptr2(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPdfWriter* dynamic_cast<QPdfWriter*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPdfWriter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPdfWriter_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPicture> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPicture* static_cast<QPicture*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPicture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPicture_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPicture* static_cast<QPicture*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPicture> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPicture_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QPicture {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPicture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPicture>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr8(
            ptr.as_raw_ptr() as *mut crate::QPicture,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPicture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPicture>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr8(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPicture {
    type Target = crate::QPaintDevice;
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPicture* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr8(
                self as *const crate::QPicture as *mut crate::QPicture,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPicture {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QPicture* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QPaintDevice {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr8(self as *mut crate::QPicture)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPicture> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QPicture* dynamic_cast<QPicture*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QPicture> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPicture_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPicture* dynamic_cast<QPicture*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QPicture> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPicture_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPictureFormatPlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QPictureFormatPlugin* static_cast<QPictureFormatPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPictureFormatPlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPictureFormatPlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPictureFormatPlugin* static_cast<QPictureFormatPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QPictureFormatPlugin> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPictureFormatPlugin_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPictureFormatPlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPictureFormatPlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPictureFormatPlugin>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr24(
            ptr.as_raw_ptr() as *mut crate::QPictureFormatPlugin
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPictureFormatPlugin* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPictureFormatPlugin>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr24(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPictureFormatPlugin {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPictureFormatPlugin* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr24(
                self as *const crate::QPictureFormatPlugin as *mut crate::QPictureFormatPlugin,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QPictureFormatPlugin {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QPictureFormatPlugin* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr24(
                self as *mut crate::QPictureFormatPlugin,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPictureFormatPlugin> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QPictureFormatPlugin* dynamic_cast<QPictureFormatPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPictureFormatPlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPictureFormatPlugin_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPictureFormatPlugin* dynamic_cast<QPictureFormatPlugin*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QPictureFormatPlugin> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QPictureFormatPlugin_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRasterWindow> for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDeviceWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDeviceWindow> for crate::QRasterWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRasterWindow>,
    ) -> ::cpp_core::Ptr<crate::QPaintDeviceWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr5(
            ptr.as_raw_ptr() as *mut crate::QRasterWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRasterWindow>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDeviceWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr5(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRasterWindow {
    type Target = crate::QPaintDeviceWindow;
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPaintDeviceWindow {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr5(
                self as *const crate::QRasterWindow as *mut crate::QRasterWindow,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QRasterWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDeviceWindow* static_cast<QPaintDeviceWindow*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QPaintDeviceWindow {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDeviceWindow_ptr5(
                self as *mut crate::QRasterWindow,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRasterWindow> for crate::QPaintDeviceWindow {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr(
            ptr.as_raw_ptr() as *mut crate::QPaintDeviceWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QPaintDeviceWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDeviceWindow>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRasterWindow> for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QWindow>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr1(
            ptr.as_raw_ptr() as *mut crate::QWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindow>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QWindow> for crate::QRasterWindow {
    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRasterWindow>,
    ) -> ::cpp_core::Ptr<crate::QWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr4(
            ptr.as_raw_ptr() as *mut crate::QRasterWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QWindow* static_cast<QWindow*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRasterWindow>,
    ) -> ::cpp_core::MutPtr<crate::QWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QWindow_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRasterWindow> for crate::QWindow {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QWindow>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr1(
            ptr.as_raw_ptr() as *mut crate::QWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QWindow>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRasterWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRasterWindow {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRasterWindow>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr25(
            ptr.as_raw_ptr() as *mut crate::QRasterWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRasterWindow>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr25(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRasterWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRasterWindow> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr3(
            ptr.as_raw_ptr() as *mut crate::QSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QSurface> for crate::QRasterWindow {
    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRasterWindow>,
    ) -> ::cpp_core::Ptr<crate::QSurface> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr4(
            ptr.as_raw_ptr() as *mut crate::QRasterWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSurface* static_cast<QSurface*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRasterWindow>,
    ) -> ::cpp_core::MutPtr<crate::QSurface> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QSurface_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRasterWindow> for crate::QSurface {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QSurface>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr3(
            ptr.as_raw_ptr() as *mut crate::QSurface,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QSurface* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSurface>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRasterWindow> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr4(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* static_cast<QRasterWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QRasterWindow_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPaintDevice> for crate::QRasterWindow {
    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRasterWindow>,
    ) -> ::cpp_core::Ptr<crate::QPaintDevice> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr9(
            ptr.as_raw_ptr() as *mut crate::QRasterWindow,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QPaintDevice* static_cast<QPaintDevice*>(QRasterWindow* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRasterWindow>,
    ) -> ::cpp_core::MutPtr<crate::QPaintDevice> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QPaintDevice_ptr9(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRasterWindow> for crate::QPaintDevice {
    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPaintDevice>,
    ) -> ::cpp_core::Ptr<crate::QRasterWindow> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr4(
            ptr.as_raw_ptr() as *mut crate::QPaintDevice,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRasterWindow* dynamic_cast<QRasterWindow*>(QPaintDevice* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QPaintDevice>,
    ) -> ::cpp_core::MutPtr<crate::QRasterWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRasterWindow_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QScreen> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QScreen* static_cast<QScreen*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QScreen_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QScreen* static_cast<QScreen*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QScreen_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QScreen {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QScreen* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScreen>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr26(
            ptr.as_raw_ptr() as *mut crate::QScreen
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QScreen* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QScreen>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr26(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QScreen {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QScreen* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr26(
                self as *const crate::QScreen as *mut crate::QScreen,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QScreen {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QScreen* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr26(self as *mut crate::QScreen)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QScreen> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QScreen* dynamic_cast<QScreen*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QScreen> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QScreen_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QScreen* dynamic_cast<QScreen*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QScreen> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QScreen_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSessionManager> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QSessionManager* static_cast<QSessionManager*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSessionManager> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QSessionManager_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSessionManager* static_cast<QSessionManager*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QSessionManager> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QSessionManager_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSessionManager {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QSessionManager* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSessionManager>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr27(
            ptr.as_raw_ptr() as *mut crate::QSessionManager
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QSessionManager* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSessionManager>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr27(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QSessionManager {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QSessionManager* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr27(
                self as *const crate::QSessionManager as *mut crate::QSessionManager,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QSessionManager {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QSessionManager* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr27(
                self as *mut crate::QSessionManager,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QSessionManager> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QSessionManager* dynamic_cast<QSessionManager*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSessionManager> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QSessionManager_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSessionManager* dynamic_cast<QSessionManager*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QSessionManager> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QSessionManager_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStandardItemModel> for ::qt_core::QAbstractItemModel {
    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* static_cast<QStandardItemModel*>(QAbstractItemModel* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QAbstractItemModel>,
    ) -> ::cpp_core::Ptr<crate::QStandardItemModel> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QStandardItemModel_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QAbstractItemModel,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* static_cast<QStandardItemModel*>(QAbstractItemModel* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QAbstractItemModel>,
    ) -> ::cpp_core::MutPtr<crate::QStandardItemModel> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QStandardItemModel_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QAbstractItemModel> for crate::QStandardItemModel {
    /// Calls C++ function: <span style='color: green;'>```QAbstractItemModel* static_cast<QAbstractItemModel*>(QStandardItemModel* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStandardItemModel>,
    ) -> ::cpp_core::Ptr<::qt_core::QAbstractItemModel> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QAbstractItemModel_ptr(
            ptr.as_raw_ptr() as *mut crate::QStandardItemModel,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QAbstractItemModel* static_cast<QAbstractItemModel*>(QStandardItemModel* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QStandardItemModel>,
    ) -> ::cpp_core::MutPtr<::qt_core::QAbstractItemModel> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAbstractItemModel_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QStandardItemModel {
    type Target = ::qt_core::QAbstractItemModel;
    /// Calls C++ function: <span style='color: green;'>```QAbstractItemModel* static_cast<QAbstractItemModel*>(QStandardItemModel* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QAbstractItemModel {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAbstractItemModel_ptr(
                self as *const crate::QStandardItemModel as *mut crate::QStandardItemModel,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QStandardItemModel {
    /// Calls C++ function: <span style='color: green;'>```QAbstractItemModel* static_cast<QAbstractItemModel*>(QStandardItemModel* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QAbstractItemModel {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QAbstractItemModel_ptr(
                self as *mut crate::QStandardItemModel,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QStandardItemModel> for ::qt_core::QAbstractItemModel {
    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* dynamic_cast<QStandardItemModel*>(QAbstractItemModel* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QAbstractItemModel>,
    ) -> ::cpp_core::Ptr<crate::QStandardItemModel> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QStandardItemModel_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QAbstractItemModel,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* dynamic_cast<QStandardItemModel*>(QAbstractItemModel* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QAbstractItemModel>,
    ) -> ::cpp_core::MutPtr<crate::QStandardItemModel> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QStandardItemModel_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStandardItemModel> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* static_cast<QStandardItemModel*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStandardItemModel> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QStandardItemModel_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* static_cast<QStandardItemModel*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QStandardItemModel> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QStandardItemModel_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QStandardItemModel {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QStandardItemModel* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStandardItemModel>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr28(
            ptr.as_raw_ptr() as *mut crate::QStandardItemModel
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QStandardItemModel* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QStandardItemModel>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr28(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QStandardItemModel> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* dynamic_cast<QStandardItemModel*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStandardItemModel> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QStandardItemModel_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QStandardItemModel* dynamic_cast<QStandardItemModel*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QStandardItemModel> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QStandardItemModel_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStyleHints> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QStyleHints* static_cast<QStyleHints*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStyleHints> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QStyleHints_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QStyleHints* static_cast<QStyleHints*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QStyleHints> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QStyleHints_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QStyleHints {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QStyleHints* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStyleHints>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr29(
            ptr.as_raw_ptr() as *mut crate::QStyleHints
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QStyleHints* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QStyleHints>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr29(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QStyleHints {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QStyleHints* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr29(
                self as *const crate::QStyleHints as *mut crate::QStyleHints,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QStyleHints {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QStyleHints* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr29(self as *mut crate::QStyleHints)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QStyleHints> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QStyleHints* dynamic_cast<QStyleHints*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStyleHints> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QStyleHints_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QStyleHints* dynamic_cast<QStyleHints*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QStyleHints> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QStyleHints_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextObject> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr30(
            ptr.as_raw_ptr() as *mut crate::QTextObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr30(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextObject {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr30(
                self as *const crate::QTextObject as *mut crate::QTextObject,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr30(self as *mut crate::QTextObject)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextObject> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextObject* dynamic_cast<QTextObject*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextObject_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextObject* dynamic_cast<QTextObject*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextObject_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextBlockGroup> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* static_cast<QTextBlockGroup*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<crate::QTextBlockGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockGroup_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* static_cast<QTextBlockGroup*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextBlockGroup> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockGroup_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextObject> for crate::QTextBlockGroup {
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextBlockGroup>,
    ) -> ::cpp_core::Ptr<crate::QTextObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextBlockGroup,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextBlockGroup>,
    ) -> ::cpp_core::MutPtr<crate::QTextObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextBlockGroup {
    type Target = crate::QTextObject;
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr1(
                self as *const crate::QTextBlockGroup as *mut crate::QTextBlockGroup,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextBlockGroup {
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr1(
                self as *mut crate::QTextBlockGroup,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextBlockGroup> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* dynamic_cast<QTextBlockGroup*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<crate::QTextBlockGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextBlockGroup_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* dynamic_cast<QTextBlockGroup*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextBlockGroup> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextBlockGroup_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextBlockGroup> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* static_cast<QTextBlockGroup*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextBlockGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockGroup_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* static_cast<QTextBlockGroup*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextBlockGroup> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockGroup_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextBlockGroup {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextBlockGroup>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr31(
            ptr.as_raw_ptr() as *mut crate::QTextBlockGroup
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextBlockGroup>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr31(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextBlockGroup> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* dynamic_cast<QTextBlockGroup*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextBlockGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextBlockGroup_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* dynamic_cast<QTextBlockGroup*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextBlockGroup> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextBlockGroup_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextFrame> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* static_cast<QTextFrame*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrame_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFrame* static_cast<QTextFrame*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrame_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextObject> for crate::QTextFrame {
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextFrame>,
    ) -> ::cpp_core::Ptr<crate::QTextObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr2(
            ptr.as_raw_ptr() as *mut crate::QTextFrame,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFrame>,
    ) -> ::cpp_core::MutPtr<crate::QTextObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextFrame {
    type Target = crate::QTextObject;
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr2(
                self as *const crate::QTextFrame as *mut crate::QTextFrame,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextFrame {
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr2(
                self as *mut crate::QTextFrame,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextFrame> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* dynamic_cast<QTextFrame*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextFrame_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFrame* dynamic_cast<QTextFrame*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextFrame_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextFrame> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* static_cast<QTextFrame*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrame_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFrame* static_cast<QTextFrame*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrame_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextFrame {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextFrame>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr32(
            ptr.as_raw_ptr() as *mut crate::QTextFrame
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFrame>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr32(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextFrame> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* dynamic_cast<QTextFrame*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextFrame_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFrame* dynamic_cast<QTextFrame*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextFrame_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSyntaxHighlighter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QSyntaxHighlighter* static_cast<QSyntaxHighlighter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSyntaxHighlighter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QSyntaxHighlighter_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSyntaxHighlighter* static_cast<QSyntaxHighlighter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QSyntaxHighlighter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QSyntaxHighlighter_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSyntaxHighlighter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QSyntaxHighlighter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSyntaxHighlighter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr33(
            ptr.as_raw_ptr() as *mut crate::QSyntaxHighlighter
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QSyntaxHighlighter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QSyntaxHighlighter>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr33(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QSyntaxHighlighter {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QSyntaxHighlighter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr33(
                self as *const crate::QSyntaxHighlighter as *mut crate::QSyntaxHighlighter,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QSyntaxHighlighter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QSyntaxHighlighter* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr33(
                self as *mut crate::QSyntaxHighlighter,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QSyntaxHighlighter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QSyntaxHighlighter* dynamic_cast<QSyntaxHighlighter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSyntaxHighlighter> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QSyntaxHighlighter_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QSyntaxHighlighter* dynamic_cast<QSyntaxHighlighter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QSyntaxHighlighter> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QSyntaxHighlighter_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextList> for crate::QTextBlockGroup {
    /// Calls C++ function: <span style='color: green;'>```QTextList* static_cast<QTextList*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextBlockGroup>,
    ) -> ::cpp_core::Ptr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextList_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextBlockGroup
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextList* static_cast<QTextList*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextBlockGroup>,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextList_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextBlockGroup> for crate::QTextList {
    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* static_cast<QTextBlockGroup*>(QTextList* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextList>,
    ) -> ::cpp_core::Ptr<crate::QTextBlockGroup> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockGroup_ptr2(
            ptr.as_raw_ptr() as *mut crate::QTextList,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* static_cast<QTextBlockGroup*>(QTextList* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextList>,
    ) -> ::cpp_core::MutPtr<crate::QTextBlockGroup> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockGroup_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextList {
    type Target = crate::QTextBlockGroup;
    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* static_cast<QTextBlockGroup*>(QTextList* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextBlockGroup {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockGroup_ptr2(
                self as *const crate::QTextList as *mut crate::QTextList,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextList {
    /// Calls C++ function: <span style='color: green;'>```QTextBlockGroup* static_cast<QTextBlockGroup*>(QTextList* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextBlockGroup {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextBlockGroup_ptr2(
                self as *mut crate::QTextList,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextList> for crate::QTextBlockGroup {
    /// Calls C++ function: <span style='color: green;'>```QTextList* dynamic_cast<QTextList*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QTextBlockGroup>,
    ) -> ::cpp_core::Ptr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextList_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextBlockGroup
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextList* dynamic_cast<QTextList*>(QTextBlockGroup* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextBlockGroup>,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextList_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextList> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QTextList* static_cast<QTextList*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextList_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextList* static_cast<QTextList*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextList_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextObject> for crate::QTextList {
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextList* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextList>,
    ) -> ::cpp_core::Ptr<crate::QTextObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr3(
            ptr.as_raw_ptr() as *mut crate::QTextList,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextList* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextList>,
    ) -> ::cpp_core::MutPtr<crate::QTextObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextList> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QTextList* dynamic_cast<QTextList*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextList_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextList* dynamic_cast<QTextList*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextList_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextList> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextList* static_cast<QTextList*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextList_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextList* static_cast<QTextList*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextList_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextList {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextList* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextList>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr34(
            ptr.as_raw_ptr() as *mut crate::QTextList
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextList* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextList>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr34(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextList> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextList* dynamic_cast<QTextList*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextList> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextList_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextList* dynamic_cast<QTextList*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextList> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextList_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextTable> for crate::QTextFrame {
    /// Calls C++ function: <span style='color: green;'>```QTextTable* static_cast<QTextTable*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextFrame>,
    ) -> ::cpp_core::Ptr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTable_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextFrame
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTable* static_cast<QTextTable*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFrame>,
    ) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTable_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextFrame> for crate::QTextTable {
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* static_cast<QTextFrame*>(QTextTable* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextTable>,
    ) -> ::cpp_core::Ptr<crate::QTextFrame> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrame_ptr2(
            ptr.as_raw_ptr() as *mut crate::QTextTable
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextFrame* static_cast<QTextFrame*>(QTextTable* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextTable>,
    ) -> ::cpp_core::MutPtr<crate::QTextFrame> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrame_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextTable {
    type Target = crate::QTextFrame;
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* static_cast<QTextFrame*>(QTextTable* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QTextFrame {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrame_ptr2(
                self as *const crate::QTextTable as *mut crate::QTextTable,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QTextTable {
    /// Calls C++ function: <span style='color: green;'>```QTextFrame* static_cast<QTextFrame*>(QTextTable* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QTextFrame {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextFrame_ptr2(self as *mut crate::QTextTable)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextTable> for crate::QTextFrame {
    /// Calls C++ function: <span style='color: green;'>```QTextTable* dynamic_cast<QTextTable*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QTextFrame>,
    ) -> ::cpp_core::Ptr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextTable_ptr(
            ptr.as_raw_ptr() as *mut crate::QTextFrame
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTable* dynamic_cast<QTextTable*>(QTextFrame* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextFrame>,
    ) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextTable_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextTable> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QTextTable* static_cast<QTextTable*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTable_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTable* static_cast<QTextTable*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTable_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QTextObject> for crate::QTextTable {
    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextTable* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextTable>,
    ) -> ::cpp_core::Ptr<crate::QTextObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr4(
            ptr.as_raw_ptr() as *mut crate::QTextTable,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextObject* static_cast<QTextObject*>(QTextTable* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextTable>,
    ) -> ::cpp_core::MutPtr<crate::QTextObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextObject_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextTable> for crate::QTextObject {
    /// Calls C++ function: <span style='color: green;'>```QTextTable* dynamic_cast<QTextTable*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QTextObject>,
    ) -> ::cpp_core::Ptr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextTable_ptr1(
            ptr.as_raw_ptr() as *mut crate::QTextObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTable* dynamic_cast<QTextTable*>(QTextObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextTable_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextTable> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextTable* static_cast<QTextTable*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTable_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTable* static_cast<QTextTable*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QTextTable_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextTable {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextTable* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextTable>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr35(
            ptr.as_raw_ptr() as *mut crate::QTextTable
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QTextTable* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QTextTable>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr35(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextTable> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QTextTable* dynamic_cast<QTextTable*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextTable> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextTable_ptr2(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QTextTable* dynamic_cast<QTextTable*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QTextTable> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QTextTable_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr36(
            ptr.as_raw_ptr() as *mut crate::QValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr36(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QValidator {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QValidator* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr36(
                self as *const crate::QValidator as *mut crate::QValidator,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QValidator* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr36(self as *mut crate::QValidator)
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QValidator* dynamic_cast<QValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QValidator_ptr(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QValidator* dynamic_cast<QValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QValidator_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QIntValidator> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QIntValidator* static_cast<QIntValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<crate::QIntValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QIntValidator_ptr(
            ptr.as_raw_ptr() as *mut crate::QValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QIntValidator* static_cast<QIntValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<crate::QIntValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QIntValidator_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QValidator> for crate::QIntValidator {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QIntValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QIntValidator>,
    ) -> ::cpp_core::Ptr<crate::QValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr1(
            ptr.as_raw_ptr() as *mut crate::QIntValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QIntValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QIntValidator>,
    ) -> ::cpp_core::MutPtr<crate::QValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QIntValidator {
    type Target = crate::QValidator;
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QIntValidator* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QValidator {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr1(
                self as *const crate::QIntValidator as *mut crate::QIntValidator,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QIntValidator {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QIntValidator* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QValidator {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr1(
                self as *mut crate::QIntValidator,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QIntValidator> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QIntValidator* dynamic_cast<QIntValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<crate::QIntValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QIntValidator_ptr(
            ptr.as_raw_ptr() as *mut crate::QValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QIntValidator* dynamic_cast<QIntValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<crate::QIntValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QIntValidator_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QIntValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QIntValidator* static_cast<QIntValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QIntValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QIntValidator_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QIntValidator* static_cast<QIntValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QIntValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QIntValidator_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QIntValidator {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QIntValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QIntValidator>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr37(
            ptr.as_raw_ptr() as *mut crate::QIntValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QIntValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QIntValidator>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr37(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QIntValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QIntValidator* dynamic_cast<QIntValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QIntValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QIntValidator_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QIntValidator* dynamic_cast<QIntValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QIntValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QIntValidator_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDoubleValidator> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator* static_cast<QDoubleValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<crate::QDoubleValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDoubleValidator_ptr(
            ptr.as_raw_ptr() as *mut crate::QValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator* static_cast<QDoubleValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<crate::QDoubleValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDoubleValidator_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QValidator> for crate::QDoubleValidator {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QDoubleValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDoubleValidator>,
    ) -> ::cpp_core::Ptr<crate::QValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr2(
            ptr.as_raw_ptr() as *mut crate::QDoubleValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QDoubleValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDoubleValidator>,
    ) -> ::cpp_core::MutPtr<crate::QValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr2(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDoubleValidator {
    type Target = crate::QValidator;
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QDoubleValidator* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QValidator {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr2(
                self as *const crate::QDoubleValidator as *mut crate::QDoubleValidator,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QDoubleValidator {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QDoubleValidator* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QValidator {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr2(
                self as *mut crate::QDoubleValidator,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDoubleValidator> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator* dynamic_cast<QDoubleValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<crate::QDoubleValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDoubleValidator_ptr(
            ptr.as_raw_ptr() as *mut crate::QValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator* dynamic_cast<QDoubleValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<crate::QDoubleValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDoubleValidator_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDoubleValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator* static_cast<QDoubleValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDoubleValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QDoubleValidator_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator* static_cast<QDoubleValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QDoubleValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QDoubleValidator_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QDoubleValidator {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QDoubleValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDoubleValidator>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr38(
            ptr.as_raw_ptr() as *mut crate::QDoubleValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QDoubleValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QDoubleValidator>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr38(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDoubleValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator* dynamic_cast<QDoubleValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDoubleValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDoubleValidator_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QDoubleValidator* dynamic_cast<QDoubleValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QDoubleValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QDoubleValidator_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRegExpValidator> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QRegExpValidator* static_cast<QRegExpValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<crate::QRegExpValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRegExpValidator_ptr(
            ptr.as_raw_ptr() as *mut crate::QValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegExpValidator* static_cast<QRegExpValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<crate::QRegExpValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QRegExpValidator_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QValidator> for crate::QRegExpValidator {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QRegExpValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRegExpValidator>,
    ) -> ::cpp_core::Ptr<crate::QValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr3(
            ptr.as_raw_ptr() as *mut crate::QRegExpValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QRegExpValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRegExpValidator>,
    ) -> ::cpp_core::MutPtr<crate::QValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr3(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRegExpValidator {
    type Target = crate::QValidator;
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QRegExpValidator* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QValidator {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr3(
                self as *const crate::QRegExpValidator as *mut crate::QRegExpValidator,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QRegExpValidator {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QRegExpValidator* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QValidator {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr3(
                self as *mut crate::QRegExpValidator,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRegExpValidator> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QRegExpValidator* dynamic_cast<QRegExpValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<crate::QRegExpValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRegExpValidator_ptr(
            ptr.as_raw_ptr() as *mut crate::QValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegExpValidator* dynamic_cast<QRegExpValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<crate::QRegExpValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRegExpValidator_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRegExpValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QRegExpValidator* static_cast<QRegExpValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRegExpValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRegExpValidator_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegExpValidator* static_cast<QRegExpValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QRegExpValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QRegExpValidator_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRegExpValidator {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QRegExpValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRegExpValidator>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr39(
            ptr.as_raw_ptr() as *mut crate::QRegExpValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QRegExpValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRegExpValidator>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr39(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRegExpValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QRegExpValidator* dynamic_cast<QRegExpValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRegExpValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRegExpValidator_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegExpValidator* dynamic_cast<QRegExpValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QRegExpValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRegExpValidator_ptr1(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRegularExpressionValidator> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QRegularExpressionValidator* static_cast<QRegularExpressionValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<crate::QRegularExpressionValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRegularExpressionValidator_ptr(
            ptr.as_raw_ptr() as *mut crate::QValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegularExpressionValidator* static_cast<QRegularExpressionValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<crate::QRegularExpressionValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRegularExpressionValidator_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QValidator> for crate::QRegularExpressionValidator {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QRegularExpressionValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRegularExpressionValidator>,
    ) -> ::cpp_core::Ptr<crate::QValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr4(
            ptr.as_raw_ptr() as *mut crate::QRegularExpressionValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QRegularExpressionValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRegularExpressionValidator>,
    ) -> ::cpp_core::MutPtr<crate::QValidator> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr4(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRegularExpressionValidator {
    type Target = crate::QValidator;
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QRegularExpressionValidator* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QValidator {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr4(
                self as *const crate::QRegularExpressionValidator
                    as *mut crate::QRegularExpressionValidator,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::QRegularExpressionValidator {
    /// Calls C++ function: <span style='color: green;'>```QValidator* static_cast<QValidator*>(QRegularExpressionValidator* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut crate::QValidator {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QValidator_ptr4(
                self as *mut crate::QRegularExpressionValidator,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRegularExpressionValidator> for crate::QValidator {
    /// Calls C++ function: <span style='color: green;'>```QRegularExpressionValidator* dynamic_cast<QRegularExpressionValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QValidator>,
    ) -> ::cpp_core::Ptr<crate::QRegularExpressionValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRegularExpressionValidator_ptr(
            ptr.as_raw_ptr() as *mut crate::QValidator,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegularExpressionValidator* dynamic_cast<QRegularExpressionValidator*>(QValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<crate::QValidator>,
    ) -> ::cpp_core::MutPtr<crate::QRegularExpressionValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRegularExpressionValidator_ptr(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRegularExpressionValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QRegularExpressionValidator* static_cast<QRegularExpressionValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRegularExpressionValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRegularExpressionValidator_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegularExpressionValidator* static_cast<QRegularExpressionValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QRegularExpressionValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QRegularExpressionValidator_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRegularExpressionValidator {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QRegularExpressionValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRegularExpressionValidator>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr40(
            ptr.as_raw_ptr() as *mut crate::QRegularExpressionValidator
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(QRegularExpressionValidator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::QRegularExpressionValidator>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr40(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRegularExpressionValidator> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```QRegularExpressionValidator* dynamic_cast<QRegularExpressionValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRegularExpressionValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRegularExpressionValidator_ptr1(
            ptr.as_raw_ptr() as *mut ::qt_core::QObject,
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QRegularExpressionValidator* dynamic_cast<QRegularExpressionValidator*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::QRegularExpressionValidator> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_QRegularExpressionValidator_ptr1(
            ptr.as_mut_raw_ptr(),
        );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode::~ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_dctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode(self as *mut crate::RawSlotOfMode)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQRegExp {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_dctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref(self as *mut crate::RawSlotOfQRegExp)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQTextCursor {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_dctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref(self as *mut crate::RawSlotOfQTextCursor)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQRect {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_dctr_qt_gui_ffi_slot_wrapper_QRect_const_ref(self as *mut crate::RawSlotOfQRect)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQPalette {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_dctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref(self as *mut crate::RawSlotOfQPalette)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQUrl {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_dctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref(self as *mut crate::RawSlotOfQUrl)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQSize {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_dctr_qt_gui_ffi_slot_wrapper_QSize_const_ref(self as *mut crate::RawSlotOfQSize)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfNotation {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation::~ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_dctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation(self as *mut crate::RawSlotOfNotation)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfLayoutDirection {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection::~ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_dctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection(self as *mut crate::RawSlotOfLayoutDirection)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfApplicationState {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState::~ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_dctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState(self as *mut crate::RawSlotOfApplicationState)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQOpenglDebugMessage {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_dctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref(self as *mut crate::RawSlotOfQOpenglDebugMessage)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQTextBlock {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_dctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref(self as *mut crate::RawSlotOfQTextBlock)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQSessionManager {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref::~ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_dctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref(self as *mut crate::RawSlotOfQSessionManager)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfTabFocusBehavior {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior::~ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_dctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior(self as *mut crate::RawSlotOfTabFocusBehavior)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfMovieState {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState::~ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_dctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState(self as *mut crate::RawSlotOfMovieState)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQRectF {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_dctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref(self as *mut crate::RawSlotOfQRectF)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfWindowModality {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality::~ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_dctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality(self as *mut crate::RawSlotOfWindowModality)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfScreenOrientation {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation::~ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_dctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation(self as *mut crate::RawSlotOfScreenOrientation)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQSizeF {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_dctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref(self as *mut crate::RawSlotOfQSizeF)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfVisibility {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility::~ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_dctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility(self as *mut crate::RawSlotOfVisibility)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQWindow {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr::~ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_dctr_qt_gui_ffi_slot_wrapper_QWindow_ptr(self as *mut crate::RawSlotOfQWindow)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfImageReaderError {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError::~ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_dctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError(self as *mut crate::RawSlotOfImageReaderError)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfIntIntInt {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_int_int_int::~ctr_qt_gui_ffi_slot_wrapper_int_int_int()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_int_int_int_dctr_qt_gui_ffi_slot_wrapper_int_int_int(self as *mut crate::RawSlotOfIntIntInt)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfDropAction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction::~ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_dctr_qt_gui_ffi_slot_wrapper_Qt_DropAction(self as *mut crate::RawSlotOfDropAction)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfWindowState {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState::~ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_dctr_qt_gui_ffi_slot_wrapper_Qt_WindowState(self as *mut crate::RawSlotOfWindowState)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQRegularExpression {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref::~ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_dctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref(self as *mut crate::RawSlotOfQRegularExpression)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQStandardItem {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr::~ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_dctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr(self as *mut crate::RawSlotOfQStandardItem)
    }
}

impl ::cpp_core::CppDeletable for crate::RawSlotOfQScreen {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr::~ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&mut self) {
        crate::__ffi::ctr_qt_gui_ffi_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_dctr_qt_gui_ffi_slot_wrapper_QScreen_ptr(self as *mut crate::RawSlotOfQScreen)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode* static_cast<ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfMode> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode* static_cast<ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfMode> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr82(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfMode
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfMode>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr82(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr82(
                self as *const crate::RawSlotOfMode as *mut crate::RawSlotOfMode,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr82(
                self as *mut crate::RawSlotOfMode,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfMode> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfMode> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QClipboard_Mode_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQRegExp> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQRegExp> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQRegExp> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQRegExp {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQRegExp>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr83(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQRegExp
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQRegExp>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr83(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQRegExp {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr83(
                self as *const crate::RawSlotOfQRegExp as *mut crate::RawSlotOfQRegExp,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQRegExp {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr83(
                self as *mut crate::RawSlotOfQRegExp,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQRegExp> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQRegExp> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQRegExp> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QRegExp_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQTextCursor> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQTextCursor {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQTextCursor>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr84(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQTextCursor
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQTextCursor>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr84(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQTextCursor {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr84(
                self as *const crate::RawSlotOfQTextCursor as *mut crate::RawSlotOfQTextCursor,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQTextCursor {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr84(
                self as *mut crate::RawSlotOfQTextCursor,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQTextCursor> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQTextCursor> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QTextCursor_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQRect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQRect {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQRect>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr85(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQRect
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQRect>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr85(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQRect {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr85(
                self as *const crate::RawSlotOfQRect as *mut crate::RawSlotOfQRect,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQRect {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr85(
                self as *mut crate::RawSlotOfQRect,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQRect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQRect> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QRect_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQPalette> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQPalette {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQPalette>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr86(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQPalette
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQPalette>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr86(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQPalette {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr86(
                self as *const crate::RawSlotOfQPalette as *mut crate::RawSlotOfQPalette,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQPalette {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr86(
                self as *mut crate::RawSlotOfQPalette,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQPalette> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQPalette> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QPalette_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQUrl> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQUrl> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQUrl> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQUrl {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQUrl>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr87(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQUrl
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQUrl>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr87(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQUrl {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr87(
                self as *const crate::RawSlotOfQUrl as *mut crate::RawSlotOfQUrl,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQUrl {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr87(
                self as *mut crate::RawSlotOfQUrl,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQUrl> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQUrl> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQUrl> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QUrl_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQSize> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQSize {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQSize>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr88(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQSize
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQSize>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr88(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQSize {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr88(
                self as *const crate::RawSlotOfQSize as *mut crate::RawSlotOfQSize,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQSize {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr88(
                self as *mut crate::RawSlotOfQSize,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQSize> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQSize> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QSize_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfNotation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation* static_cast<ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfNotation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation* static_cast<ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfNotation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfNotation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfNotation>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr89(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfNotation
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfNotation>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr89(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfNotation {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr89(
                self as *const crate::RawSlotOfNotation as *mut crate::RawSlotOfNotation,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfNotation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr89(
                self as *mut crate::RawSlotOfNotation,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfNotation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfNotation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfNotation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QDoubleValidator_Notation_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfLayoutDirection> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfLayoutDirection> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfLayoutDirection> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfLayoutDirection {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfLayoutDirection>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr90(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfLayoutDirection
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfLayoutDirection>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr90(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfLayoutDirection {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr90(
                self as *const crate::RawSlotOfLayoutDirection
                    as *mut crate::RawSlotOfLayoutDirection,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfLayoutDirection {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr90(
                self as *mut crate::RawSlotOfLayoutDirection,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfLayoutDirection> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfLayoutDirection> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfLayoutDirection> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_LayoutDirection_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfApplicationState> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfApplicationState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfApplicationState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfApplicationState {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfApplicationState>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr91(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfApplicationState
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfApplicationState>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr91(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfApplicationState {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr91(
                self as *const crate::RawSlotOfApplicationState
                    as *mut crate::RawSlotOfApplicationState,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfApplicationState {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr91(
                self as *mut crate::RawSlotOfApplicationState,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfApplicationState> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfApplicationState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfApplicationState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_ApplicationState_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQOpenglDebugMessage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQOpenglDebugMessage {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQOpenglDebugMessage>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr92(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQOpenglDebugMessage
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQOpenglDebugMessage>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr92(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQOpenglDebugMessage {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr92(
                self as *const crate::RawSlotOfQOpenglDebugMessage
                    as *mut crate::RawSlotOfQOpenglDebugMessage,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQOpenglDebugMessage {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr92(
                self as *mut crate::RawSlotOfQOpenglDebugMessage,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQOpenglDebugMessage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQOpenglDebugMessage> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QOpenGLDebugMessage_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQTextBlock> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQTextBlock {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQTextBlock>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr93(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQTextBlock
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQTextBlock>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr93(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQTextBlock {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr93(
                self as *const crate::RawSlotOfQTextBlock as *mut crate::RawSlotOfQTextBlock,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQTextBlock {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr93(
                self as *mut crate::RawSlotOfQTextBlock,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQTextBlock> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQTextBlock> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QTextBlock_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQSessionManager> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQSessionManager> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQSessionManager> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQSessionManager {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQSessionManager>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr94(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQSessionManager
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQSessionManager>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr94(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQSessionManager {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr94(
                self as *const crate::RawSlotOfQSessionManager
                    as *mut crate::RawSlotOfQSessionManager,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQSessionManager {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr94(
                self as *mut crate::RawSlotOfQSessionManager,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQSessionManager> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQSessionManager> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQSessionManager> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QSessionManager_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfTabFocusBehavior> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfTabFocusBehavior> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfTabFocusBehavior> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfTabFocusBehavior {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfTabFocusBehavior>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr95(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfTabFocusBehavior
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfTabFocusBehavior>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr95(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfTabFocusBehavior {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr95(
                self as *const crate::RawSlotOfTabFocusBehavior
                    as *mut crate::RawSlotOfTabFocusBehavior,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfTabFocusBehavior {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr95(
                self as *mut crate::RawSlotOfTabFocusBehavior,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfTabFocusBehavior> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfTabFocusBehavior> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfTabFocusBehavior> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_TabFocusBehavior_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfMovieState> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState* static_cast<ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfMovieState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState* static_cast<ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfMovieState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfMovieState {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfMovieState>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr96(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfMovieState
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfMovieState>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr96(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfMovieState {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr96(
                self as *const crate::RawSlotOfMovieState as *mut crate::RawSlotOfMovieState,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfMovieState {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr96(
                self as *mut crate::RawSlotOfMovieState,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfMovieState> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfMovieState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfMovieState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QMovie_MovieState_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQRectF> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQRectF {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQRectF>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr97(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQRectF
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQRectF>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr97(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQRectF {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr97(
                self as *const crate::RawSlotOfQRectF as *mut crate::RawSlotOfQRectF,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQRectF {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr97(
                self as *mut crate::RawSlotOfQRectF,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQRectF> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQRectF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QRectF_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfWindowModality> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfWindowModality> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfWindowModality> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfWindowModality {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfWindowModality>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr98(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfWindowModality
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfWindowModality>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr98(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfWindowModality {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr98(
                self as *const crate::RawSlotOfWindowModality
                    as *mut crate::RawSlotOfWindowModality,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfWindowModality {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr98(
                self as *mut crate::RawSlotOfWindowModality,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfWindowModality> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfWindowModality> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfWindowModality> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowModality_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfScreenOrientation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfScreenOrientation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfScreenOrientation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfScreenOrientation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfScreenOrientation>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr99(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfScreenOrientation
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfScreenOrientation>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr99(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfScreenOrientation {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr99(
                self as *const crate::RawSlotOfScreenOrientation
                    as *mut crate::RawSlotOfScreenOrientation,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfScreenOrientation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr99(
                self as *mut crate::RawSlotOfScreenOrientation,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfScreenOrientation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfScreenOrientation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfScreenOrientation> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_ScreenOrientation_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQSizeF> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQSizeF {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQSizeF>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr100(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQSizeF
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQSizeF>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr100(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQSizeF {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr100(
                self as *const crate::RawSlotOfQSizeF as *mut crate::RawSlotOfQSizeF,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQSizeF {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr100(
                self as *mut crate::RawSlotOfQSizeF,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQSizeF> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQSizeF> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QSizeF_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfVisibility> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility* static_cast<ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfVisibility> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility* static_cast<ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfVisibility> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfVisibility {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfVisibility>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr101(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfVisibility
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfVisibility>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr101(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfVisibility {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr101(
                self as *const crate::RawSlotOfVisibility as *mut crate::RawSlotOfVisibility,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfVisibility {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr101(
                self as *mut crate::RawSlotOfVisibility,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfVisibility> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfVisibility> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfVisibility> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QWindow_Visibility_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr* static_cast<ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr* static_cast<ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQWindow {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQWindow>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr102(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQWindow
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQWindow>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr102(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQWindow {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr102(
                self as *const crate::RawSlotOfQWindow as *mut crate::RawSlotOfQWindow,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQWindow {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr102(
                self as *mut crate::RawSlotOfQWindow,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQWindow> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQWindow> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QWindow_ptr_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfImageReaderError> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError* static_cast<ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfImageReaderError> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError* static_cast<ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfImageReaderError> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfImageReaderError {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfImageReaderError>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr103(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfImageReaderError
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfImageReaderError>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr103(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfImageReaderError {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr103(
                self as *const crate::RawSlotOfImageReaderError
                    as *mut crate::RawSlotOfImageReaderError,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfImageReaderError {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr103(
                self as *mut crate::RawSlotOfImageReaderError,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfImageReaderError> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfImageReaderError> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfImageReaderError> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QImageReader_ImageReaderError_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfIntIntInt> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_int_int_int* static_cast<ctr_qt_gui_ffi_slot_wrapper_int_int_int*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfIntIntInt> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_int_int_int_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_int_int_int* static_cast<ctr_qt_gui_ffi_slot_wrapper_int_int_int*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfIntIntInt> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_int_int_int_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfIntIntInt {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_int_int_int* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfIntIntInt>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr104(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfIntIntInt
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_int_int_int* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfIntIntInt>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr104(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfIntIntInt {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_int_int_int* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr104(
                self as *const crate::RawSlotOfIntIntInt as *mut crate::RawSlotOfIntIntInt,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfIntIntInt {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_int_int_int* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr104(
                self as *mut crate::RawSlotOfIntIntInt,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfIntIntInt> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_int_int_int* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_int_int_int*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfIntIntInt> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_int_int_int_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_int_int_int* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_int_int_int*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfIntIntInt> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_int_int_int_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfDropAction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfDropAction> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfDropAction> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfDropAction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfDropAction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr105(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfDropAction
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfDropAction>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr105(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfDropAction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr105(
                self as *const crate::RawSlotOfDropAction as *mut crate::RawSlotOfDropAction,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfDropAction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr105(
                self as *mut crate::RawSlotOfDropAction,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfDropAction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfDropAction> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfDropAction> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_DropAction_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfWindowState> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfWindowState> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState* static_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfWindowState> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfWindowState {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfWindowState>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr106(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfWindowState
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfWindowState>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr106(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfWindowState {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr106(
                self as *const crate::RawSlotOfWindowState as *mut crate::RawSlotOfWindowState,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfWindowState {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr106(
                self as *mut crate::RawSlotOfWindowState,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfWindowState> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfWindowState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfWindowState> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_Qt_WindowState_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQRegularExpression> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQRegularExpression> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref* static_cast<ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQRegularExpression> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQRegularExpression {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQRegularExpression>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr107(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQRegularExpression
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQRegularExpression>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr107(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQRegularExpression {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr107(
                self as *const crate::RawSlotOfQRegularExpression
                    as *mut crate::RawSlotOfQRegularExpression,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQRegularExpression {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr107(
                self as *mut crate::RawSlotOfQRegularExpression,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQRegularExpression> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQRegularExpression> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQRegularExpression> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QRegularExpression_const_ref_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQStandardItem> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr* static_cast<ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr* static_cast<ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQStandardItem {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQStandardItem>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr108(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQStandardItem
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQStandardItem>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr108(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQStandardItem {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr108(
                self as *const crate::RawSlotOfQStandardItem as *mut crate::RawSlotOfQStandardItem,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQStandardItem {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr108(
                self as *mut crate::RawSlotOfQStandardItem,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQStandardItem> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject);
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQStandardItem> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QStandardItem_ptr_ptr(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::RawSlotOfQScreen> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr* static_cast<ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQScreen> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr* static_cast<ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQScreen> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::RawSlotOfQScreen {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::RawSlotOfQScreen>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr109(
            ptr.as_raw_ptr() as *mut crate::RawSlotOfQScreen
        );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast_mut(
        ptr: ::cpp_core::MutPtr<crate::RawSlotOfQScreen>,
    ) -> ::cpp_core::MutPtr<::qt_core::QObject> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr109(ptr.as_mut_raw_ptr());
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::RawSlotOfQScreen {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr109(
                self as *const crate::RawSlotOfQScreen as *mut crate::RawSlotOfQScreen,
            )
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::std::ops::DerefMut for crate::RawSlotOfQScreen {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut ::qt_core::QObject {
        let ffi_result = unsafe {
            crate::__ffi::ctr_qt_gui_ffi_static_cast_QObject_ptr109(
                self as *mut crate::RawSlotOfQScreen,
            )
        };
        unsafe { ffi_result.as_mut() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::RawSlotOfQScreen> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::RawSlotOfQScreen> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            );
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr* dynamic_cast<ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast_mut(
        ptr: ::cpp_core::MutPtr<::qt_core::QObject>,
    ) -> ::cpp_core::MutPtr<crate::RawSlotOfQScreen> {
        let ffi_result =
            crate::__ffi::ctr_qt_gui_ffi_dynamic_cast_ctr_qt_gui_ffi_slot_wrapper_QScreen_ptr_ptr(
                ptr.as_mut_raw_ptr(),
            );
        ::cpp_core::MutPtr::from_raw(ffi_result)
    }
}

#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QCursor>> for crate::QCursor {
    /// <p>Equality operator. Returns <code>true</code> if <i>lhs</i> and <i>rhs</i> have the same <a href="http://doc.qt.io/qt-5/qcursor.html#shape">shape()</a> and, in the case of <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">bitmap cursors</a>, the same <a href="http://doc.qt.io/qt-5/qcursor.html#hotSpot">hotSpot()</a> and either the same <a href="http://doc.qt.io/qt-5/qcursor.html#pixmap">pixmap()</a> or the same <a href="http://doc.qt.io/qt-5/qcursor.html#bitmap">bitmap()</a> and <a href="http://doc.qt.io/qt-5/qcursor.html#mask">mask()</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator==(const QCursor& lhs, const QCursor& rhs)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qcursor.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Equality operator. Returns <code>true</code> if <i>lhs</i> and <i>rhs</i> have the same <a href="http://doc.qt.io/qt-5/qcursor.html#shape">shape()</a> and, in the case of <a href="http://doc.qt.io/qt-5/qt.html#CursorShape-enum">bitmap cursors</a>, the same <a href="http://doc.qt.io/qt-5/qcursor.html#hotSpot">hotSpot()</a> and either the same <a href="http://doc.qt.io/qt-5/qcursor.html#pixmap">pixmap()</a> or the same <a href="http://doc.qt.io/qt-5/qcursor.html#bitmap">bitmap()</a> and <a href="http://doc.qt.io/qt-5/qcursor.html#mask">mask()</a>.</p>
    /// <p><b>Note: </b>When comparing bitmap cursors, this function only compares the bitmaps' <a href="http://doc.qt.io/qt-5/qpixmap.html#cacheKey">cache keys</a>, not each pixel.</p><p>This function was introduced in  Qt 5.10.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcursor.html#operator-not-eq">operator!=</a>(const QCursor &amp;lhs, const QCursor &amp;rhs).</p></div>
    #[inline(always)]
    fn eq(&self, rhs: &::cpp_core::Ref<crate::QCursor>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_gui_ffi_operator__790(
                self as *const crate::QCursor,
                rhs.as_raw_ptr(),
            )
        }
    }
}

/// Calls C++ function: <span style='color: green;'>```const char* qAccessibleEventString(QAccessible::Event event)```</span>.
#[inline(always)]
pub unsafe fn q_accessible_event_string(
    event: crate::q_accessible::Event,
) -> ::cpp_core::Ptr<::std::os::raw::c_char> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qAccessibleEventString(event);
    ::cpp_core::Ptr::from_raw(ffi_result)
}

/// Calls C++ function: <span style='color: green;'>```QString qAccessibleLocalizedActionDescription(const QString& actionName)```</span>.
#[inline(always)]
pub unsafe fn q_accessible_localized_action_description(
    action_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
) -> ::cpp_core::CppBox<::qt_core::QString> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qAccessibleLocalizedActionDescription(
        ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(action_name)
            .as_raw_ptr(),
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// Calls C++ function: <span style='color: green;'>```const char* qAccessibleRoleString(QAccessible::Role role)```</span>.
#[inline(always)]
pub unsafe fn q_accessible_role_string(
    role: crate::q_accessible::Role,
) -> ::cpp_core::Ptr<::std::os::raw::c_char> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qAccessibleRoleString(role);
    ::cpp_core::Ptr::from_raw(ffi_result)
}

/// <p>Returns the alpha component of the ARGB quadruplet <i>rgba</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```int qAlpha(unsigned int rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qAlpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the alpha component of the ARGB quadruplet <i>rgba</i>.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qRgb">qRgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">QColor::alpha</a>().</p></div>
#[inline(always)]
pub unsafe fn q_alpha_uint(rgb: ::std::os::raw::c_uint) -> ::std::os::raw::c_int {
    crate::__ffi::ctr_qt_gui_ffi_qAlpha(rgb)
}

/// <p>Returns the alpha component of <i>rgba64</i> as an 8-bit value.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qAlpha(QRgba64 rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qAlpha-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the alpha component of <i>rgba64</i> as an 8-bit value.</p>
/// <p>This function was introduced in  Qt 5.6.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#alpha8">QRgba64::alpha8</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#alpha">QColor::alpha</a>().</p></div>
#[inline(always)]
pub unsafe fn q_alpha_q_rgba64(
    rgb: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qAlpha1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(rgb).as_raw_ptr(),
    )
}

/// <p>Returns the blue component of the ARGB quadruplet <i>rgb</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```int qBlue(unsigned int rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the blue component of the ARGB quadruplet <i>rgb</i>.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qRgb">qRgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#blue">QColor::blue</a>().</p></div>
#[inline(always)]
pub unsafe fn q_blue_uint(rgb: ::std::os::raw::c_uint) -> ::std::os::raw::c_int {
    crate::__ffi::ctr_qt_gui_ffi_qBlue(rgb)
}

/// <p>Returns the blue component of <i>rgba64</i> as an 8-bit value.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qBlue(QRgba64 rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the blue component of <i>rgba64</i> as an 8-bit value.</p>
/// <p>This function was introduced in  Qt 5.6.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#blue8">QRgba64::blue8</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#blue">QColor::blue</a>().</p></div>
#[inline(always)]
pub unsafe fn q_blue_q_rgba64(
    rgb: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qBlue1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(rgb).as_raw_ptr(),
    )
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
///
/// Calls C++ function: <span style='color: green;'>```bool qFuzzyCompare(const QVector2D& v1, const QVector2D& v2)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qmatrix.html#qFuzzyCompare">C++ documentation</a> for <span style='color: green;'>```bool qFuzzyCompare(const QMatrix &m1, const QMatrix &m2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
/// <p>Returns <code>true</code> if <i>m1</i> and <i>m2</i> are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.</p>
/// <p>This function was introduced in  Qt 4.6.</p></div>
#[inline(always)]
pub unsafe fn q_fuzzy_compare_2_q_vector_2d(
    v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
    v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector2D>>,
) -> bool {
    crate::__ffi::ctr_qt_gui_ffi_qFuzzyCompare(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(v1).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector2D>>::cast_into(v2).as_raw_ptr(),
    )
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
///
/// Calls C++ function: <span style='color: green;'>```bool qFuzzyCompare(const QMatrix& m1, const QMatrix& m2)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qmatrix.html#qFuzzyCompare">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
/// <p>Returns <code>true</code> if <i>m1</i> and <i>m2</i> are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.</p>
/// <p>This function was introduced in  Qt 4.6.</p></div>
#[inline(always)]
pub unsafe fn q_fuzzy_compare_2_q_matrix(
    m1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    m2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
) -> bool {
    crate::__ffi::ctr_qt_gui_ffi_qFuzzyCompare1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(m1).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(m2).as_raw_ptr(),
    )
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
///
/// Calls C++ function: <span style='color: green;'>```bool qFuzzyCompare(const QTransform& t1, const QTransform& t2)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qmatrix.html#qFuzzyCompare">C++ documentation</a> for <span style='color: green;'>```bool qFuzzyCompare(const QMatrix &m1, const QMatrix &m2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
/// <p>Returns <code>true</code> if <i>m1</i> and <i>m2</i> are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.</p>
/// <p>This function was introduced in  Qt 4.6.</p></div>
#[inline(always)]
pub unsafe fn q_fuzzy_compare_2_q_transform(
    t1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    t2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
) -> bool {
    crate::__ffi::ctr_qt_gui_ffi_qFuzzyCompare2(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(t1).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(t2).as_raw_ptr(),
    )
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
///
/// Calls C++ function: <span style='color: green;'>```bool qFuzzyCompare(const QVector3D& v1, const QVector3D& v2)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qmatrix.html#qFuzzyCompare">C++ documentation</a> for <span style='color: green;'>```bool qFuzzyCompare(const QMatrix &m1, const QMatrix &m2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
/// <p>Returns <code>true</code> if <i>m1</i> and <i>m2</i> are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.</p>
/// <p>This function was introduced in  Qt 4.6.</p></div>
#[inline(always)]
pub unsafe fn q_fuzzy_compare_2_q_vector_3d(
    v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
    v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector3D>>,
) -> bool {
    crate::__ffi::ctr_qt_gui_ffi_qFuzzyCompare3(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v1).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector3D>>::cast_into(v2).as_raw_ptr(),
    )
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
///
/// Calls C++ function: <span style='color: green;'>```bool qFuzzyCompare(const QVector4D& v1, const QVector4D& v2)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qmatrix.html#qFuzzyCompare">C++ documentation</a> for <span style='color: green;'>```bool qFuzzyCompare(const QMatrix &m1, const QMatrix &m2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
/// <p>Returns <code>true</code> if <i>m1</i> and <i>m2</i> are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.</p>
/// <p>This function was introduced in  Qt 4.6.</p></div>
#[inline(always)]
pub unsafe fn q_fuzzy_compare_2_q_vector_4d(
    v1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
    v2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVector4D>>,
) -> bool {
    crate::__ffi::ctr_qt_gui_ffi_qFuzzyCompare4(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(v1).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVector4D>>::cast_into(v2).as_raw_ptr(),
    )
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
///
/// Calls C++ function: <span style='color: green;'>```bool qFuzzyCompare(const QQuaternion& q1, const QQuaternion& q2)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qmatrix.html#qFuzzyCompare">C++ documentation</a> for <span style='color: green;'>```bool qFuzzyCompare(const QMatrix &m1, const QMatrix &m2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
/// <p>Returns <code>true</code> if <i>m1</i> and <i>m2</i> are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.</p>
/// <p>This function was introduced in  Qt 4.6.</p></div>
#[inline(always)]
pub unsafe fn q_fuzzy_compare_2_q_quaternion(
    q1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
    q2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QQuaternion>>,
) -> bool {
    crate::__ffi::ctr_qt_gui_ffi_qFuzzyCompare5(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(q1).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QQuaternion>>::cast_into(q2).as_raw_ptr(),
    )
}

/// <p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
///
/// Calls C++ function: <span style='color: green;'>```bool qFuzzyCompare(const QMatrix4x4& m1, const QMatrix4x4& m2)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qmatrix.html#qFuzzyCompare">C++ documentation</a> for <span style='color: green;'>```bool qFuzzyCompare(const QMatrix &m1, const QMatrix &m2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qmatrix4x4.html#qFuzzyCompare">qFuzzyCompare</a> function is for comparing two matrices using a fuzziness factor.</p>
/// <p>Returns <code>true</code> if <i>m1</i> and <i>m2</i> are equal, allowing for a small fuzziness factor for floating-point comparisons; false otherwise.</p>
/// <p>This function was introduced in  Qt 4.6.</p></div>
#[inline(always)]
pub unsafe fn q_fuzzy_compare_2_q_matrix4_x4(
    m1: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
    m2: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix4X4>>,
) -> bool {
    crate::__ffi::ctr_qt_gui_ffi_qFuzzyCompare6(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(m1).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix4X4>>::cast_into(m2).as_raw_ptr(),
    )
}

/// <p>Returns a gray value (0 to 255) from the (<i>r</i>, <i>g</i>, <i>b</i>) triplet.</p>
///
/// Calls C++ function: <span style='color: green;'>```int qGray(int r, int g, int b)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qGray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a gray value (0 to 255) from the (<i>r</i>, <i>g</i>, <i>b</i>) triplet.</p>
/// <p>The gray value is calculated using the formula (<i>r</i> * 11 + <i>g</i> * 16 + <i>b</i> * 5)/32.</p></div>
#[inline(always)]
pub unsafe fn q_gray_3a(
    r: ::std::os::raw::c_int,
    g: ::std::os::raw::c_int,
    b: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int {
    crate::__ffi::ctr_qt_gui_ffi_qGray(r, g, b)
}

/// <p>This is an overloaded function.</p>
///
/// Calls C++ function: <span style='color: green;'>```int qGray(unsigned int rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qGray-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
/// <p>Returns a gray value (0 to 255) from the given ARGB quadruplet <i>rgb</i>.</p>
/// <p>The gray value is calculated using the formula (R * 11 + G * 16 + B * 5)/32; the alpha-channel is ignored.</p></div>
#[inline(always)]
pub unsafe fn q_gray_1a(rgb: ::std::os::raw::c_uint) -> ::std::os::raw::c_int {
    crate::__ffi::ctr_qt_gui_ffi_qGray1(rgb)
}

/// <p>Returns the green component of the ARGB quadruplet <i>rgb</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```int qGreen(unsigned int rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the green component of the ARGB quadruplet <i>rgb</i>.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qRgb">qRgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#green">QColor::green</a>().</p></div>
#[inline(always)]
pub unsafe fn q_green_uint(rgb: ::std::os::raw::c_uint) -> ::std::os::raw::c_int {
    crate::__ffi::ctr_qt_gui_ffi_qGreen(rgb)
}

/// <p>Returns the green component of <i>rgba64</i> as an 8-bit value.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qGreen(QRgba64 rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the green component of <i>rgba64</i> as an 8-bit value.</p>
/// <p>This function was introduced in  Qt 5.6.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#green8">QRgba64::green8</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#green">QColor::green</a>().</p></div>
#[inline(always)]
pub unsafe fn q_green_q_rgba64(
    rgb: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qGreen1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(rgb).as_raw_ptr(),
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QKeySequence& key, unsigned int seed = …)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_key_sequence_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(QPointingDeviceUniqueId key, unsigned int seed = …)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_pointing_device_unique_id_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QFont& font, unsigned int seed = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_font_uint(
    font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash2(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
        seed,
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QMatrix& key, unsigned int seed = …)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_matrix_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash3(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QTransform& key, unsigned int seed = …)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_transform_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash4(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QRawFont& font, unsigned int seed = …)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_raw_font_uint(
    font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRawFont>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash5(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRawFont>>::cast_into(font).as_raw_ptr(),
        seed,
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QOpenGLVersionProfile& v, unsigned int seed = …)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_opengl_version_profile_uint(
    v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLVersionProfile>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash6(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLVersionProfile>>::cast_into(v)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QPair<int, int>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_pair_of_int_int_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfIntInt>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash8(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfIntInt>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_pair_of_q_accessible_interface_q_flags_relation_flag_uint(
    key: impl ::cpp_core::CastInto<
        ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    >,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash9(::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(key).as_raw_ptr(), seed)
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_pair_of_filter_filter_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfFilterFilter>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash10(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfFilterFilter>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QPair<float, float>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_pair_of_float_float_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfFloatFloat>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash11(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfFloatFloat>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QKeySequence>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_key_sequence_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQKeySequence>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash15(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQKeySequence>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<const QTouchDevice*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_touch_device_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTouchDevice>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash16(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTouchDevice>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<double>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_double_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfDouble>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash18(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfDouble>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QFontDatabase::WritingSystem>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_writing_system_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfWritingSystem>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash20(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfWritingSystem>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QAccessibleInterface*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_accessible_interface_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash23(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QWindow*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_window_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQWindow>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash24(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQWindow>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QScreen*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_screen_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQScreen>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash25(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQScreen>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QOpenGLContext*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_opengl_context_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglContext>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash26(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglContext>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QOpenGLShader*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_opengl_shader_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglShader>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash28(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglShader>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QStandardItem*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_standard_item_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash29(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QTextFrame*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_text_frame_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextFrame>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash31(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextFrame>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<double>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_double_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash36(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<quint32>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_u32_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash38(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_pair_of_q_accessible_interface_q_flags_relation_flag_uint(
    key: impl ::cpp_core::CastInto<
        ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    >,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash41(
        ::cpp_core::CastInto::<
            ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >::cast_into(key)
        .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<float>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_float_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFloat>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash43(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFloat>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<GLuint64>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_u64_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU64>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash44(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU64>>::cast_into(key).as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QSet<QByteArray>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_set_of_q_byte_array_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash48(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QPair<int, int>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_pair_of_int_int(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfIntInt>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash50(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfIntInt>>::cast_into(key).as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_pair_of_q_accessible_interface_q_flags_relation_flag(
    key: impl ::cpp_core::CastInto<
        ::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    >,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash51(::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfQAccessibleInterfaceQFlagsRelationFlag>>::cast_into(key).as_raw_ptr())
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_pair_of_filter_filter(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfFilterFilter>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash52(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfFilterFilter>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QPair<float, float>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_pair_of_float_float(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPairOfFloatFloat>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash53(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPairOfFloatFloat>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QKeySequence>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_key_sequence(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQKeySequence>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash57(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQKeySequence>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<const QTouchDevice*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_touch_device(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTouchDevice>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash58(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTouchDevice>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<double>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_double(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfDouble>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash60(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfDouble>>::cast_into(key).as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QFontDatabase::WritingSystem>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_writing_system(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfWritingSystem>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash62(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfWritingSystem>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QAccessibleInterface*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_accessible_interface(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash65(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQAccessibleInterface>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QWindow*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_window(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQWindow>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash66(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQWindow>>::cast_into(key).as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QScreen*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_screen(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQScreen>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash67(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQScreen>>::cast_into(key).as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QOpenGLContext*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_opengl_context(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglContext>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash68(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglContext>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QOpenGLShader*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_opengl_shader(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQOpenglShader>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash70(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQOpenglShader>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QStandardItem*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_standard_item(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQStandardItem>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash71(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQStandardItem>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QList<QTextFrame*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_list_of_q_text_frame(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QListOfQTextFrame>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash73(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QListOfQTextFrame>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<double>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_double(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfDouble>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash78(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfDouble>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<quint32>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_u32(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU32>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash80(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU32>>::cast_into(key).as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<QPair<QAccessibleInterface*, QFlags<QAccessible::RelationFlag>>>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_pair_of_q_accessible_interface_q_flags_relation_flag(
    key: impl ::cpp_core::CastInto<
        ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
    >,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash83(
        ::cpp_core::CastInto::<
            ::cpp_core::Ref<crate::QVectorOfQPairOfQAccessibleInterfaceQFlagsRelationFlag>,
        >::cast_into(key)
        .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<float>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_float(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfFloat>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash85(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfFloat>>::cast_into(key).as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<GLuint64>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_u64(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfU64>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash86(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfU64>>::cast_into(key).as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QSet<QByteArray>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_set_of_q_byte_array(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QSetOfQByteArray>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash90(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QSetOfQByteArray>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QKeySequence& key)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_key_sequence(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QKeySequence>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash91(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QKeySequence>>::cast_into(key).as_raw_ptr(),
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(QPointingDeviceUniqueId key)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_pointing_device_unique_id(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash92(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QPointingDeviceUniqueId>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QFont& font)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_font(
    font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QFont>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash93(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QFont>>::cast_into(font).as_raw_ptr(),
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QMatrix& key)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_matrix(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QMatrix>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash94(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QMatrix>>::cast_into(key).as_raw_ptr(),
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QTransform& key)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_transform(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTransform>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash95(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTransform>>::cast_into(key).as_raw_ptr(),
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QRawFont& font)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_raw_font(
    font: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRawFont>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash96(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRawFont>>::cast_into(font).as_raw_ptr(),
    )
}

/// <p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QOpenGLVersionProfile& v)```</span>.
///
/// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qfont.html#qHash">C++ documentation</a> for <span style='color: green;'>```uint qHash(const QFont &font, uint seed = 0)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the hash value for <i>font</i>. If specified, <i>seed</i> is used to initialize the hash.</p>
/// <p>This function was introduced in  Qt 5.3.</p></div>
#[inline(always)]
pub unsafe fn q_hash_q_opengl_version_profile(
    v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QOpenGLVersionProfile>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qHash97(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QOpenGLVersionProfile>>::cast_into(v)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```bool qIsGray(unsigned int rgb)```</span>.
#[inline(always)]
pub unsafe fn q_is_gray(rgb: ::std::os::raw::c_uint) -> bool {
    crate::__ffi::ctr_qt_gui_ffi_qIsGray(rgb)
}

/// <p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; that contains <i>value1</i> and <i>value2</i>. Example:</p>
///
/// Calls C++ function: <span style='color: green;'>```QPair<double, QColor> qMakePair(const double& x, const QColor& y)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; that contains <i>value1</i> and <i>value2</i>. Example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> <span class="operator">&gt;</span> list;
///   list<span class="operator">.</span>append(qMakePair(<span class="number">66</span><span class="operator">,</span> <span class="number">3.14159</span>));
///
/// </pre>
/// <p>This is equivalent to <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt;(<i>value1</i>, <i>value2</i>), but usually requires less typing.</p></div>
#[inline(always)]
pub unsafe fn q_make_pair_double_q_color(
    x: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_double>>,
    y: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QColor>>,
) -> ::cpp_core::CppBox<crate::QPairOfDoubleQColor> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qMakePair(
        ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_double>>::cast_into(x)
            .as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QColor>>::cast_into(y).as_raw_ptr(),
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; that contains <i>value1</i> and <i>value2</i>. Example:</p>
///
/// Calls C++ function: <span style='color: green;'>```QPair<int, int> qMakePair(const int& x, const int& y)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; that contains <i>value1</i> and <i>value2</i>. Example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> <span class="operator">&gt;</span> list;
///   list<span class="operator">.</span>append(qMakePair(<span class="number">66</span><span class="operator">,</span> <span class="number">3.14159</span>));
///
/// </pre>
/// <p>This is equivalent to <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt;(<i>value1</i>, <i>value2</i>), but usually requires less typing.</p></div>
#[inline(always)]
pub unsafe fn q_make_pair_2_int(
    x: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_int>>,
    y: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_int>>,
) -> ::cpp_core::CppBox<crate::QPairOfIntInt> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qMakePair1(
        ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_int>>::cast_into(x).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_int>>::cast_into(y).as_raw_ptr(),
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; that contains <i>value1</i> and <i>value2</i>. Example:</p>
///
/// Calls C++ function: <span style='color: green;'>```QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter> qMakePair(const QOpenGLTexture::Filter& x, const QOpenGLTexture::Filter& y)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; that contains <i>value1</i> and <i>value2</i>. Example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> <span class="operator">&gt;</span> list;
///   list<span class="operator">.</span>append(qMakePair(<span class="number">66</span><span class="operator">,</span> <span class="number">3.14159</span>));
///
/// </pre>
/// <p>This is equivalent to <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt;(<i>value1</i>, <i>value2</i>), but usually requires less typing.</p></div>
#[inline(always)]
pub unsafe fn q_make_pair_2_filter(
    x: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_opengl_texture::Filter>>,
    y: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::q_opengl_texture::Filter>>,
) -> ::cpp_core::CppBox<crate::QPairOfFilterFilter> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qMakePair3(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_opengl_texture::Filter>>::cast_into(x)
            .as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::q_opengl_texture::Filter>>::cast_into(y)
            .as_raw_ptr(),
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; that contains <i>value1</i> and <i>value2</i>. Example:</p>
///
/// Calls C++ function: <span style='color: green;'>```QPair<float, float> qMakePair(const float& x, const float& y)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpair.html#qMakePair">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt; that contains <i>value1</i> and <i>value2</i>. Example:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qpair.html">QPair</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">,</span> <span class="type">double</span><span class="operator">&gt;</span> <span class="operator">&gt;</span> list;
///   list<span class="operator">.</span>append(qMakePair(<span class="number">66</span><span class="operator">,</span> <span class="number">3.14159</span>));
///
/// </pre>
/// <p>This is equivalent to <a href="http://doc.qt.io/qt-5/qpair.html">QPair</a>&lt;T1, T2&gt;(<i>value1</i>, <i>value2</i>), but usually requires less typing.</p></div>
#[inline(always)]
pub unsafe fn q_make_pair_2_float(
    x: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
    y: impl ::cpp_core::CastInto<::cpp_core::Ref<::std::os::raw::c_float>>,
) -> ::cpp_core::CppBox<crate::QPairOfFloatFloat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qMakePair4(
        ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(x).as_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::Ref<::std::os::raw::c_float>>::cast_into(y).as_raw_ptr(),
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating an Alpha format. A mask format can be described by passing 1 to <i>channelSize</i>. Its also possible to define very accurate alpha formats using doubles to describe each pixel by passing 8 as <i>channelSize</i> and FloatingPoint as <i>typeInterpretation</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatAlpha(unsigned char channelSize, QPixelFormat::TypeInterpretation typeInt = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatAlpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating an Alpha format. A mask format can be described by passing 1 to <i>channelSize</i>. Its also possible to define very accurate alpha formats using doubles to describe each pixel by passing 8 as <i>channelSize</i> and FloatingPoint as <i>typeInterpretation</i>.</p>
/// <p>This function was introduced in  Qt 5.5.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_alpha_2a(
    channel_size: ::std::os::raw::c_uchar,
    type_int: crate::q_pixel_format::TypeInterpretation,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatAlpha(channel_size, type_int);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating an Alpha format. A mask format can be described by passing 1 to <i>channelSize</i>. Its also possible to define very accurate alpha formats using doubles to describe each pixel by passing 8 as <i>channelSize</i> and FloatingPoint as <i>typeInterpretation</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatAlpha(unsigned char channelSize)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatAlpha">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating an Alpha format. A mask format can be described by passing 1 to <i>channelSize</i>. Its also possible to define very accurate alpha formats using doubles to describe each pixel by passing 8 as <i>channelSize</i> and FloatingPoint as <i>typeInterpretation</i>.</p>
/// <p>This function was introduced in  Qt 5.5.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_alpha_1a(
    channel_size: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatAlpha1(channel_size);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatCmyk(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …, QPixelFormat::TypeInterpretation typeInt = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_cmyk_5a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
    type_int: crate::q_pixel_format::TypeInterpretation,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatCmyk(
        channel_size,
        alfa,
        usage,
        position,
        type_int,
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatCmyk(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_cmyk_4a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result =
        crate::__ffi::ctr_qt_gui_ffi_qPixelFormatCmyk1(channel_size, alfa, usage, position);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatCmyk(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_cmyk_3a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatCmyk2(channel_size, alfa, usage);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatCmyk(unsigned char channelSize, unsigned char alfa = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_cmyk_2a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatCmyk3(channel_size, alfa);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatCmyk(unsigned char channelSize)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatCmyk">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating CMYK formats. The channel count will be 4 or 5 depending on if <i>alphaSize</i> is bigger than zero or not. The CMYK color channels will all be set to the value of <i>channelSize</i>.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_cmyk_1a(
    channel_size: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatCmyk4(channel_size);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a Grayscale format. Monochrome formats can be described by passing 1 to <i>channelSize</i>. Its also possible to define very accurate grayscale formats using doubles to describe each pixel by passing 8 as <i>channelSize</i> and FloatingPoint as <i>typeInterpretation</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatGrayscale(unsigned char channelSize, QPixelFormat::TypeInterpretation typeInt = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatGrayscale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a Grayscale format. Monochrome formats can be described by passing 1 to <i>channelSize</i>. Its also possible to define very accurate grayscale formats using doubles to describe each pixel by passing 8 as <i>channelSize</i> and FloatingPoint as <i>typeInterpretation</i>.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_grayscale_2a(
    channel_size: ::std::os::raw::c_uchar,
    type_int: crate::q_pixel_format::TypeInterpretation,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatGrayscale(channel_size, type_int);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a Grayscale format. Monochrome formats can be described by passing 1 to <i>channelSize</i>. Its also possible to define very accurate grayscale formats using doubles to describe each pixel by passing 8 as <i>channelSize</i> and FloatingPoint as <i>typeInterpretation</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatGrayscale(unsigned char channelSize)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatGrayscale">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a Grayscale format. Monochrome formats can be described by passing 1 to <i>channelSize</i>. Its also possible to define very accurate grayscale formats using doubles to describe each pixel by passing 8 as <i>channelSize</i> and FloatingPoint as <i>typeInterpretation</i>.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_grayscale_1a(
    channel_size: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatGrayscale1(channel_size);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsl(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …, QPixelFormat::TypeInterpretation typeInt = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and lightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsl_5a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
    type_int: crate::q_pixel_format::TypeInterpretation,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result =
        crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsl(channel_size, alfa, usage, position, type_int);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsl(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and lightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsl_4a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result =
        crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsl1(channel_size, alfa, usage, position);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsl(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and lightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsl_3a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsl2(channel_size, alfa, usage);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsl(unsigned char channelSize, unsigned char alfa = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and lightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsl_2a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsl3(channel_size, alfa);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsl(unsigned char channelSize)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsl">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSL formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and lightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsl_1a(
    channel_size: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsl4(channel_size);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsv(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …, QPixelFormat::TypeInterpretation typeInt = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and brightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsv_5a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
    type_int: crate::q_pixel_format::TypeInterpretation,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result =
        crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsv(channel_size, alfa, usage, position, type_int);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsv(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and brightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsv_4a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result =
        crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsv1(channel_size, alfa, usage, position);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsv(unsigned char channelSize, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and brightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsv_3a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsv2(channel_size, alfa, usage);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsv(unsigned char channelSize, unsigned char alfa = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and brightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsv_2a(
    channel_size: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsv3(channel_size, alfa);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatHsv(unsigned char channelSize)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatHsv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating HSV formats. The channel count will be 3 or 4 depending on if <i>alphaSize</i> is bigger than 0.</p>
/// <p><i>channelSize</i> will set the hueSize saturationSize and brightnessSize to the same value.</p>
/// <p><i>alphaUsage</i> <i>alphaPosition</i> and <i>typeInterpretation</i> are all accessible with the accessors with the same name.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_hsv_1a(
    channel_size: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatHsv4(channel_size);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function making an RGB pixelformat. <i>redSize</i> <i>greenSize</i> <i>blueSize</i> represent the size of each color channel. <i>alphaSize</i> describes the alpha channel size and its position is described with <i>alphaPosition</i>. <i>alphaUsage</i> is used to determine if the alpha channel is used or not. Setting the alpha channel size to 8 and alphaUsage to IgnoresAlpha is how it is possible to create a 32 bit format where the rgb channels only use 24 bits combined. <i>premultiplied</i> <i>typeInterpretation</i> are accessible with accessors with the same name.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatRgba(unsigned char red, unsigned char green, unsigned char blue, unsigned char alfa, QPixelFormat::AlphaUsage usage, QPixelFormat::AlphaPosition position, QPixelFormat::AlphaPremultiplied pmul = …, QPixelFormat::TypeInterpretation typeInt = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function making an RGB pixelformat. <i>redSize</i> <i>greenSize</i> <i>blueSize</i> represent the size of each color channel. <i>alphaSize</i> describes the alpha channel size and its position is described with <i>alphaPosition</i>. <i>alphaUsage</i> is used to determine if the alpha channel is used or not. Setting the alpha channel size to 8 and alphaUsage to IgnoresAlpha is how it is possible to create a 32 bit format where the rgb channels only use 24 bits combined. <i>premultiplied</i> <i>typeInterpretation</i> are accessible with accessors with the same name.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_rgba_8a(
    red: ::std::os::raw::c_uchar,
    green: ::std::os::raw::c_uchar,
    blue: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
    pmul: crate::q_pixel_format::AlphaPremultiplied,
    type_int: crate::q_pixel_format::TypeInterpretation,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatRgba(
        red, green, blue, alfa, usage, position, pmul, type_int,
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function making an RGB pixelformat. <i>redSize</i> <i>greenSize</i> <i>blueSize</i> represent the size of each color channel. <i>alphaSize</i> describes the alpha channel size and its position is described with <i>alphaPosition</i>. <i>alphaUsage</i> is used to determine if the alpha channel is used or not. Setting the alpha channel size to 8 and alphaUsage to IgnoresAlpha is how it is possible to create a 32 bit format where the rgb channels only use 24 bits combined. <i>premultiplied</i> <i>typeInterpretation</i> are accessible with accessors with the same name.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatRgba(unsigned char red, unsigned char green, unsigned char blue, unsigned char alfa, QPixelFormat::AlphaUsage usage, QPixelFormat::AlphaPosition position, QPixelFormat::AlphaPremultiplied pmul = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function making an RGB pixelformat. <i>redSize</i> <i>greenSize</i> <i>blueSize</i> represent the size of each color channel. <i>alphaSize</i> describes the alpha channel size and its position is described with <i>alphaPosition</i>. <i>alphaUsage</i> is used to determine if the alpha channel is used or not. Setting the alpha channel size to 8 and alphaUsage to IgnoresAlpha is how it is possible to create a 32 bit format where the rgb channels only use 24 bits combined. <i>premultiplied</i> <i>typeInterpretation</i> are accessible with accessors with the same name.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_rgba_7a(
    red: ::std::os::raw::c_uchar,
    green: ::std::os::raw::c_uchar,
    blue: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
    pmul: crate::q_pixel_format::AlphaPremultiplied,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatRgba1(
        red, green, blue, alfa, usage, position, pmul,
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function making an RGB pixelformat. <i>redSize</i> <i>greenSize</i> <i>blueSize</i> represent the size of each color channel. <i>alphaSize</i> describes the alpha channel size and its position is described with <i>alphaPosition</i>. <i>alphaUsage</i> is used to determine if the alpha channel is used or not. Setting the alpha channel size to 8 and alphaUsage to IgnoresAlpha is how it is possible to create a 32 bit format where the rgb channels only use 24 bits combined. <i>premultiplied</i> <i>typeInterpretation</i> are accessible with accessors with the same name.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatRgba(unsigned char red, unsigned char green, unsigned char blue, unsigned char alfa, QPixelFormat::AlphaUsage usage, QPixelFormat::AlphaPosition position)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function making an RGB pixelformat. <i>redSize</i> <i>greenSize</i> <i>blueSize</i> represent the size of each color channel. <i>alphaSize</i> describes the alpha channel size and its position is described with <i>alphaPosition</i>. <i>alphaUsage</i> is used to determine if the alpha channel is used or not. Setting the alpha channel size to 8 and alphaUsage to IgnoresAlpha is how it is possible to create a 32 bit format where the rgb channels only use 24 bits combined. <i>premultiplied</i> <i>typeInterpretation</i> are accessible with accessors with the same name.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qpixelformat.html#TypeInterpretation-enum">QPixelFormat::TypeInterpretation</a>.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_rgba_6a(
    red: ::std::os::raw::c_uchar,
    green: ::std::os::raw::c_uchar,
    blue: ::std::os::raw::c_uchar,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result =
        crate::__ffi::ctr_qt_gui_ffi_qPixelFormatRgba2(red, green, blue, alfa, usage, position);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout layout, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …, QPixelFormat::AlphaPremultiplied p_mul = …, QPixelFormat::TypeInterpretation typeInt = …, QPixelFormat::ByteOrder b_order = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatYuv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_yuv_7a(
    layout: crate::q_pixel_format::YUVLayout,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
    p_mul: crate::q_pixel_format::AlphaPremultiplied,
    type_int: crate::q_pixel_format::TypeInterpretation,
    b_order: crate::q_pixel_format::ByteOrder,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatYuv(
        layout, alfa, usage, position, p_mul, type_int, b_order,
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout layout, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …, QPixelFormat::AlphaPremultiplied p_mul = …, QPixelFormat::TypeInterpretation typeInt = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatYuv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_yuv_6a(
    layout: crate::q_pixel_format::YUVLayout,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
    p_mul: crate::q_pixel_format::AlphaPremultiplied,
    type_int: crate::q_pixel_format::TypeInterpretation,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatYuv1(
        layout, alfa, usage, position, p_mul, type_int,
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout layout, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …, QPixelFormat::AlphaPremultiplied p_mul = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatYuv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_yuv_5a(
    layout: crate::q_pixel_format::YUVLayout,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
    p_mul: crate::q_pixel_format::AlphaPremultiplied,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result =
        crate::__ffi::ctr_qt_gui_ffi_qPixelFormatYuv2(layout, alfa, usage, position, p_mul);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout layout, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …, QPixelFormat::AlphaPosition position = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatYuv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_yuv_4a(
    layout: crate::q_pixel_format::YUVLayout,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
    position: crate::q_pixel_format::AlphaPosition,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatYuv3(layout, alfa, usage, position);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout layout, unsigned char alfa = …, QPixelFormat::AlphaUsage usage = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatYuv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_yuv_3a(
    layout: crate::q_pixel_format::YUVLayout,
    alfa: ::std::os::raw::c_uchar,
    usage: crate::q_pixel_format::AlphaUsage,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatYuv4(layout, alfa, usage);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout layout, unsigned char alfa = …)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatYuv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_yuv_2a(
    layout: crate::q_pixel_format::YUVLayout,
    alfa: ::std::os::raw::c_uchar,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatYuv5(layout, alfa);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p>
///
/// Calls C++ function: <span style='color: green;'>```QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout layout)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qpixelformat.html#qPixelFormatYuv">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructor function for creating a <a href="http://doc.qt.io/qt-5/qpixelformat.html">QPixelFormat</a> describing a YUV format with <i>yuvLayout</i>. <i>alphaSize</i> describes the size of a potential alpha channel and is position is described with <i>alphaPosition</i>. The "first" "second" .. "fifth" channels are all set to 0. <i>alphaUsage</i> <i>premultiplied</i> <i>typeInterpretation</i> and <i>byteOrder</i> will work as with other formats.</p></div>
#[inline(always)]
pub unsafe fn q_pixel_format_yuv_1a(
    layout: crate::q_pixel_format::YUVLayout,
) -> ::cpp_core::CppBox<crate::QPixelFormat> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPixelFormatYuv6(layout);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Converts an unpremultiplied ARGB quadruplet <i>rgb</i> into a premultiplied ARGB quadruplet.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qPremultiply(unsigned int x)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qPremultiply">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts an unpremultiplied ARGB quadruplet <i>rgb</i> into a premultiplied ARGB quadruplet.</p>
/// <p>This function was introduced in  Qt 5.3.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qUnpremultiply">qUnpremultiply</a>().</p></div>
#[inline(always)]
pub unsafe fn q_premultiply_uint(x: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qPremultiply(x)
}

/// <p>Converts an unpremultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet <i>rgba64</i> into a premultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet.</p>
///
/// Calls C++ function: <span style='color: green;'>```QRgba64 qPremultiply(QRgba64 c)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qPremultiply-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts an unpremultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet <i>rgba64</i> into a premultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet.</p>
/// <p>This function was introduced in  Qt 5.6.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#premultiplied">QRgba64::premultiplied</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#qUnpremultiply">qUnpremultiply</a>().</p></div>
#[inline(always)]
pub unsafe fn q_premultiply_q_rgba64(
    c: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
) -> ::cpp_core::CppBox<crate::QRgba64> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qPremultiply1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(c).as_raw_ptr(),
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Returns the red component of the ARGB quadruplet <i>rgb</i>.</p>
///
/// Calls C++ function: <span style='color: green;'>```int qRed(unsigned int rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qRed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the red component of the ARGB quadruplet <i>rgb</i>.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qRgb">qRgb</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#red">QColor::red</a>().</p></div>
#[inline(always)]
pub unsafe fn q_red_uint(rgb: ::std::os::raw::c_uint) -> ::std::os::raw::c_int {
    crate::__ffi::ctr_qt_gui_ffi_qRed(rgb)
}

/// <p>Returns the red component of <i>rgba64</i> as an 8-bit value.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qRed(QRgba64 rgb)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qRed-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the red component of <i>rgba64</i> as an 8-bit value.</p>
/// <p>This function was introduced in  Qt 5.6.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#red8">QRgba64::red8</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#red">QColor::red</a>().</p></div>
#[inline(always)]
pub unsafe fn q_red_q_rgba64(
    rgb: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qRed1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(rgb).as_raw_ptr(),
    )
}

/// <p>Returns the ARGB quadruplet (255, <i>r</i>, <i>g</i>, <i>b</i>).</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qRgb(int r, int g, int b)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qRgb">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the ARGB quadruplet (255, <i>r</i>, <i>g</i>, <i>b</i>).</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qRgba">qRgba</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qRed">qRed</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen">qGreen</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue">qBlue</a>().</p></div>
#[inline(always)]
pub unsafe fn q_rgb(
    r: ::std::os::raw::c_int,
    g: ::std::os::raw::c_int,
    b: ::std::os::raw::c_int,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qRgb(r, g, b)
}

/// <p>Returns the ARGB quadruplet (<i>a</i>, <i>r</i>, <i>g</i>, <i>b</i>).</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qRgba(int r, int g, int b, int a)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the ARGB quadruplet (<i>a</i>, <i>r</i>, <i>g</i>, <i>b</i>).</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qRgb">qRgb</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qRed">qRed</a>(), <a href="http://doc.qt.io/qt-5/qcolor.html#qGreen">qGreen</a>(), and <a href="http://doc.qt.io/qt-5/qcolor.html#qBlue">qBlue</a>().</p></div>
#[inline(always)]
pub unsafe fn q_rgba(
    r: ::std::os::raw::c_int,
    g: ::std::os::raw::c_int,
    b: ::std::os::raw::c_int,
    a: ::std::os::raw::c_int,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qRgba(r, g, b, a)
}

/// <p>Returns the <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet (<i>r</i>, <i>g</i>, <i>b</i>, <i>a</i>).</p>
///
/// Calls C++ function: <span style='color: green;'>```QRgba64 qRgba64(quint16 r, quint16 g, quint16 b, quint16 a)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qRgba64">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet (<i>r</i>, <i>g</i>, <i>b</i>, <i>a</i>).</p>
/// <p>This function was introduced in  Qt 5.6.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qRgba">qRgba</a>().</p></div>
#[inline(always)]
pub unsafe fn q_rgba64_4a(r: u16, g: u16, b: u16, a: u16) -> ::cpp_core::CppBox<crate::QRgba64> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qRgba64(r, g, b, a);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Returns <i>c</i> as a <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct.</p>
///
/// Calls C++ function: <span style='color: green;'>```QRgba64 qRgba64(quint64 c)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qRgba64-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <i>c</i> as a <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> struct.</p>
/// <p>This function was introduced in  Qt 5.6.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qRgba">qRgba</a>().</p></div>
#[inline(always)]
pub unsafe fn q_rgba64_1a(c: u64) -> ::cpp_core::CppBox<crate::QRgba64> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qRgba641(c);
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// <p>Converts a premultiplied ARGB quadruplet <i>rgb</i> into an unpremultiplied ARGB quadruplet.</p>
///
/// Calls C++ function: <span style='color: green;'>```unsigned int qUnpremultiply(unsigned int p)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qUnpremultiply">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts a premultiplied ARGB quadruplet <i>rgb</i> into an unpremultiplied ARGB quadruplet.</p>
/// <p>This function was introduced in  Qt 5.3.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qcolor.html#qPremultiply">qPremultiply</a>().</p></div>
#[inline(always)]
pub unsafe fn q_unpremultiply_uint(p: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_gui_ffi_qUnpremultiply(p)
}

/// <p>Converts a premultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet <i>rgba64</i> into an unpremultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet.</p>
///
/// Calls C++ function: <span style='color: green;'>```QRgba64 qUnpremultiply(QRgba64 c)```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qcolor.html#qUnpremultiply-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Converts a premultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet <i>rgba64</i> into an unpremultiplied <a href="http://doc.qt.io/qt-5/qrgba64.html">QRgba64</a> quadruplet.</p>
/// <p>This function was introduced in  Qt 5.6.</p>
/// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qrgba64.html#unpremultiplied">QRgba64::unpremultiplied</a>() and <a href="http://doc.qt.io/qt-5/qcolor.html#qPremultiply">qPremultiply</a>().</p></div>
#[inline(always)]
pub unsafe fn q_unpremultiply_q_rgba64(
    c: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRgba64>>,
) -> ::cpp_core::CppBox<crate::QRgba64> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qUnpremultiply1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRgba64>>::cast_into(c).as_raw_ptr(),
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// Calls C++ function: <span style='color: green;'>```QString qt_findAtNxFile(const QString& baseFileName, double targetDevicePixelRatio, double* sourceDevicePixelRatio = …)```</span>.
#[inline(always)]
pub unsafe fn qt_find_at_nx_file_3a(
    base_file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    target_device_pixel_ratio: ::std::os::raw::c_double,
    source_device_pixel_ratio: impl ::cpp_core::CastInto<::cpp_core::MutPtr<::std::os::raw::c_double>>,
) -> ::cpp_core::CppBox<::qt_core::QString> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qt_findAtNxFile(
        ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(base_file_name)
            .as_raw_ptr(),
        target_device_pixel_ratio,
        ::cpp_core::CastInto::<::cpp_core::MutPtr<::std::os::raw::c_double>>::cast_into(
            source_device_pixel_ratio,
        )
        .as_mut_raw_ptr(),
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// Calls C++ function: <span style='color: green;'>```QString qt_findAtNxFile(const QString& baseFileName, double targetDevicePixelRatio)```</span>.
#[inline(always)]
pub unsafe fn qt_find_at_nx_file_2a(
    base_file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    target_device_pixel_ratio: ::std::os::raw::c_double,
) -> ::cpp_core::CppBox<::qt_core::QString> {
    let ffi_result = crate::__ffi::ctr_qt_gui_ffi_qt_findAtNxFile1(
        ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(base_file_name)
            .as_raw_ptr(),
        target_device_pixel_ratio,
    );
    ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
}

/// Calls C++ function: <span style='color: green;'>```void swap(QRegion& value1, QRegion& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_region(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QRegion>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QRegion>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QRegion>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QRegion>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QKeySequence& value1, QKeySequence& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_key_sequence(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QKeySequence>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QKeySequence>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap1(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QKeySequence>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QKeySequence>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QFont& value1, QFont& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_font(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFont>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFont>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap2(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFont>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFont>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPolygon& value1, QPolygon& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_polygon(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPolygon>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPolygon>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap3(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPolygon>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPolygon>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPolygonF& value1, QPolygonF& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_polygon_f(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPolygonF>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPolygonF>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap4(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPolygonF>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPolygonF>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPainterPath& value1, QPainterPath& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_painter_path(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPainterPath>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPainterPath>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap5(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPainterPath>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPainterPath>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QImage& value1, QImage& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_image(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QImage>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QImage>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap6(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QImage>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QImage>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPixmap& value1, QPixmap& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_pixmap(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPixmap>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPixmap>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap7(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPixmap>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPixmap>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QBrush& value1, QBrush& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_brush(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QBrush>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QBrush>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap8(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QBrush>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QBrush>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPen& value1, QPen& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_pen(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPen>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPen>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap9(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPen>>::cast_into(value1).as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPen>>::cast_into(value2).as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextFormat& value1, QTextFormat& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_format(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextFormat>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextFormat>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap10(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextFormat>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextFormat>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextCharFormat& value1, QTextCharFormat& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_char_format(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextCharFormat>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextCharFormat>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap11(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextCharFormat>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextCharFormat>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextBlockFormat& value1, QTextBlockFormat& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_block_format(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextBlockFormat>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextBlockFormat>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap12(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextBlockFormat>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextBlockFormat>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextListFormat& value1, QTextListFormat& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_list_format(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextListFormat>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextListFormat>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap13(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextListFormat>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextListFormat>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextImageFormat& value1, QTextImageFormat& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_image_format(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextImageFormat>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextImageFormat>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap14(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextImageFormat>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextImageFormat>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextFrameFormat& value1, QTextFrameFormat& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_frame_format(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextFrameFormat>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextFrameFormat>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap15(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextFrameFormat>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextFrameFormat>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextTableFormat& value1, QTextTableFormat& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_table_format(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextTableFormat>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextTableFormat>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap16(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextTableFormat>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextTableFormat>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextTableCellFormat& value1, QTextTableCellFormat& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_table_cell_format(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextTableCellFormat>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextTableCellFormat>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap17(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextTableCellFormat>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextTableCellFormat>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QRawFont& value1, QRawFont& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_raw_font(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QRawFont>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QRawFont>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap18(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QRawFont>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QRawFont>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QGlyphRun& value1, QGlyphRun& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_glyph_run(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QGlyphRun>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QGlyphRun>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap19(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QGlyphRun>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QGlyphRun>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QTextCursor& value1, QTextCursor& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_text_cursor(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextCursor>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QTextCursor>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap20(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextCursor>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QTextCursor>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPalette& value1, QPalette& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_palette(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPalette>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPalette>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap21(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPalette>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPalette>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QIcon& value1, QIcon& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_icon(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QIcon>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QIcon>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap22(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QIcon>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QIcon>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QCursor& value1, QCursor& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_cursor(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QCursor>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QCursor>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap23(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QCursor>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QCursor>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QBitmap& value1, QBitmap& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_bitmap(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QBitmap>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QBitmap>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap24(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QBitmap>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QBitmap>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QFontInfo& value1, QFontInfo& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_font_info(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontInfo>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontInfo>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap25(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontInfo>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontInfo>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QFontMetrics& value1, QFontMetrics& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_font_metrics(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontMetrics>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontMetrics>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap26(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontMetrics>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontMetrics>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QFontMetricsF& value1, QFontMetricsF& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_font_metrics_f(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontMetricsF>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QFontMetricsF>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap27(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontMetricsF>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QFontMetricsF>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QOpenGLDebugMessage& value1, QOpenGLDebugMessage& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_opengl_debug_message(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QOpenGLDebugMessage>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QOpenGLDebugMessage>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap28(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QOpenGLDebugMessage>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QOpenGLDebugMessage>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QOpenGLPixelTransferOptions& value1, QOpenGLPixelTransferOptions& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_opengl_pixel_transfer_options(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QOpenGLPixelTransferOptions>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QOpenGLPixelTransferOptions>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap29(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QOpenGLPixelTransferOptions>>::cast_into(
            value1,
        )
        .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QOpenGLPixelTransferOptions>>::cast_into(
            value2,
        )
        .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPageSize& value1, QPageSize& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_page_size(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPageSize>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPageSize>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap30(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPageSize>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPageSize>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPageLayout& value1, QPageLayout& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_page_layout(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPageLayout>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPageLayout>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap31(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPageLayout>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPageLayout>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPicture& value1, QPicture& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_picture(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPicture>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QPicture>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap32(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPicture>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QPicture>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QPixmapCache::Key& value1, QPixmapCache::Key& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_key(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::q_pixmap_cache::Key>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::q_pixmap_cache::Key>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap33(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::q_pixmap_cache::Key>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::q_pixmap_cache::Key>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void swap(QStaticText& value1, QStaticText& value2)```</span>.
#[inline(always)]
pub unsafe fn swap_2_q_static_text(
    value1: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QStaticText>>,
    value2: impl ::cpp_core::CastInto<::cpp_core::MutRef<crate::QStaticText>>,
) {
    crate::__ffi::ctr_qt_gui_ffi_swap34(
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QStaticText>>::cast_into(value1)
            .as_mut_raw_ptr(),
        ::cpp_core::CastInto::<::cpp_core::MutRef<crate::QStaticText>>::cast_into(value2)
            .as_mut_raw_ptr(),
    )
}